美文网首页
二级域名www和顶级域名的nginx配置注意事项

二级域名www和顶级域名的nginx配置注意事项

作者: DimonHo | 来源:发表于2018-06-14 17:50 被阅读156次

    一个顶级域名下面可以配置多个二级域名,而通常我们直接访问顶级域名http://dimonho.com的时候,默认应该让用户跳转到http://www.dimonho.com
    一开始,在配置nginx的时候,我是直接写成下面那样的:

    server{
            listen        80;
            server_name  dimonho.com www.dimonho.com;
            location / {
                proxy_pass http://192.168.1.92:18080;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                client_max_body_size 100m;
            }
        }
    
    

    这样无论在浏览器地址栏输入dimonho.com还是www.dimonho.com都能访问到我的项目,但这样有个问题,当同一个用户在一个浏览器中访问这两个不同的url的时候,session是不一样的,这时候你会发现,在dimonho.com中登陆后,再去访问www.dimonho.com仍然需要重新登陆,同样的在dimonho.com中退出后,www.dimonho.com并没有退出。
    解决方式是当用户在浏览器中直接输入顶级域名访问的时候,我们应该将其重定向到www.dimonho.com下,统一用户的访问入口。将nginx稍作修改,如下:

    server{
            listen        80;
            server_name  dimonho.com www.dimonho.com;
            if ($host = 'dimonho.com'){
                rewrite ^/(.*)$ http://www.dimonho.com/$1 permanent;
            }
            location / {
                proxy_pass http://192.168.1.92:18080;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                client_max_body_size 100m;
            }
        }
    

    相关文章

      网友评论

          本文标题:二级域名www和顶级域名的nginx配置注意事项

          本文链接:https://www.haomeiwen.com/subject/htayeftx.html