Nginx vhost配置问题

Nginx vhost配置问题

我有一个 NginX vhost,其中所有静态内容均由 nginx 提供,而任何未找到的内容或以 php 代理结尾的内容则由 apache 提供。

只是想检查我的位置是否正确:

location / {
  try_files $uri $uri/ @proxy;
  expires 30d;
}

location ~* \.php$ {
   proxy_pass      http://127.0.0.1:8080;
} 

location @proxy {
   proxy_pass      http://127.0.0.1:8080;
}

我还想知道是否有办法让第二个位置转到第三个位置,这样我就不必重复两次 proxy_pass 行?

我还有其他几个问题:

  • nginx 是否从上到下读取位置,如果当前请求与其中一个位置匹配,它是否会停止查看下一个位置?例如,如果请求 server.com/image.jpg,是否意味着第一个位置声明将在我的位置中捕获它,其余位置将被忽略?

  • 如果我确实最大程度地过期;或 30 天后过期;但随后网站更新,并且我想强制用户浏览器立即重新加载文件,我可以做些什么让它们重新加载?

  • 我的第一个位置声明将匹配以 .js、.css、.png 等结尾的任何路径,但它区分大小写吗?它也会匹配 .PNG 吗?我是否应该将其设置为区分大小写?如果是,怎么做?

  • 您认为还有什么可以改善此配置吗?

答案1

location / {
  try_files $uri $uri/ @proxy;
  expires 30d;
}

location ~* \.php$ {
   root @proxy;
} 

location @proxy {
   proxy_pass      http://127.0.0.1:8080;
}

应该这么做

相关内容