nginx无法从公共IP访问,但是在127.0.0.1上


2

我正在尝试将nginx设置为对IIS上运行的站点进行HTTP身份验证的反向代理。我已经修改了http.sys绑定以及IIS站点绑定,以便nginx可以成功侦听端口80。

当我从服务器访问http:// 127.0.0.1时,将按预期方式显示nginx HTTP身份验证对话框,如果我提供了凭据,则它将按预期方式代理到我的IIS应用程序。如果我访问http:// localhost:8080,我将得到预期的IIS应用程序。

但是,尝试从另一台计算机访问该站点失败。我已经尝试过完全禁用防火墙,但这也无济于事。这是我的nginx配置:

worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    server {
        listen       0.0.0.0:80;
        server_name  localhost;

        location / {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://localhost:8080/;
            auth_basic           "closed site";
            auth_basic_user_file htpasswd;
        }

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

Answers:


2

更改listen 0.0.0.0:80;listen *:80;

REF:http : //nginx.org/en/docs/http/ngx_http_core_module.html#listen


我更新了配置,但仍然无法从外部访问它。我将其更改为*:81,但可以到达那儿,但不行*:80
马特·贝克

但是,我localhost从该server_name字段中删除了,放入了外部主机名,现在可以使用了。
马特·贝克

@MattBaker,你的意思,你改变什么localhost127.0.0.1这就是我得到了nginx的服务器的文件
像素67
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.