nginxconfiguration安全资产服务

我有一个具有静态内容的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; } ...