ฉันมีการกำหนดค่า nginx นี้
ต้นน้ำ puma_example.it {
ยูนิกซ์เซิร์ฟเวอร์:/home/deploy/apps/example.it/shared/tmp/sockets/example.it-puma.sock fail_timeout=0;
}
เซิร์ฟเวอร์ {
ฟัง 80;
ฟัง [::]:80;
server_name example.it www.example.it;
ส่งคืน 301 https://www.example.it$request_uri;
}
เซิร์ฟเวอร์ {
server_name 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;
server_name www.example.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;
error_page 500 502 504 /500.html;
error_page 503 @503;
ตำแหน่ง @puma_example.it {
proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
proxy_set_header โฮสต์ $host;
ปิด proxy_redirect;
proxy_set_header อัพเกรด $http_upgrade;
proxy_set_header การเชื่อมต่อ "อัปเกรด";
ssi บน;
proxy_set_header X-ส่งต่อโปรโต https;
proxy_pass http://puma_example.it;
# limit_req โซน = หนึ่ง;
access_log /home/deploy/apps/example.it/shared/log/nginx.access.log;
error_log /home/deploy/apps/example.it/shared/log/nginx.error.log;
}
สถานที่ ^~ /images/ {
หมดอายุสูงสุด
add_header แคชควบคุมสาธารณะ;
}
ตำแหน่ง ~ ^/(สินทรัพย์|แพ็ค)/ {
เปิด gzip_static;
brotli_static บน;
หมดอายุสูงสุด
add_header แคชควบคุมสาธารณะ;
}
ตำแหน่ง = /50x.html {
รูท html;
}
ที่ตั้ง @503 {
error_page 405 = /system/maintenance.html;
ถ้า (-f $document_root/system/maintenance.html) {
เขียนใหม่ ^(.*)$ /system/maintenance.html break;
}
เขียนใหม่ ^(.*)$ /503.html break;
}
ถ้า ($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 {
ยูนิกซ์เซิร์ฟเวอร์:/home/deploy/apps/example.it/shared/tmp/sockets/example.it-puma.sock fail_timeout=0;
}
เซิร์ฟเวอร์ {
ฟัง 80;
ฟัง [::]:80;
server_name example.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;
server_name 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;
server_name 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;
server_name 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;
error_page 500 502 504 /500.html;
error_page 503 @503;
ตำแหน่ง @puma_example.it {
proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
proxy_set_header โฮสต์ $host;
ปิด proxy_redirect;
proxy_set_header อัพเกรด $http_upgrade;
proxy_set_header การเชื่อมต่อ "อัปเกรด";
ssi บน;
proxy_set_header X-ส่งต่อโปรโต https;
proxy_pass http://puma_example.it;
# limit_req โซน = หนึ่ง;
access_log /home/deploy/apps/example.it/shared/log/nginx.access.log;
error_log /home/deploy/apps/example.it/shared/log/nginx.error.log;
}
สถานที่ ^~ /images/ {
หมดอายุสูงสุด
add_header แคชควบคุมสาธารณะ;
}
ตำแหน่ง ~ ^/(สินทรัพย์|แพ็ค)/ {
เปิด gzip_static;
brotli_static บน;
หมดอายุสูงสุด
add_header แคชควบคุมสาธารณะ;
}
ตำแหน่ง = /50x.html {
รูท html;
}
ที่ตั้ง @503 {
error_page 405 = /system/maintenance.html;
ถ้า (-f $document_root/system/maintenance.html) {
เขียนใหม่ ^(.*)$ /system/maintenance.html break;
}
เขียนใหม่ ^(.*)$ /503.html break;
}
ถ้า ($request_method !~ ^(GET|HEAD|PUT|PATCH|POST|DELETE|OPTIONS)$ ){
กลับ 405;
}
ถ้า (-f $document_root/system/maintenance.html) {
กลับ 503;
}
}