我一直在尝试几乎一天没有运气将 nginx 配置为 apache 的代理反向。我希望 nginx 将提供所有静态文件,其余的将传递给 apache。
如果站点位于根域名上,那么实现这一点并不难。
例如,我已经成功设置:
www.mydomain.com
location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml|rss|txt)$ {
root /path/to/mysite;
}
location / {
proxy_pass 127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
现在问题出现了,因为我想在别名中配置站点,例如:www.mydomain.com/site1
有人知道如何达到同样的目的吗?
我试过下面的配置不起作用:
location /site1 {
location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml|rss|txt)$ {
root /path/to/anothersite1;
}
proxy_pass apache:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
问题是“根”指令不能替换 /site1 URI。例如,请求
www.mydomain.com/site1/folder/pic.jpg
将通过打开文件来处理:
/path/to/anothersite1/site1/folder/pic.jpg;
代替:
/path/to/anothersite1/folder/pic.jpg
我真的很感激这方面的任何帮助。我试图用“别名”替换“根”指令,但仍然没有运气。
预先感谢,