服务器, 运营维护

禁止Nginx重定向至监听端口

Prot in redirect

在使用Nginx时,可能有时不需要让Nginx监听80端口,甚至在前面再加一个Squid,Varnish之类的HTTP缓存。

但是访问子目录时,除非在子目录后面再加一条“/”,否则就会遇到网址自动重定向至Nginx监听的端口。假设你Nginx站点监听的端口是123,你本来访问的地址是http://domain.com/wp-admin,会自动重定向至http://domain.com:123/wp-admin

这样明显会对服务器造成很大的威胁,要知道后端可是很重要的,如果后端端口暴露出来,就可能会被人直接对这个端口进行诸如CC之类的攻击……

在Nginx的核心模块的文档中,有这样一个配置:

大概是说如果使用了port_in_redirect off;那么Nginx将不会在网站后面加上监听的端口。

由于一般nginx.conf都没有这一行配置,因此都是默认on的。要关掉,就需要修改nginx.conf,在http层里面加入一行:

注意是添加在http层里面,在server层之前。

nginx.conf

添加完毕后,重启Nginx,再次访问子目录时,就不会出现重定向至监听端口的问题。

 

Comments are closed.