
以下配置是从网上抄的,只是将对应的域名,日志,证书等路径替换了一下。
本来想配置一个 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 要是不用 www ,直接取消 www 的 dns 解析 如果要用,就单独配置个 www 的 ssl |
2 ysc3839 2022-02-22 12:31:59 +08:00 via Android 这没问题,因为你只给 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 http://nginx.org/en/docs/http/request_processing.html 这篇文档有说怎么处理未定义的 server_name |
5 EminemW 2022-02-22 12:38:30 +08:00 via iPhone 配多一个 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 div class="badge op">OP 2022-02-22 13:36:08 +08:00 搞定,一个 default server 解决 |