服务器问答

nginx 使用时的疑问
0
2021-05-19 16:23:24
idczone
防火墙 80 端口->内网的 ng国外服务器inx 服务器上->反向代理到内网的其他服务器站点

现在遇到的问题的是:
安装有 nginx 的服务器如果禁止外网,所有的站点都不能访问。把 nginx 服务器的外网打开,则可以访问站点。

我的需求:
nginx 不想开放外网权限,这样可以实现吗?
所以你是想不让你的服务器接入公网, 但是又想让公网上的用户能访问你的 NGINX 的站点 ???
你这个需求简直匪夷所思

楼主的意思似乎是不想外网访问 只允许内网

比如说
allow 192.168.0.0 ;
deny all ;
只允许内网 ip 地址段,或者 iptables ?

你怎么禁止的,理论上禁止外网不会影响内网访问啊

只允许内网访问可以在 Nginx 限制一下仅内网 IP 吧。

如果 NGINX 有装了 http_access 模块的话向 那位老兄说的那样, 在 server 段里面
allow 10.0.0.0/8;
allow 172.16.0.0/12;
allow 192.168.0.0/16;
deny all;
或者通用的, 用 iptables 限制只允许上面这三种内网 IP 段访问就行了

所以你的需求到底是个啥?用域名访问内网的服务器?

你不希望的你网站被外网访问(a)还是不希望服务器可以访问外网(b)?
感觉上边都在说 a,但 a 很简单内网白名单就好了,难道是 1 楼说的这个 b 情况?
这样有一点麻烦,因为 http 不是单向的,nginx 必须能和外部 ip 建立 http 链接.所以不能限制 nginx 这个进程.

allow / deny 就可以了

我感觉很多 V 友提问题,说的不清不楚。。。看了半天没明白个意思

> />能正确描述问题的人更有可能自己解决问题

我猜,是 Nginx 是对内使用的。
所以不想对外暴露 Nginx。
这个问题嘛,关掉外网访问,解析到内网 IP 即可。
如果内网不互通,那就楼上的 IP 白名单吧。

各位老师,看了你们的回复,我明白了,是我思考方向错了。
nginx 保护的是不能连接外网的内部服务器,而不是 nginx 本身服务器。
就此结贴,谢谢各位的帮助。

能知道是什么问题的,基本上都能自己解决了。所以你看大量的问题都是没什么价值的傻问题,其中大部分问题都不知道是在问什么。。。然后,社区里面经常帮别人解决问题的人,基本上从来都不提问题。

我先猜测一下,楼主你遇到的问题可能是这样的
Internet -> Rrouter -> Nginx -> Server
你现在想让 nginx 只能访问 Router 和 Server 对吧? 然后发现设置成这样以后, 外部 Internet 进来的流量也无法访问 nginx 了
如果是这样的情况, 引起的原因是 router 在 80 端口进行转发给 nginx 时实际上时把公网流量进行了转发, 没有修改 ip 包的源地址, 相当于是 nginx 直接收到了外网的包, 这样 nginx 返回数据包时也要返回给外网, 就不通了
我这里有 ubnt 的路由器可以这样设置防火墙
local ALL allow 内网允许
internet IN allow 公网 入 允许
internet ESTABLISHED allow 公网 已连接 允许
internet OUT deny 公网 出 禁止
可以参考设置一下, 或者设置 router 转发 80 端口流量的方式, 改为由 router 代理的方式

楼主既然清楚了, 请忽略我的回复

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服