我有一个 Windows IIS 服务器,上面有一个工作站点:http://bla.example.com/something/login
IIS 作为后备服务器工作,我不想暴露给“互联网”,这就是我部署 NGINX 反向代理的原因。
这个想法是通过:pass.example.com 访问并重定向到http://bla.example.com/something/login
配置如下:
upstream pass {
server bla.example.com weight=100 max_fails=5 fail_timeout=5;
}
server {
listen 80;
server_name pass.example.com;
# Redirect all HTTP to HTTPS
location / {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
return 301 https://$server_name$request_uri;
access_log /var/log/nginx/pass.example.com.access.log;
error_log /var/log/nginx/pass.example.com.error.log error;
}
}
server {
listen 443 ssl;
server_name pass.example.com;
ssl_certificate /etc/nginx/certs/fullchain.pem;
ssl_certificate_key /etc/nginx/certs/privkey.pem;
ssl_ciphers HIGH:!ADH:!MD5:!aNULL:!eNULL:!MEDIUM:!LOW:!EXP:!kEDH;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/pass.example.com.access.log;
error_log /var/log/nginx/pass.example.com.error.log error;
location / {
proxy_pass http://pass/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
问题:
当我访问由 nginx 代理的 URL 时,总是出现 404 资源未找到的情况。
如果我通过 curl(从 nginx 服务器)测试后端 URL,它可以正常工作....但是 Nginx“发布”的 URL 总是响应 404....
请问,有什么想法吗?
谢谢,迈克尔。