node.js - nginx redirect www to non-www
问题描述
i have nginx config on my server, but i'm facing an issue with the url if access my domain directly using example.com it works (not secure - i have to redirect to https)
also if i tried to access it directly using www.example.com, it won't work and i got this message
so mainly i have two issues: redirect non-http to https and redirect www to non-www
my server running nodejs app
This site can’t be reached www.example.com’s server IP address could not be found. DNS_PROBE_FINISHED_NXDOMAIN
server {
listen 80;
listen 443 ssl;
server_name www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
return 301 $scheme://example.com$request_uri;
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_redirect off;
}
location /api {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_redirect off;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
解决方案
要重定向到 https,您应该有一个包含所有配置的服务器块listen 443 ssl;
,以及另一个具有如下配置的服务器块:
server {
return 301 https://$host$request_uri;
server_name example.com
listen 80;
}
www 站点是一个不同的域,您应该在您的 dns 服务器中为其设置 ip 地址。您对 www 站点的配置看起来不错
推荐阅读
- git - 删除为多个存储库创建的单个 git 分支
- python-3.x - 在响应中将 lxml etree 作为 svg 发送
- c++ - 具有自定义范围 [0, 64] 的 C++ 数据类型?
- javascript - 将传单控制地理编码器与反应传单一起使用
- java - 为什么将 @Repository 放在 Spring Data JPA 接口之上?
- python - 如何使用 Python 为单元格填充颜色
- sql - 如何替换整数?
- winapi - WaitForDebugEvent[Ex] 如何报告超时?
- lightgbm - LightGBM cli 是否支持“feature_name”配置?
- google-bigquery - 在 BigQuery 中创建测试数据