我想在 NGINX 服务器块中从 http 重定向到 https。
根据相关帖子中的答案,我尝试在以下 NGINX 配置文件中添加另一个服务器块,但收到“冲突服务器名称”警告,因为(可能)的值server_name
不包括协议前缀:
server {
listen 80;
listen 443 ssl;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
server_name sub.domain.co.uk;
return 302 https://sub.domain.co.uk$request_uri;
}
server {
listen 443 ssl;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
server_name sub.domain.co.uk;
location / {
root /home/saves/webapps/html/;
index index.html;
}
location /api/ {
[...]
}
}
问题是您已经配置了两个服务器块在同一端口上使用相同的服务器名称侦听 SSL,并且 nginx 无法决定在这些条件下选择哪一个。将其更改为:
我考虑了这一点,做了一些研究,并在主要服务器块之前使用了一个更简单的服务器块来解决它,来自这个答案:
但最终在对此发表评论后对其进行了修改:
因此,感谢你们两位迅速而有用的回复。