У меня есть эта конфигурация nginx
puma_example.it {
сервер unix:/home/deploy/apps/example.it/shared/tmp/sockets/example.it-puma.sock fail_timeout=0;
}
сервер {
слушать 80;
слушать [::]:80;
имя_сервера пример.it www.example.it;
вернуть 301 https://www.example.it$request_uri;
}
сервер {
имя_сервера blog.example.com;
вернуть 301 http://www.example.com/blog$request_uri;
}
сервер {
слушать 443 ssl http2;
слушать [::]:443 ssl http2;
ssl_certificate /etc/letsencrypt/live/example.it/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.it/privkey.pem;
имя_сервера www.example.it пример.it;
корень /home/deploy/apps/example.it/current/public;
try_files $uri/index.html $uri @puma_example.it;
вернуть 301 https://www.example.com$request_uri;
client_max_body_size 4G;
keepalive_timeout 10;
страница_ошибки 500 502 504 /500.html;
страница_ошибки 503 @503;
местоположение @puma_example.it {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Хост $host;
прокси_перенаправление выключено;
proxy_set_header Обновить $http_upgrade;
proxy_set_header Соединение "Обновление";
вкл.;
proxy_set_header X-Forwarded-Proto https;
proxy_pass http://puma_example.it;
# limit_req zone=one;
access_log /home/deploy/apps/example.it/shared/log/nginx.access.log;
error_log /home/deploy/apps/example.it/shared/log/nginx.error.log;
}
местоположение ^~ /изображения/ {
истекает макс.;
add_header Cache-Control общедоступный;
}
расположение ~ ^/(активы|пакеты)/ {
gzip_static включен;
brotli_static включено;
истекает макс.;
add_header Cache-Control общедоступный;
}
местоположение = /50x.html {
корень html;
}
местоположение @503 {
error_page 405 = /system/maintenance.html;
если (-f $document_root/system/maintenance.html) {
переписать ^(.*)$ /system/maintenance.html break;
}
переписать ^(.*)$ /503.html break;
}
if ($request_method !~ ^(GET|HEAD|PUT|PATCH|POST|DELETE|OPTIONS)$ ){
вернуть 405;
}
если (-f $document_root/system/maintenance.html) {
вернуть 503;
}
}
Я пытаюсь перенаправить не www на www и перенаправить блог стороннего домена на определенный URL-адрес, но я думаю, что добавление
вернуть 301 https://www.example.com$request_uri;
в этом положении это вызывает цикл перенаправления.
Где я должен разместить его?
Что не так в этом конфиге?
Я также пытаюсь разделить блоки
puma_example.it {
сервер unix:/home/deploy/apps/example.it/shared/tmp/sockets/example.it-puma.sock fail_timeout=0;
}
сервер {
слушать 80;
слушать [::]:80;
имя_сервера пример.it www.example.it;
вернуть 301 https://www.example.it$request_uri;
}
сервер {
слушать 443 ssl http2;
слушать [::]:443 ssl http2;
ssl_certificate /etc/letsencrypt/live/example.it/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.it/privkey.pem;
имя_сервера пример.it;
вернуть 301 https://www.example.it$request_uri;
}
сервер {
слушать 443 ssl http2;
слушать [::]:443 ssl http2;
ssl_certificate /etc/letsencrypt/live/example.it/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.it/privkey.pem;
имя_сервера hinnovation.example.it;
вернуть 301 https://www.example.it/speciale/innovation$request_uri;
}
сервер {
слушать 443 ssl http2;
слушать [::]:443 ssl http2;
ssl_certificate /etc/letsencrypt/live/example.it/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.it/privkey.pem;
имя_сервера www.example.it;
корень /home/deploy/apps/example.it/current/public;
try_files $uri/index.html $uri @puma_example.it;
client_max_body_size 4G;
keepalive_timeout 10;
страница_ошибки 500 502 504 /500.html;
страница_ошибки 503 @503;
местоположение @puma_example.it {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Хост $host;
прокси_перенаправление выключено;
proxy_set_header Обновить $http_upgrade;
proxy_set_header Соединение "Обновление";
вкл.;
proxy_set_header X-Forwarded-Proto https;
proxy_pass http://puma_example.it;
# limit_req zone=one;
access_log /home/deploy/apps/example.it/shared/log/nginx.access.log;
error_log /home/deploy/apps/example.it/shared/log/nginx.error.log;
}
местоположение ^~ /изображения/ {
истекает макс.;
add_header Cache-Control общедоступный;
}
расположение ~ ^/(активы|пакеты)/ {
gzip_static включен;
brotli_static включено;
истекает макс.;
add_header Cache-Control общедоступный;
}
местоположение = /50x.html {
корень html;
}
местоположение @503 {
error_page 405 = /system/maintenance.html;
если (-f $document_root/system/maintenance.html) {
переписать ^(.*)$ /system/maintenance.html break;
}
переписать ^(.*)$ /503.html break;
}
if ($request_method !~ ^(GET|HEAD|PUT|PATCH|POST|DELETE|OPTIONS)$ ){
вернуть 405;
}
если (-f $document_root/system/maintenance.html) {
вернуть 503;
}
}