server {
listen 80;
server_name _;
location /test/ {
proxy_pass http://example.com/page.php;
}
}
目前,当我使用此 Nginx 反向代理时,当我从 访问时test.com/test/
,它会为我提供服务https://example.com/page.php
,但 URL 保持不变。当我调用 时$_SERVER['http_host']
,它返回 example.com 的主机名,而不是我从中发出请求的主机名(域中的 URL)。
我尝试使用:proxy_set_header Host $host;
然而运行之后却导致我进入 404 页面。
简而言之,
我想参观test.com/test
并接受服务http://example.com/page.phpbut have the
PHP 中的主机名of
test.com/test when I call
$_SERVER`
编辑:
events {
worker_connections 1024;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
server {
listen 80;
server_name _;
location / {
proxy_set_header Host $host; #works without this
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_intercept_errors on;
proxy_pass http://example.com;
}
}
}