Acest are sa fie un duplicat, dar caut de mult si nu am gasit nimic.
Când introduc adresa site-ului meu folosind http, înțeleg Pagina implicită NginX (https funcționează bine):
http://svija.love
Fișierul de configurare NginX conține, la sfârșit:
Server {
if ($gazdă = svija.love) {
returnează 301 https://$host$request_uri;
} # gestionat de Certbot
nume_server svija.love;
asculta 80;
întoarce 404; # gestionat de Certbot
}
Acesta a fost adăugat automat de Certbot.
M-aș aștepta ca declarația dacă ($gazdă = svija.love) ar prinde cererea http și va redirecționa către HTTPS.
Dar nu funcționează așa.
Nefiind expert, mi se pare că al doilea bit, începând cu nume_server svija.love, este în contradicție directă cu prima parte:
- primul bloc redirecționează dacă gazda este svija.love
- al doilea bloc returnează 404 dacă gazda este svija.love
Numele actual al serverului configurat este live.svija.love, dacă asta face diferența.
Orice clarificare ar fi foarte apreciată.
[ACTUALIZAȚI] Am eliminat fișierul de configurare implicit NginX și HTTP acum redirecționează către HTTPS așa cum era de așteptat.
Totuși, dacă cineva poate explica cele două blocuri de configurare de mai sus, mi-ar plăcea să înțeleg mai bine ce fac.
[ACTUALIZAȚI] Aceasta nu a fost o soluție bună (vezi mai jos).
[ACTUALIZAȚI Iată configurația dată de nginx -T:
# fișier de configurare /etc/nginx/nginx.conf:
utilizator www-date;
worker_proceses auto;
pid /run/nginx.pid;
includ /etc/nginx/modules-enabled/*.conf;
evenimente {
conexiuni_muncitor 768;
# multi_accept on;
}
http {
##
# Setări de bază
##
sendfile dezactivat;
tcp_nopush activat;
tcp_nodelay activat;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
includ /etc/nginx/mime.types;
aplicație de tip_default/octet-stream;
##
# Setări SSL
##
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Eliminarea SSLv3, ref: POODLE
ssl_prefer_server_ciphers activat;
##
# Setări de înregistrare
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Setări Gzip
##
gzip on;
# gzip_vary on;
# gzip_proxied orice;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
##
# Configurații gazdă virtuală
##
includ /etc/nginx/conf.d/*.conf;
includ /etc/nginx/sites-enabled/*;
}
# fișier de configurare /etc/nginx/modules-enabled/50-mod-http-image-filter.conf:
load_module modules/ngx_http_image_filter_module.so;
# fișier de configurare /etc/nginx/modules-enabled/50-mod-http-xslt-filter.conf:
load_module modules/ngx_http_xslt_filter_module.so;
# fișier de configurare /etc/nginx/modules-enabled/50-mod-mail.conf:
load_module modules/ngx_mail_module.so;
# fișier de configurare /etc/nginx/modules-enabled/50-mod-stream.conf:
load_module modules/ngx_stream_module.so;
# fișier de configurare /etc/nginx/mime.types:
Server {
# trebuie să se potrivească cu numele de domeniu sau adresa IP
# sau altfel va fi afișată pagina Nginx implicită
nume_server antretoise.svija.site;
# director cu elementele statice ale site-ului
locație /static/ {
rădăcină /acasă/antretoise;
}
access_log /opt/logs/access.antretoise;
error_log /opt/logs/error.antretoise eroare;
# transmiteți toate întrebările suplimentare aplicației noastre
Locație / {
# parametri din /etc/nginx/uwsgi_params
include uwsgi_params;
# trece traficul la priză
# pe care serverul uWSGI îl setează
# PRIZE TREBUIE SE POATE ÎN:
# /etc/uwsgi/sites/antretoise.ini
uwsgi_pass unix:/run/uwsgi/antretoise.sock;
}
asculta 443 ssl; # gestionat de Certbot
ssl_certificate /etc/letsencrypt/live/antretoise.svija.site/fullchain.pem; # gestionat de Certbot
ssl_certificate_key /etc/letsencrypt/live/antretoise.svija.site/privkey.pem; # gestionat de Certbot
includ /etc/letsencrypt/options-ssl-nginx.conf; # gestionat de Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # gestionat de Certbot
}
Server {
if ($gazdă = antretoise.svija.site) {
returnează 301 https://$host$request_uri;
} # gestionat de Certbot
asculta 80;
nume_server antretoise.svija.site;
întoarce 404; # gestionat de Certbot
}
# fișier de configurare /etc/nginx/uwsgi_params:
uwsgi_param QUERY_STRING $șir_interogare;
uwsgi_param REQUEST_METHOD $cerere_method;
uwsgi_param CONTENT_TYPE $content_type;
uwsgi_param CONTENT_LENGTH $content_length;
uwsgi_param REQUEST_URI $request_uri;
uwsgi_param PATH_INFO $document_uri;
uwsgi_param DOCUMENT_ROOT $document_root;
uwsgi_param SERVER_PROTOCOL $server_protocol;
uwsgi_param REQUEST_SCHEME $schemă;
uwsgi_param HTTPS $https dacă_nu_vide;
uwsgi_param REMOTE_ADDR $adresă_la distanță;
uwsgi_param REMOTE_PORT $remote_port;
uwsgi_param SERVER_PORT $server_port;
uwsgi_param SERVER_NAME $server_name;
ssl_session_cache shared:le_nginx_SSL:10m;
ssl_session_timeout 1440m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers dezactivat;
ssl_ciphers „EC-AES128-SHA”;
#… ½ âââââââ implicit
Server {
asculta 80 default_server;
asculta [::]:80 default_server;
rădăcină /var/www/html;
# Adăugați index.php la listă dacă utilizați PHP
index index.html index.htm index.nginx-debian.html;
numele serverului _;
Locație / {
# Mai întâi încercați să serviți cererea ca fișier, apoi
# ca director, apoi reveniți la afișarea unui 404.
try_files $uri $uri/ =404;
}
}
#… ½ âââââââ svija.love
Server {
nume_server svija.love;
# director cu elementele statice ale site-ului
locație /static/ {
rădăcină /home/svijalove;
}
access_log /opt/logs/access.svijalove;
error_log /opt/logs/error.svijalove eroare;
# transmiteți toate întrebările suplimentare aplicației noastre
Locație / {
# parametri din /etc/nginx/uwsgi_params
include uwsgi_params;
# trece traficul la priză
# pe care serverul uWSGI îl setează
# PRIZE TREBUIE SE POATE ÎN:
# /etc/uwsgi/sites/svijalove.ini
uwsgi_pass unix:/run/uwsgi/svijalove.sock;
}
asculta 443 ssl; # gestionat de Certbot
ssl_certificate /etc/letsencrypt/live/svija.love/fullchain.pem; # gestionat de Certbot
ssl_certificate_key /etc/letsencrypt/live/svija.love/privkey.pem; # gestionat de Certbot
includ /etc/letsencrypt/options-ssl-nginx.conf; # gestionat de Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # gestionat de Certbot
}
Server {
if ($gazdă = svija.love) {
returnează 301 https://$host$request_uri;
} # gestionat de Certbot
nume_server svija.love;
asculta 80;
întoarce 404; # gestionat de Certbot
}
# 6 alte site-uri la final, toate configurate la fel
# cu excepția faptului că în ultimele două rânduri,
# asculta 80; este uneori listat ÎNAINTE de returnare 404;