Nginx禁止IP+端口号访问

用百度site:duanjingyu.com查看我网站收录情况时,发现有的链接是http://123.57.67.19,有的是http://www.duanjingyu.com:8080,而且这两个地址效果也确实如http://www.duanjingyu.com一样。

这样可不好,赶紧百度解决办法。我用的是Nginx+Tomcat,解决办法是:修改Nginx的配置文件,加上如下配置,就解决了IP直接访问的问题。

server {
  listen 80 default;
  server_name _;
  return 403;
}
server {
  listen 80;
  server_name www.duanjingyu.com duanjingyu.com;
  index index.jsp;
  root /www/default;
  location / {
    proxy_pass http://127.0.0.1:8080;
    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;
  }
  access_log /log/jblog.log;
}

重启Nginx,再用IP访问,就好提示403错误了。

但是IP+端口号,域名+端口号依然能访问,各种百度,都无法解决。迫不得已再ocs上寻求帮助,红薯很快就给解决了,提问地址http://www.oschina.net/question/2248479_230009,解决办法是:需要把8080端口绑定到localhost,修改tomcat的配置

    <Connector port="8080" protocol="HTTP/1.1"
    	         address="127.0.0.1"
               connectionTimeout="20000"
               redirectPort="8443" />

增加address="127.0.0.1"即可解决。重启tomcat,再用IP+端口号,域名+端口号访问,就会直接无法显示该页。

蚩蚩桑葚

Share this article