gpt4 book ai didi

ssl - 在 nginx 的主域而不是子域中应用 SSL 和 www

转载 作者:太空宇宙 更新时间:2023-11-03 14:06:04 26 4
gpt4 key购买 nike

每当我为域(“xyz.com”)键入任何内容时,我都会在浏览器中将 SSL (https) 和 www 应用于域(“https://www.xyz.com”)。

我也有子域,我不想在子域中应用“www”(这工作正常)。

一切都很好,除非我在浏览器中输入“https://xyz.com”,ngingx 不应用 www(它应该是“https://www.xyz.com”)但它给出了“https://xyz.com”。

以下是sites-available的配置文件:

server {
listen 443;
server_name xyz.com *.xyz.com;
ssl on;
ssl_certificate /etc/nginx/ssl/xyz.crt;
ssl_certificate_key /etc/nginx/ssl/*.xyz.com.key;
ssl_session_timeout 5m;
ssl_protocols SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://127.0.0.1:8069;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_buffer_size 128k;
proxy_buffers 16 64k;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
location ~* /web/static/ {
proxy_buffering off;
proxy_pass http://127.0.0.1:8069;
}
}
}

server {
listen 80;
server_name xyz.com;
add_header Strict-Transport-Security max-age=2592000;
rewrite ^/.*$ https://www.$host$request_uri? permanent;
}

server {
listen 80;
server_name *.xyz.com;
add_header Strict-Transport-Security max-age=2592000;
rewrite ^/.*$ https://$host$request_uri? permanent;
}

请指导我哪里做错了。

提前致谢。

最佳答案

add_header Strict-Transport-Security max-age=2592000; 选项移动到具有 443 端口的 ssl 服务器 block 。

server {
listen 443;
add_header Strict-Transport-Security max-age=2592000;
# rest configs
}

将 http 80 block 更改为

server {
listen 80;
listen [::]:80;
server_name example.com;
return 301 https://www.example.com$request_uri; # permenent redirect
}

注意:对 nginx 配置所做的任何更改都需要向 nginx 进程发出 reload 信号,以便在 ubuntu 中应用更改它需要 sudo service nginx reload

关于ssl - 在 nginx 的主域而不是子域中应用 SSL 和 www,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41426850/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com