我正在尝试为在本地主机上运行且没有 SSL 支持的 Web 管理控制台创建 SSL 代理。
这是我的配置:
server {
listen 111.222.1.1:8443 ssl;
server_name admin.company.com;
ssl_certificate tls/ssl.crt;
ssl_certificate_key tls/ssl.key;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_hide_header X-Powered-By;
#error_page 497 https://admin.company.com:8443$request_uri;
location / {
proxy_pass http://127.0.0.1:8080/;
}
}
代理服务非常复杂,使用了大量 Post/Redirect/Get 操作,网络监视器显示它们都涉及“http://admin.company.com:8443” 从而引起了主题。
添加error_page 497
(注释掉)可以解决 GET 和重定向问题,但无法进行 POST。有没有办法解决这个问题,一个 IP 和一个端口配置,可以代理 GET 和 POST 请求?
更新: 代理后面的应用程序是一个在不安全模式下运行的 Java servlet,所以我相信这就是“http”的来源,它只是采用代理主机名并建立明确设置“http”的 URL。
答案1
我没有足够的声誉来发表评论。但我建议您检查上游,并检查其他 nginx conf 文件,并确保它们针对的是特定 ip,而不是通配符,例如 listen *:8443 ssl; 或类似的东西。这样它就不会回退。