【发布时间】:2017-10-06 04:06:32
【问题描述】:
我在 nginx 中配置了 2 个虚拟主机,并且都使用 ssl 以将 http://www.firstsite.com 重定向到 https://www.firstsite.com 并且它工作正常,问题是 http://www.secondsite.com 不是重定向到 https://www.secondsite.com,而是重定向到 @ 987654325@
这是第一个配置文件
server {
listen 80;
return 301 https://www.dianadelvalle.com$request_uri;
server_name www.dianadelvalle.com;
}
server{
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/www.koohack.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.koohack.com/privkey.pem;
root /home/pi/www.dianadelvalle.com/;
index commingsoon.html index.html index.htm index.nginx-debian.html;
server_name www.dianadelvalle.com;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
# max upload size
client_max_body_size 5M; # adjust to taste
location / {
try_files $uri $uri/ =404;
}
}
和第二个配置文件:
# the upstream component nginx needs to connect to
upstream django {
server unix:///home/pi/koohack/mysite.sock; # for a file socket
#server 127.0.0.1:8001; # for a web port socket (we'll use this first)
}
server {
listen 80;
server_name www.koohack.com;
return 301 https://www.koohack.com$request_uri;
}
# configuration of the server
server {
listen 443 ssl;
server_name www.koohack.com;
ssl_certificate /etc/letsencrypt/live/www.koohack.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.koohack.com/privkey.pem;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
# max upload size
client_max_body_size 15M; # adjust to taste
if (-f /home/pi/koohack/.maintenance) {
return 503;
}
error_page 503 @maintenance;
location @maintenance {
rewrite ^(.*)$ /home/pi/koohack/static/maintenance.html break;
}
# Django media
location /media {
alias /home/pi/koohack/media; # your Django project's media files - amend as required
}
location /static {
alias /home/pi/koohack/static; # your Django project's static files - amend as required
}
# Finally, send all non-media requests to the Django server.
location / {
uwsgi_pass django;
include /etc/nginx/uwsgi_params; # the uwsgi_params file you installed
}
location /.well-known {
alias /home/pi/koohack/.well-known;
}
}
为了清楚起见,我省略了服务器名称、日志和证书路径。我做错了什么?有什么建议吗?
必要说明:我已经查看this possible answer 以避免内容重复,但没有帮助
【问题讨论】:
-
使用
nginx -t和nginx -T来测试和查看配置。您说您已经编辑了server_name语句,这使得评论您的配置变得困难。nginx将使用default_server如果找不到与请求的域名匹配的内容。请参阅this document 了解更多信息。 -
您是否在配置的
listen 80块中定义了server_name? -
我刚刚更新为使用真正的 conf 文件发布,希望你们@RichardSmith 和@"Tarun Lalwani" 现在更清楚了。对不起,我昨晚太忙了,回复晚了:)
-
显然第三个
server块仅在www包含在域名中时才匹配。检查拼写,使用我之前评论中的命令检查配置,检查访问日志(因为这可能会告诉你发生了什么),确保重新启动服务器并在任何更改之间清除浏览器缓存。 -
伙计,这太疯狂了!我根本没有改变任何东西,现在正在按预期工作!我会选择你的答案作为解决方案,因为你是大多数时候回复的人。感谢您的宝贵时间
标签: ssl nginx lets-encrypt