nginx简单配置:反向代理&禁止通过IP地址访问

2018-03-08  本文已影响0人  a_novelist

在网上勉强知道了nginx如何设置反向代理和禁止直接通过IP地址访问。

前者的方法大致是:

server {

        listen      80 default_server;

        location / {

            proxy_pass http://127.0.0.1:8080;

        }

 }

后者的方法大致是:

server  {  

       listen 80 default;  

       server_name _;  

       server_name www.example.com example.com 

       return 500;  

可如果把这两个结合到一块,比如这样:

server  {  

       listen 80 default;  

       server_name _;  

       server_name www.example.com example.com;

       location / {

            proxy_pass http://127.0.0.1:8080;

        }

       return 500;  

} ,便会导致通过域名和IP地址都无法访问网站。

简书上有一篇讲nginx禁止通过IP访问的文章说是,在原有的nginx.conf文件中增加一个server {...},我试过之后发现这样的配置不合法(nginx -t),nginx根本无法重启。

无奈之下,想出了一个这样的办法:

server {

        listen      80 default_server;

        listen      [::]:80 default_server;

        server_name  _;

        #将这两个域名解析到IP地址后,下面这行不需要写

        #server_name  www.example.com example.com;

        location / {

            proxy_pass http://127.0.0.1:8080;

        }

        if ($host = 'your server's IP address') {

            return 403;

        }

}

看着有点怪异,不过算是能满足我的要求了。

另外,如果通过   域名+端口号(网站服务器监听的,比如8080)   或是 IP+端口号 仍然能访问到你的网站,可以去服务器提供商提供的管理页面上禁止外网对该端口的访问。

上一篇下一篇

猜你喜欢

热点阅读