nginx 配置不带www的域名转发到www域名

首先把www记录的域名解析到主机ip上,由于我的网站上运行的是前后端分离项目,通过nginx转发请求,所以需要在nginx配置上处理,将dsiab.com、http://dsiab.com、https://dsiab.com 统一转发到https://www.dsiab.com,这样不管理请求哪一个域名,最后到达的地址都是一样的,方便记忆,也集中的网站的权重。
 
下面就看一下我目前的nginx配置,其他无关配置已隐藏:

http: {
  server {
    listen 443;
    server_name www.dsiab.com;
    ssl_certificate /usr/local/nginx/conf/1_www.dsiab.com_bundle.crt;
    ssl_certificate_key /usr/local/nginx/conf/2_www.dsiab.com.key;
    ssl on;
    access_log /data/wwwlogs/access_nginx.log combined;
    root /data/wwwroot/default/;
    index index.html index.htm index.jsp;
   }
   server {
    listen 80;
    server_name dsiab.com,www.dsiab.com;
    return 301 https://www.dsiab.com$request_uri;
   }
   server {
    listen 443;
    server_name dsiab.com;
    return 301 https://www.dsiab.com$request_uri;
  }
}

第一个server就是主配置,默认监听443端口,主域名是www.dsiab.com,打开了https访问,第二个server主是是监听80端口,主要是把非https的两个域名重定向到https的主域名,第三个是把https的不带www的域名重定向到主域名,这样其他域名通过301重定向到主域名,就都可以访问了。

本文章由javascript技术分享原创和收集

发表评论 (审核通过后显示评论):