我正在为apache创建nginx reverse proxy
。 Apache在8080
上的端口80
和nginx上运行。
我希望实现以下目标;
当我请求页面http://server/test.html
时,它应该代理到http://server:8080/unknown.html
稍后我会在页面上做一些eval
内容并将用户重定向到正确的页面,但我甚至无法让它工作。我始终将test.html
作为回复。
我的nginx
配置:
server {
listen 80;
root /var/www/;
index index.php index.html index.htm;
server_name example.com;
location / {
# try_files $uri $uri/ /index.php;
}
location ~ \.html$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
#rewrite ^/unknown.html;
proxy_pass http://127.0.0.1:8080;
proxy_redirect http://127.0.0.1/test.html http://127.0.0.1:8080/unknown.html;
}
location ~ /\.ht {
deny all;
}
}
我没有经验,但我很想知道如何让这个工作......
答案 0 :(得分:1)
首先,proxy_redirect
指令与您需要的指令相反。它仅用于重写来自上游的3xx响应中的Location
响应头。有关详细信息,请参阅this document。
您可以在执行rewrite ... break
的位置块中使用proxy_pass
语句,例如:
location ... {
rewrite ^/test.html$ /unknown.html break;
proxy_pass ...;
}
有关详细信息,请参阅this document。