MDr*_*tte 5 nginx varnish reverse-proxy fastcgi php-fpm
目标是让 PHP 知道正确的面向 Web 的 server_port。
设置是:
nginx 在端口 443 上反向代理以在端口 80 上反向代理到端口 8008 上的 nginx 并运行 php-fpm 作为 fastcgi。
达到 80 或 443 都可以正常工作,除了 $_SERVER['SERVER_PORT'] 在 php 中默认总是显示 8008。我可以对 fastcgi_param server_port 进行硬编码,但它仅适用于 80 或 443,但不能同时适用于两者。
# default
fastcgi_param SERVER_PORT $server_port;
# harcode to 80
fastcgi_param SERVER_PORT 80;
Run Code Online (Sandbox Code Playgroud)
如何获得可用于 php 的正确的面向外部的服务器端口?
MDr*_*tte 15
找到了我自己的答案
在 SSL nginx 中,这...
proxy_set_header X-Forwarded-Proto https;
Run Code Online (Sandbox Code Playgroud)
然后在清漆中,这...
sub vcl_recv {
if (req.http.X-Forwarded-Proto == "https" ) {
set req.http.X-Forwarded-Port = "443";
} else {
set req.http.X-Forwarded-Port = "80";
set req.http.X-Forwarded-Proto = "http";
}
}
Run Code Online (Sandbox Code Playgroud)
然后在最终的 nginx 中,这...
fastcgi_param SERVER_PORT $http_x_forwarded_port;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6875 次 |
| 最近记录: |