【发布时间】:2022-06-14 18:50:31
【问题描述】:
我在 Nginx 文档中读到,应该创建新的服务器块,而不是使用 IF。
我尝试制作另一个块来监听 443 ssl,只是为了设置 redvi.eu(非 www)然后相应地重定向它。由于重复而失败。
这里如何重定向https非www的正确方法?
server {
listen 80 default_server;
server_name www.redvi.eu redvi.eu;
return 301 https://www.redvi.eu$request_uri;
}
server {
server_name www.redvi.eu;
root /home/deploy/redvi/current/public;
passenger_enabled on;
passenger_app_env production;
location /cable {
passenger_app_group_name redvi_websocket;
passenger_force_max_concurrent_requests_per_process 0;
}
# Allow uploads up to 100MB in size
client_max_body_size 100m;
location ~ ^/(assets|packs) {
expires max;
gzip_static on;
}
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/www.redvi.eu/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/www.redvi.eu/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
【问题讨论】:
-
你需要三个服务器块才能做到这一点。 Here 是将 www 重定向到非 www 的示例;你需要做相反的事情。
-
感谢您的回答。如果我唯一要做的就是重定向,我真的需要在第一个块中定义证书吗?
-
如果在启用 ssl 的端口上侦听的服务器块没有证书/密钥声明,Nginx 将拒绝启动。
标签: nginx