nginx proxy_pass到所有页面

时间:2018-07-19 05:52:46

标签: nginx reverse-proxy

所以我正在使用nginx反向代理到另一台服务器。在我将静态文件链接到该位置之前,它并没有提供静态文件。位置块非常长,但与下面的代码相似。我确定我这样做的方式是错误的,但它确实有效,编写所有路径非常繁琐。我想知道是否有更好的方法。

location / {
    proxy_pass    www.example.com;
}
location /sytlesheet.css {
    proxy_pass    www.example.com/stylesheet.css;
}
location /page1 {
    proxy_pass    www.example.com/page1;
}
#this goes on and on

是否有办法使所有内容都超过“ /”,例如“ page1”,并将其传递给代理,而无需手动输入?

我希望有一种使用变量的方法或通过单个位置块链接所有页面和资源的方法:

location / {
    proxy_pass    www.example.com;
}
location /$variable {
    proxy_pass    www.example.com/$variable;
}

谢谢!

2 个答案:

答案 0 :(得分:1)

您应使用以下代码

location / {
    # First attempt to serve request as file, then
    # as directory, then fall back to proxy
    try_files $uri $uri/ @proxy;
}

location @proxy {

     proxy_pass    www.example.com;
}

答案 1 :(得分:0)

检查一下。

location / {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_pass http://www.example.com;
}