我需要将几个 url 代理到不同的主机。实际上,我使用具有不同端口的同一主机来测试我的 nginx 配置。这是我的虚拟主机定义:
server {
listen 8081;
server_name domain.com;
location /Plasmid/ {
proxy_pass http://localhost:8000/Plasmid/;
}
location /_community/ {
proxy_pass http://localhost:8082/comments_api/ ;
}
location / {
# rewrite cq_user_authenticated===(.*)/(.*)/iuuid=(.*)/commenti.html$ /Plasmid/comments/legacy/$3/$1 ;
# rewrite querystring===(.*)$ /Plasmid/comments/legacy/$1 ;
# rewrite cq_user_authenticated===([^&]*)&/.*uuid=([^/]*) /comments_api/legacy/$2 ;
# rewrite userdetails(.*) /Plasmid/comments/user_details ;
root html;
index index.html index.htm;
}
}
当然,我的主机文件有 domain.com 的映射
当我调用 url: http://domain.com:8081/Plasmid/default/page/12我得到一个 http 404
如果我从配置中删除第二个位置:
location /_community/ {
proxy_pass http://localhost:8082/comments_api/ ;
}
我得到了我想要的资源,但是由于托管在不同的平台上,因此遗漏了某些部分:
[error] 1033#0: *1 open() "/usr/local/Cellar/nginx/1.2.6/html/_community/content
我该如何解决这个问题?