我已经将rocket.chat版本的0.72.3安装在CentOS 7.6上,作为一个私有的本地团队聊天。
然后,为了配置反向代理以强制rocket.chat使用SSL协议,我安装了nginx版本1.12.2,并按照此链接https://rocket.chat/docs/developer-guides/mobile-apps/supporting-ssl/将nginx配置为反向代理。
在配置成功之后,我有两个url,它们都指向我的rocket.chat应用程序(http://localhost:3000和https://localhost:443)。我的意思是,在这两个链接下,rocket.chat都是可访问的,http访问是多余的。
如何通过rocket.chat禁用对http://localhost:3000的访问
发布于 2019-01-17 15:04:26
您需要将rocketchat服务绑定到localhost接口,2)让nginx在公共接口上监听并充当代理(您可能已经做了什么)。
因此,首先打开您的rocketchat.service文件(可能在/lib/systemd/system/rocketchat.service中,但这取决于您如何配置rocketchat服务),并在[Service]部分中添加以下一行:
[Service]
Environment=BIND_IP=127.0.0.1不要担心您已经有了一个(或一些) Environment条目,它们是聚合的(对于我来说,每个变量只有一个Environement条目)。
然后打开nginx (可能是/etc/nginx/sites-enabled/default,但这可能不同),并确保server块只监听端口443并执行其代理工作。我的nginx相关条目如下所示:
# Upstreams
upstream backend {
server 127.0.0.1:3000;
}
server {
listen 443;
server_name mydomain.com;
error_log /var/log/nginx/rocketchat.access.log;
ssl on;
ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
location / {
proxy_pass http://127.0.0.1:3000/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forward-Proto http;
proxy_set_header X-Nginx-Proxy true;
proxy_redirect off;
}
}您可能需要重新加载/重新启动nginx和rocketchat服务,并重新加载配置发出。
$ sudo systemctl daemon-reload命令。
对我来说是完美无缺的。
发布于 2019-01-15 13:38:47
我通过阻塞到localhost的外部连接和允许使用iptables与localhost的内部连接解决了这个问题:
iptables -A INPUT -p tcp --dport 3000 -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 3000 -j DROP但是我仍然在想,是否有任何与nginx相关的配置来解决这个问题?
https://stackoverflow.com/questions/54198563
复制相似问题