Tôi có cấu hình nginx này
ngược dòng puma_example.it {
máy chủ unix:/home/deploy/apps/example.it/shared/tmp/sockets/example.it-puma.sock fail_timeout=0;
}
người phục vụ {
nghe 80;
nghe [::]:80;
server_name example.it www.example.it;
trả lại 301 https://www.example.it$request_uri;
}
người phục vụ {
server_name blog.example.com;
trả về 301 http://www.example.com/blog$request_uri;
}
người phục vụ {
nghe 443 ssl http2;
nghe [::]: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;
gốc /home/triển khai/apps/example.it/current/public;
try_files $uri/index.html $uri @puma_example.it;
trả về 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;
vị trí @puma_example.it {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Máy chủ lưu trữ $host;
proxy_redirect tắt;
proxy_set_header Nâng cấp $http_upgrade;
proxy_set_header Kết nối "Nâng cấp";
ssi trên;
proxy_set_header X-Forwarded-Proto https;
proxy_pass http://puma_example.it;
# giới hạn_req vùng=một;
access_log /home/deploy/apps/example.it/shared/log/nginx.access.log;
error_log /home/deploy/apps/example.it/shared/log/nginx.error.log;
}
vị trí ^~ /hình ảnh/ {
hết hạn tối đa;
add_header Kiểm soát bộ đệm công khai;
}
vị trí ~ ^/(nội dung|gói)/ {
bật gzip_static;
brotli_static bật;
hết hạn tối đa;
add_header Kiểm soát bộ đệm công khai;
}
vị trí = /50x.html {
html gốc;
}
vị trí @503 {
error_page 405 = /system/maintenance.html;
nếu (-f $document_root/system/maintenance.html) {
viết lại ^(.*)$ /system/maintenance.html ngắt;
}
viết lại ^(.*)$ /503.html ngắt;
}
if ($request_method !~ ^(GET|HEAD|PUT|PATCH|POST|DELETE|OPTIONS)$ ){
trả lại 405;
}
nếu (-f $document_root/system/maintenance.html) {
trả lại 503;
}
}
Tôi đang cố chuyển hướng không phải www sang www và chuyển hướng blog tên miền của bên thứ ba tới một url cụ thể nhưng tôi nghĩ rằng việc thêm
trả về 301 https://www.example.com$request_uri;
ở vị trí đó, nó gây ra vòng lặp chuyển hướng.
Tôi phải đặt nó ở đâu?
Có gì sai trong cấu hình này?
Tôi cũng cố gắng tách các khối
ngược dòng puma_example.it {
máy chủ unix:/home/deploy/apps/example.it/shared/tmp/sockets/example.it-puma.sock fail_timeout=0;
}
người phục vụ {
nghe 80;
nghe [::]:80;
server_name example.it www.example.it;
trả lại 301 https://www.example.it$request_uri;
}
người phục vụ {
nghe 443 ssl http2;
nghe [::]: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;
trả lại 301 https://www.example.it$request_uri;
}
người phục vụ {
nghe 443 ssl http2;
nghe [::]: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;
trả lại 301 https://www.example.it/speciale/innovation$request_uri;
}
người phục vụ {
nghe 443 ssl http2;
nghe [::]: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;
gốc /home/triển khai/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;
vị trí @puma_example.it {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Máy chủ lưu trữ $host;
proxy_redirect tắt;
proxy_set_header Nâng cấp $http_upgrade;
proxy_set_header Kết nối "Nâng cấp";
ssi trên;
proxy_set_header X-Forwarded-Proto https;
proxy_pass http://puma_example.it;
# giới hạn_req vùng=một;
access_log /home/deploy/apps/example.it/shared/log/nginx.access.log;
error_log /home/deploy/apps/example.it/shared/log/nginx.error.log;
}
vị trí ^~ /hình ảnh/ {
hết hạn tối đa;
add_header Kiểm soát bộ đệm công khai;
}
vị trí ~ ^/(nội dung|gói)/ {
bật gzip_static;
brotli_static bật;
hết hạn tối đa;
add_header Kiểm soát bộ đệm công khai;
}
vị trí = /50x.html {
html gốc;
}
vị trí @503 {
error_page 405 = /system/maintenance.html;
nếu (-f $document_root/system/maintenance.html) {
viết lại ^(.*)$ /system/maintenance.html ngắt;
}
viết lại ^(.*)$ /503.html ngắt;
}
if ($request_method !~ ^(GET|HEAD|PUT|PATCH|POST|DELETE|OPTIONS)$ ){
trả lại 405;
}
nếu (-f $document_root/system/maintenance.html) {
trả lại 503;
}
}