я использую конфиг ниже. это работает, но проблема для меня - повторение некоторых строк. что proxy_*директивы должны быть location /adminтакже, потому что только один locationбудет выполняться Nginx на запрос. Какие варианты у меня есть, чтобы удалить этот дубликат кода, не извлекая его в новые файлы и включить его впоследствии?
Есть ли возможность сказать, что nginx продолжать location @railsпосле того, как location /adminбыл выбран и обработан?
ну и кстати, в чем разница между location @railsи location /?
server {
...
location /admin {
include /etc/nginx/force_ssl;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://rails;
}
location @rails {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://rails;
}
...
}
/ И т.д. / Nginx / force_ssl:
if ( $scheme = "http" ) {
rewrite ^/(.*)$ https://$host/$1 permanent;
}
location @railsиlocation /(root, а не / admin!). я могу заменить @rails на / без явных изменений в поведении веб-сервера ...