nginx - nginx 使用 https 和 http 设置两个子域不起作用
问题描述
我有两个站点要在我的服务器上使用 nginx 对它们进行负载平衡。第一个是 www.something.club,另一个是 extras.something.club。第一个已经有 https 和 http 设置,而 extras.something.club 我还没有设置 https 证书,所以只需要 http。
这里的问题是,当我点击 extras.something.club 时,它会打开与 www.something.club 相同的页面,并且会重定向到https://extras.something.club。此处页面应加载 extra.something.club 拥有页面,并且我不需要 https,因为证书属于 www,无论如何它都会开始给我警告。以下是我正在使用的配置。
www.something.com 在 /etc/nginx/sites-available/web.conf 有文件,在 /etc/nginx/sites-enabled/web.conf 有符号链接。下面是配置:
upstream webapp {
server 123.123.0.12:8080;
server 123.234.0.18:8080;
}
server {
listen 80;
server_name www.something.club;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name www.something.club;
ssl on;
ssl_certificate /etc/letsencrypt/live/www.something.club/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.something.club/privkey.pem;
# skipping some more ssl settings.
access_log /var/log/nginx/web.access.log;
add_header Strict-Transport-Security "max-age=31536000";
location / {
proxy_pass http://webapp;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
extras.something.com 在 /etc/nginx/sites-available/extras.conf 有文件,在 /etc/nginx/sites-enabled/extras.conf 有符号链接
upstream extraswebapp {
server 123.123.0.12:8081;
server 123.234.0.18:8081;
}
server {
listen 80;
server_name extras.something.club;
access_log /var/log/nginx/web.access.log;
add_header Strict-Transport-Security "max-age=31536000";
location / {
proxy_pass http://extraswebapp;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
我已经用各种网站+文档上的许多示例验证了这个配置。我无法找到任何错误。此外,代码中没有任何内容将 http 重定向到 https 以获取 extra.something.club 另外,如果我使用这些端口访问直接 IP,它工作得非常好并且不会像 Nginx 那样重定向到 https。
有人可以帮我找出问题吗?
解决方案
推荐阅读
- javascript - Angular ngx-select-dropdown:下拉选项不更新
- javascript - 未经验证在 JavaScript 上使用 window.location.href 和用户输入是否安全?
- sql - SQL - 索引 NULL 列的成本
- forms - 在通过 Google 表单提交新行时自动填充不同 Google 表格中的各个列
- c# - CISCO IP电话的C#客户端,使用tapi3lib,在win 10中不起作用
- javascript - 人类可读格式的两个日期之间的差异
- python - 如何在 python 中改进 playfair 的模拟退火 - 如何确保分数上升?
- c++ - 为什么我的程序在访问指针的值时会返回垃圾?
- android - Gradle 项目同步失败。基本功能(例如编辑调试)将无法正常工作
- scala - IllegalArgumentException:'字段“标签”不存在 Spark MLlib