nginx非80端口配置 外网无法访问

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx非80端口配置 外网无法访问相关的知识,希望对你有一定的参考价值。

80端口被其他服务占用

server
listen 9021;
server_name 122.224.171.210;
#charset koi8-r;
#access_log logs/host.access.log main;
location /
root html;
index index.html index.htm;


linux 内 http://127.0.0.1:9021/ 可以打开访问

但是外网http://122.224.171.210:9021/ 却访问不了

检查一下防火墙的设置。
如果是linux的话,看看iptable是否授权了80端口,或者干脆关闭iptable追问

如何检查呢

追答

你试一下执行 service iptables stop 把防火墙关闭,看看能不能访问。

追问

真心感谢你,关闭掉了是可以外网访问
但是服务器管理员说给我开发的端口

非要说我设置问题....

追答

你让服务器管理人员配置一下端口就可以了,让防火墙允许特定端口进出。

参考技术A 用路由设一下转发规则

外网无法访问自己搭建的web服务问题

问题描述:

1、IP确定是电信公网IP

2、电脑并未直连猫,通过路由链接的

3、已经修改nginx监听端口为8887

4、已经在路由设置的虚拟服务器里面,做了服务端口和内部端口与局域网ip的映射,服务端口设为9999,内部端口设为与nginx监听端口一致:8887
5、经测试,localhost:8887 访问nginx服务器结果正常
6、经测试,假设我的公网ip为XXX.XXX.XXX.XXX,通过外网IP+服务端口号,即XXX.XXX.XXX.XXX : 9999无法访问nginx ,通过fiddler抓包发现,可以抓到此包已经发至本机,但无法链接上端口(8887端口),但实际上我已经在内部端口映射上,设置了8887端口。
7、修改nginx服务器监听端口为80端口,在此访问XXX.XXX.XXX.XXX:9999 , 访问正常。

请问:为什么路由设置中的内部端口并未生效,是否XXX.XXX.XXX.XXX:9999访问到了本地主机后,就默认将http协议发往80端口?如不是,请各位分析一下第六条为什么无法访问nginx服务?

参考技术A 常见的原因可能是web容器的端口被占用了,以tomcat为例,可能是因为tomcat服务默认的8080端口被占用了,此时我们测试人员需要借助以下方式来做进一步判断(以window系统为例):
1.启动windows的命令窗口;
2.在命令窗口输入命令,netstat -ano |findstr "8080" ,回车即可看到8080端口被那个应用占用了;
3.输入命令基于进程id查找进程名称:tasklist |findstr "进程id号"
4.输入命令来杀死相应进程:taskkill /f /t /im "进程id或者进程名称"
以上内容均来自传智播客软件测试老师,他们论坛还有课程和配套资料。查查就可以,或者是对话框也能领。
参考技术B 外网访问格式

http:// 后面跟IP:端口号

测试

还有防火墙开放 需要的端口号追答

对了,不知是什么路由,有的有个“端口回流”选项,打开才能在内网,以外网IP模式登录

以上是关于nginx非80端口配置 外网无法访问的主要内容,如果未能解决你的问题,请参考以下文章

Nginx服务器作反向代理实现内部局域网的url转发配置

nginx能代理公网Ip非80端口吗

阿里云ECS配置nginx访问

阿里云ECS配置nginx访问

配置好了IIS,并且路由做了端口映射 为何外网用户访问不到

nginx怎么禁止IP+非80端口