我有一个具有静态内容的Web应用程序,可以提供dynamic页面和安全内容。 静态内容位于/public文件夹中,应由nginx直接提供。 dynamic内容由127.0.0.1:3000上游服务。 安全内容也由上游和可用from /assets/* URL提供。 这个安全内容可能与静态内容具有相同的文件扩展名,但它总是位于/assets/ 。
我有一个工作的nginxconfiguration与两个位置具有相同的代理规则。 有什么办法减less我的configuration以某种方式join上游服务的两个位置?
server { server_name example.name; root /home/user/ruby18/app/public; try_files $uri @thin; location ^~ /assets/ { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://thin; } location ~* \.(jpeg|jpg|gif|png|ico|css|bmp|js)$ { root /home/user/ruby18/app/public; } location @thin { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://thin; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } upstream thin { server 127.0.0.1:3000; }
include指令是你在找什么。
/etc/nginx/proxy.conf
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://thin;
/etc/nginx/nginx.conf
server { server_name example.name; root /home/user/ruby18/app/public; try_files $uri @thin; location ^~ /assets/ { include proxy.conf; } location @thin { include proxy.conf; } ...