我正在尝试将 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;
}
}
}
答案1
改成。listen 0.0.0.0:80;
listen *:80;
参考:http://nginx.org/en/docs/http/ngx_http_core_module.html#listen