我在后端 IIS(Windows Server 2012 R2)和 Debian 上托管了 ASP.NET 应用程序,并使用 Nginx 向公众开放 SSL 证书等等。
Nginx 代理http://myexample.com
请求到 HTTP 后端,配置没有任何问题:
server {
listen 80;
server_name my.example.com
location / {
proxy_pass http://backend:1234;
}
}
但是当我尝试时https://my.example.com
- 网络浏览器获取链接https://my.example.com/Login.aspx
(这是正确的)然后出现 404 Not Found。
HTTPS Nginx 配置(我也尝试了注释行但仍然是 404):
server {
listen 443 ssl http2;
server_name my.example.com
-- SSL part ---
location = / {
proxy_pass http://backend:1234;
#proxy_set_header Host $host;
#proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_set_header X-Forwarded-Proto $scheme;
#proxy_redirect http:// $scheme://;
}
}
Nginx 日志显示:
[error] 27936#27936: 1* open() "/etc/nginx/html/Login.aspx" (2: No such file or directory), client: IP, server: my.example.com, request: "GET /Login.aspx HTTP/2.0", host: "my.example.com"
为什么 Nginx 不将 GET 请求代理到后端服务器?