nginx自动添加内网端口

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx自动添加内网端口相关的知识,希望对你有一定的参考价值。

参考技术A 1.内网nginx服务器提供web的端口为8080;
2.通过路由的转换,将8080端口映射为外网的80端口( www.test.com );
3.访问二级目录 www.test.com/test ,此时nginx会出现访问出错,并自动更改端口为内网的8080,即 www.test.com:8080/test/ ;
4.排除了nginx自动添加斜杠的问题,因为nginx从0.8.48这个版本后就已经设置为自动添加了,即

通过端口映射时,nginx会自动添加内网端口,修改路径导致路径访问出错;

在server里面加入

nginx如何自动添加域名端口?

使用https协议用nginx做反向代理,nginx.conf配置如下
server
listen 80;
server_name xxxxxxxxx.cn;
rewrite ^(.*) https://$server_name$1 permanent;


server
listen 443 ssl;
server_name xxxxxxxxx.cn;
ssl_certificate /usr/share/nginx/html/cert/3705965__sasu.edu.cn.pem;
ssl_certificate_key /usr/share/nginx/html/cert/3705965__sasu.edu.cn.key;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_session_timeout 5m;

location /
# proxy_redirect off;
# proxy_set_header Host $host;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://127.94.231.40:6830;


使用反向代理域名访问https://xxxxxxxxx.cn:443 会自动跳转到页面https://xxxxxxxxx.cn/welcome/;
使用被代理域名https://127.94.231.40:6830访问,会自动跳转到页面https://127.94.231.40:6830/welcome/;这个和所需要的地址https://xxxxxxxxx.cn:443/welcome/是同一个页面。
可以看出在使用nginx反向代理访问后,域名后面没有自动带出443端口。麻烦看下配置哪里有问题。

参考技术A 首先安装时候nginx要带上这个模块,./configure --prefix=/usr/local/nginx --with-stream
在nginx.conf里面配置上类似以下配置文件:
stream

upstream dack
server 127.0.0.1:9092;
server 127.0.0.1:9093;
server 127.0.0.1:9094;


server
listen 9091;
proxy_pass dack;



注意:stream级别和http同级。

以上是关于nginx自动添加内网端口的主要内容,如果未能解决你的问题,请参考以下文章

Cemtos7.2内网搭建DNS服务器

liunx 公网跳转到内网(做端口转发)使用xshell工具

多个网站共用相同一级域名80端口的方法

搭建nginx反向代理用做内网域名转发

搭建Nginx反向代理做内网域名转发

openwrt内网端口转发,内部使用nginx反代,外部使用https安全访问的方案