Cái này có để là một bản sao, nhưng tôi đã tìm kiếm trong một thời gian dài và không tìm thấy bất cứ điều gì.
Khi tôi nhập địa chỉ trang web của mình bằng cách sử dụng http, tôi nhận được Trang mặc định của NginX (https hoạt động tốt):
http://svija.love
Tệp cấu hình NginX chứa, ở cuối:
người phục vụ {
nếu ($host = svija.love) {
trả lại 301 https://$host$request_uri;
} # được quản lý bởi Certbot
server_name svija.love;
nghe 80;
trả lại 404; # được quản lý bởi Certbot
}
Đây là được thêm tự động bởi Certbot.
Tôi mong đợi rằng tuyên bố nếu ($host = svija.love) sẽ bắt yêu cầu http và chuyển hướng đến HTTPS.
Nhưng nó không hoạt động theo cách đó.
Đối với tôi, không phải là chuyên gia, có vẻ như bit thứ hai, bắt đầu bằng server_name svija.love, mâu thuẫn trực tiếp với phần đầu tiên:
- khối đầu tiên chuyển hướng nếu máy chủ là svija.love
- khối thứ hai trả về 404 nếu máy chủ là svija.love
Tên máy chủ thực tế, được cấu hình là live.svija.love, nếu điều đó tạo nên sự khác biệt.
Bất kỳ làm rõ sẽ được đánh giá rất cao.
[CẬP NHẬT] Tôi đã xóa tệp cấu hình mặc định NginX và HTTP hiện chuyển hướng đến HTTPS như mong đợi.
Tuy nhiên, nếu ai đó có thể giải thích hai khối cấu hình ở trên, tôi rất muốn hiểu rõ hơn về những gì họ đang làm.
[CẬP NHẬT] Đây không phải là một giải pháp tốt (xem bên dưới).
[CẬP NHẬT Đây là cấu hình được cung cấp bởi nginx -T:
# tập tin cấu hình /etc/nginx/nginx.conf:
dữ liệu www của người dùng;
worker_processes tự động;
pid /run/nginx.pid;
bao gồm /etc/nginx/modules-enabled/*.conf;
sự kiện {
công_nhân kết_nối 768 ;
# đa_chấp vào ;
}
http {
##
# Cài đặt cơ bản
##
gửi tệp tắt;
bật tcp_nopus;
bật tcp_nodelay;
keepalive_timeout 65;
loại_hash_max_size 2048;
# server_token tắt;
# server_name_hash_bucket_size 64;
# máy chủ_tên_trong_chuyển hướng tắt;
bao gồm /etc/nginx/mime.types;
ứng dụng default_type/octet-stream;
##
# Cài đặt SSL
##
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Bỏ SSLv3, tham khảo: POODLE
bật ssl_prefer_server_ciphers;
##
# Cài đặt ghi nhật ký
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Cài đặt Gzip
##
bật gzip;
# gzip_vary bật;
# gzip_proxied bất kỳ;
# gzip_comp_cấp 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# văn bản gzip_types/văn bản thuần túy/ứng dụng css/ứng dụng json/văn bản javascript/ứng dụng xml/ứng dụng xml/xml+văn bản rss/javascript;
##
# Cấu hình máy chủ ảo
##
bao gồm /etc/nginx/conf.d/*.conf;
bao gồm /etc/nginx/sites-enabled/*;
}
# tệp cấu hình /etc/nginx/modules-enabled/50-mod-http-image-filter.conf:
mô-đun load_module/ngx_http_image_filter_module.so;
# tệp cấu hình /etc/nginx/modules-enabled/50-mod-http-xslt-filter.conf:
mô-đun load_module/ngx_http_xslt_filter_module.so;
# tệp cấu hình /etc/nginx/modules-enabled/50-mod-mail.conf:
mô-đun load_module/ngx_mail_module.so;
# tệp cấu hình /etc/nginx/modules-enabled/50-mod-stream.conf:
mô-đun load_module/ngx_stream_module.so;
# tập tin cấu hình /etc/nginx/mime.types:
người phục vụ {
# phải khớp với tên miền hoặc địa chỉ IP
# nếu không thì trang Nginx mặc định sẽ được hiển thị
server_name antretoise.svija.site;
# thư mục chứa các phần tử tĩnh của trang web
vị trí /tĩnh/ {
gốc/nhà/antretoise;
}
access_log /opt/logs/access.antretoise;
error_log /opt/logs/error.antretoise lỗi;
# chuyển tất cả các truy vấn bổ sung cho ứng dụng của chúng tôi
địa điểm / {
# tham số từ /etc/nginx/uwsgi_params
bao gồm uwsgi_params;
# truyền lưu lượng đến ổ cắm
# mà máy chủ uWSGI thiết lập
# Ổ CẮM PHẢI GẮN TRONG:
# /etc/uwsgi/sites/antretoise.ini
uwsgi_pass unix:/run/uwsgi/antretoise.sock;
}
nghe 443 ssl; # được quản lý bởi Certbot
ssl_certificate /etc/letsencrypt/live/antretoise.svija.site/fullchain.pem; # được quản lý bởi Certbot
ssl_certificate_key /etc/letsencrypt/live/antretoise.svija.site/privkey.pem; # được quản lý bởi Certbot
bao gồm /etc/letsencrypt/options-ssl-nginx.conf; # được quản lý bởi Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # được quản lý bởi Certbot
}
người phục vụ {
if ($host = antretoise.svija.site) {
trả lại 301 https://$host$request_uri;
} # được quản lý bởi Certbot
nghe 80;
server_name antretoise.svija.site;
trả lại 404; # được quản lý bởi Certbot
}
# tập tin cấu hình /etc/nginx/uwsgi_params:
uwsgi_param QUERY_STRING $query_string;
uwsgi_param REQUEST_METHOD $request_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 $scheme;
uwsgi_param HTTPS $https if_not_empty;
uwsgi_param REMOTE_ADDR $remote_addr;
uwsgi_param REMOTE_PORT $remote_port;
uwsgi_param SERVER_PORT $server_port;
uwsgi_param SERVER_NAME $server_name;
ssl_session_cache được chia sẻ:le_nginx_SSL:10m;
ssl_session_timeout 1440m;
tắt ssl_session_tickets;
ssl_protocols TLSv1.2 TLSv1.3;
tắt ssl_prefer_server_ciphers;
ssl_ciphers "EC-AES128-SHA";
#âââââââââââââââââ ââââââââââââââââ âââââââ mặc định
người phục vụ {
nghe 80 default_server;
lắng nghe [::]:80 default_server;
gốc/var/www/html;
# Thêm index.php vào danh sách nếu bạn đang sử dụng PHP
chỉ mục index.html index.htm index.nginx-debian.html;
tên máy chủ _;
địa điểm / {
# Lần đầu tiên cố gắng phục vụ yêu cầu dưới dạng tệp, sau đó
# làm thư mục, sau đó quay lại hiển thị lỗi 404.
try_files $uri $uri/ =404;
}
}
#âââââââââââââââââ ââââââââââââââââ âââââââ svija.love
người phục vụ {
server_name svija.love;
# thư mục chứa các phần tử tĩnh của trang web
vị trí /tĩnh/ {
gốc/nhà/svijalove;
}
access_log /opt/logs/access.svijalove;
error_log /opt/logs/error.svijalove lỗi;
# chuyển tất cả các truy vấn bổ sung cho ứng dụng của chúng tôi
địa điểm / {
# tham số từ /etc/nginx/uwsgi_params
bao gồm uwsgi_params;
# truyền lưu lượng đến ổ cắm
# mà máy chủ uWSGI thiết lập
# Ổ CẮM PHẢI GẮN TRONG:
# /etc/uwsgi/sites/svijalove.ini
uwsgi_pass unix:/run/uwsgi/svijalove.sock;
}
nghe 443 ssl; # được quản lý bởi Certbot
ssl_certificate /etc/letsencrypt/live/svija.love/fullchain.pem; # được quản lý bởi Certbot
ssl_certificate_key /etc/letsencrypt/live/svija.love/privkey.pem; # được quản lý bởi Certbot
bao gồm /etc/letsencrypt/options-ssl-nginx.conf; # được quản lý bởi Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # được quản lý bởi Certbot
}
người phục vụ {
nếu ($host = svija.love) {
trả lại 301 https://$host$request_uri;
} # được quản lý bởi Certbot
server_name svija.love;
nghe 80;
trả lại 404; # được quản lý bởi Certbot
}
# 6 trang web khác ở cuối, tất cả đều được định cấu hình theo cùng một cách
# ngoại trừ trong hai dòng cuối cùng,
#nghe80; đôi khi được liệt kê TRƯỚC return 404;