Am această configurație nginx
în amonte puma_example.it {
server unix:/home/deploy/apps/example.it/shared/tmp/sockets/example.it-puma.sock fail_timeout=0;
}
Server {
asculta 80;
asculta [::]:80;
server_name example.it www.example.it;
returnează 301 https://www.example.it$request_uri;
}
Server {
nume_server blog.example.com;
returnează 301 http://www.example.com/blog$request_uri;
}
Server {
asculta 443 ssl http2;
asculta [::]:443 ssl http2;
ssl_certificate /etc/letsencrypt/live/example.it/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.it/privkey.pem;
server_name www.example.it example.it;
root /home/deploy/apps/example.it/current/public;
try_files $uri/index.html $uri @puma_example.it;
returnează 301 https://www.example.com$request_uri;
client_max_body_size 4G;
keepalive_timeout 10;
pagina_eroare 500 502 504 /500.html;
pagina_eroare 503 @503;
locație @puma_example.it {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Gazdă $gazdă;
proxy_redirect dezactivat;
proxy_set_header Actualizare $http_upgrade;
proxy_set_header Conexiune „Actualizare”;
ssi on;
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;
}
locație ^~ /imagini/ {
expira max;
add_header Cache-Control public;
}
locație ~ ^/(active|pachete)/ {
gzip_static activat;
brotli_static on;
expira max;
add_header Cache-Control public;
}
locație = /50x.html {
rădăcină html;
}
locație @503 {
error_page 405 = /system/maintenance.html;
dacă (-f $document_root/system/maintenance.html) {
rescrie ^(.*)$ /system/maintenance.html pauză;
}
rescrie ^(.*)$ /503.html pauză;
}
if ($request_method !~ ^(GET|HEAD|PUT|PATCH|POST|DELETE|OPTIONS)$ ){
întoarce 405;
}
dacă (-f $document_root/system/maintenance.html) {
întoarce 503;
}
}
Încerc să redirecționez non www către www și să redirecționez blogul de domeniu terță parte către o anumită adresă URL, dar cred că adăugând
returnează 301 https://www.example.com$request_uri;
în acea poziție provoacă o buclă de redirecționare.
Unde trebuie sa-l asez?
Ce este greșit în această configurație?
Încerc și să separ blocurile
în amonte puma_example.it {
server unix:/home/deploy/apps/example.it/shared/tmp/sockets/example.it-puma.sock fail_timeout=0;
}
Server {
asculta 80;
asculta [::]:80;
server_name example.it www.example.it;
returnează 301 https://www.example.it$request_uri;
}
Server {
asculta 443 ssl http2;
asculta [::]:443 ssl http2;
ssl_certificate /etc/letsencrypt/live/example.it/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.it/privkey.pem;
server_name example.it;
returnează 301 https://www.example.it$request_uri;
}
Server {
asculta 443 ssl http2;
asculta [::]:443 ssl http2;
ssl_certificate /etc/letsencrypt/live/example.it/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.it/privkey.pem;
nume_server hinnovation.example.it;
return 301 https://www.example.it/speciale/innovation$request_uri;
}
Server {
asculta 443 ssl http2;
asculta [::]:443 ssl http2;
ssl_certificate /etc/letsencrypt/live/example.it/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.it/privkey.pem;
nume_server www.example.it;
root /home/deploy/apps/example.it/current/public;
try_files $uri/index.html $uri @puma_example.it;
client_max_body_size 4G;
keepalive_timeout 10;
pagina_eroare 500 502 504 /500.html;
pagina_eroare 503 @503;
locație @puma_example.it {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Gazdă $gazdă;
proxy_redirect dezactivat;
proxy_set_header Actualizare $http_upgrade;
proxy_set_header Conexiune „Actualizare”;
ssi on;
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;
}
locație ^~ /imagini/ {
expira max;
add_header Cache-Control public;
}
locație ~ ^/(active|pachete)/ {
gzip_static activat;
brotli_static on;
expira max;
add_header Cache-Control public;
}
locație = /50x.html {
rădăcină html;
}
locație @503 {
error_page 405 = /system/maintenance.html;
dacă (-f $document_root/system/maintenance.html) {
rescrie ^(.*)$ /system/maintenance.html pauză;
}
rescrie ^(.*)$ /503.html pauză;
}
if ($request_method !~ ^(GET|HEAD|PUT|PATCH|POST|DELETE|OPTIONS)$ ){
întoarce 405;
}
dacă (-f $document_root/system/maintenance.html) {
întoarce 503;
}
}