я использую конфиг ниже. это работает, но проблема для меня - повторение некоторых строк. что 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 на / без явных изменений в поведении веб-сервера ...