首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在反向代理模式下阻止通过http端口访问rocket.chat

在反向代理模式下阻止通过http端口访问rocket.chat
EN

Stack Overflow用户
提问于 2019-01-15 12:10:03
回答 2查看 1.1K关注 0票数 0

我已经将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:3000https://localhost:443)。我的意思是,在这两个链接下,rocket.chat都是可访问的,http访问是多余的。

如何通过rocket.chat禁用对http://localhost:3000的访问

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-17 15:04:26

您需要将rocketchat服务绑定到localhost接口,2)让nginx在公共接口上监听并充当代理(您可能已经做了什么)。

因此,首先打开您的rocketchat.service文件(可能在/lib/systemd/system/rocketchat.service中,但这取决于您如何配置rocketchat服务),并在[Service]部分中添加以下一行:

代码语言:javascript
复制
[Service]
Environment=BIND_IP=127.0.0.1

不要担心您已经有了一个(或一些) Environment条目,它们是聚合的(对于我来说,每个变量只有一个Environement条目)。

然后打开nginx (可能是/etc/nginx/sites-enabled/default,但这可能不同),并确保server块只监听端口443并执行其代理工作。我的nginx相关条目如下所示:

代码语言:javascript
复制
# 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服务,并重新加载配置发出。

代码语言:javascript
复制
$ sudo systemctl daemon-reload

命令。

对我来说是完美无缺的。

票数 1
EN

Stack Overflow用户

发布于 2019-01-15 13:38:47

我通过阻塞到localhost的外部连接和允许使用iptableslocalhost的内部连接解决了这个问题:

代码语言:javascript
复制
iptables -A INPUT -p tcp --dport 3000 -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 3000 -j DROP

但是我仍然在想,是否有任何与nginx相关的配置来解决这个问题?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54198563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档