У меня есть конфигурационный файл. Это старый.
server {
listen 80;
server_name .lala.mana.lan;
access_log /var/log/nginx/lala.access.log;
error_log /var/log/nginx/lala.error.log;
proxy_conect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
location / {
proxy_pass http://lala
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_redirect off;
}
location ~* /web/static/{
proxy_cache_valid 200 60m;
proxy_buffering on;
proxy_pass http://lala;
}
}
А теперь пытаюсь сделать перенаправление с одного сайта на другой с http на https. Вот мой отредактированный файл конфигурации:
server {
listen 80;
listen 443 ssl;
ssl_certificate /etc/ssl/mana.crt;
ssl_certificate_key /etc/ssl/mana.key;
server_name .lala.mana.lan;
return 301
https://lala.mana.lt$request_uri;
access_log /var/log/nginx/lala.access.log;
error_log /var/log/nginx/lala.error.log;
proxy_conect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
location / {
proxy_pass http://lala
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_redirect off;
}
location ~* /web/static/{
proxy_cache_valid 200 60m;
proxy_buffering on;
proxy_pass http://lala;
}
client_header_buffer_size 64k;
large_client_header_buffers 4 64k;
}
У вас должны быть отдельные блоки для http и https для перенаправления от одного к другому.
Итак, ваша конфигурация должна выглядеть так:
server {
listen 80;
server_name lala.man.lt;
return 301 https://lala.man.lt$request_uri;
}
server {
listen 443 ssl;
server_name lala.man.lt;
ssl_certificate /etc/ssl/mana.crt;
ssl_certificate_key /etc/ssl/mana.key;
access_log /var/log/nginx/lala.access.log;
error_log /var/log/nginx/lala.error.log;
proxy_conect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
location / {
proxy_pass http://lala
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_redirect off;
}
location /web/static/ {
proxy_cache_valid 200 60m;
proxy_buffering on;
proxy_pass http://lala;
}
client_header_buffer_size 64k;
large_client_header_buffers 4 64k;
}
Я также починил твой /web/static
блок location для использования простого сопоставления префиксов, включая совпадение регулярных выражений, не требуется.