以下配置是从网上抄的,只是将对应的域名,日志,证书等路径替换了一下。
本来想配置一个 code.roudodo.top
, 但是发现 www.roudodo.top
也能访问。
唯一的区别,www 会提示证书不对,用中文 google 了一会,也没找到原因,英文也不知道搜索啥关键词,只能求助一下了。
server {
listen 80;
server_name code.roudodo.top;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
ssl on;
server_name code.roudodo.top;
ssl_certificate /etc/nginx/ssl/code.roudodo.top.pem;
ssl_certificate_key /etc/nginx/ssl/code.roudodo.top.key;
keepalive_timeout 70;
# 禁止在 header 中出现服务器版本,防止黑客利用版本漏洞攻击
server_tokens off;
# root /home/dong/app/myblog/public;
# index index.html;
access_log /var/log/nginx/code.roudodo.top.access.log;
error_log /var/log/nginx/code.roudodo.top.error.log;
client_max_body_size 100m;
location / { # 访问 80 端口后的所有路径都转发到 proxy_pass 配置的 ip 中
proxy_pass http://127.0.0.1:11000; #
proxy_set_header Host $proxy_host; #
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_set_header Upgrade $http_upgrade;
# proxy_set_header Connection $connection_upgrade;
}
}
1
dem0ns 2022-02-22 12:29:28 +08:00 1
要是不用 www ,直接取消 www 的 dns 解析
如果要用,就单独配置个 www 的 ssl |
2
ysc3839 2022-02-22 12:31:59 +08:00 via Android 1
这没问题,因为你只给 nginx 443 端口上配置了一个 server ,这个 server 就会成为 default server ,其他域名的请求也都会到这个 server 上
|
3
lindas 2022-02-22 12:34:15 +08:00
www 的请求命中 nginx 第二个 443 端口的 server 了,可以再加个 server 处理这些未定义的 server_name
|
4
lindas 2022-02-22 12:36:04 +08:00 1
http://nginx.org/en/docs/http/request_processing.html 这篇文档有说怎么处理未定义的 server_name
|
5
EminemW 2022-02-22 12:38:30 +08:00 via iPhone 1
配多一个 default server
|
6
superfatboy OP |
7
JensenQian 2022-02-22 12:42:32 +08:00 via Android
整个泛域名证书装上去
|
8
superfatboy OP @JensenQian 不好意思,可能没描述清楚,本意是不让 www 访问,只允许 code 域名访问
|
9
superfatboy OP 搞定,一个 default server 解决
|