Nginx 单IP绑定多域名配置 顶级域名重定向到www域名

Nginx 单IP绑定多域名配置 顶级域名重定向到www域名


在网站部署中,通常会有多个域名,可以是多个子域名也可以是其它域名,例如我的域名是yddsj.com,有以下域名需要绑定

www.yddsj.com

blog.yddsj.com

bbs.yddsj.com

www.abc.com

且每个域名对应的是一个网站程序,而我们只有一个公网IP的时候应该怎样去解析这么多域名并将他们转发到各自的网站程序呢?


另外,本文讲解的前提是以上所有域名都能解析到你的服务器上的nginx服务器了,且本文为例的yddsj.com都是虚构的域名...


nginx单IP多域名配置

     
    # 博客网站程序路径
    upstream blog {
        server 127.0.0.1:9001;      
    }
     
    # 论坛网站程序路径
    upstream bbs {
        server 127.0.0.1:9002;      
    }
     
    # xx网站程序路径
    upstream abc {
        server 127.0.0.1:9003;      
    }
     
    server {
        listen       80;
        server_name  blog.yddsj.com;  # 博客网站域名
        location / {
            index  index.html index.jsp;    
            proxy_pass  http://blog;    
            proxy_set_header   REMOTE-HOST $remote_addr;
            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;
        }
    }
    server {
        listen       80;
        server_name  bbs.yddsj.com;
        location / {
            index  index.html index.php;  # 论坛网站域名  
            proxy_pass  http://bbs;    
            proxy_set_header   REMOTE-HOST $remote_addr;
            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;
        }
    }
    server {
        listen       80;
        server_name  www.abc.com;
        location / {
            index  index.html index.php;   # xx网站域名
            proxy_pass  http://abc;    
            proxy_set_header   REMOTE-HOST $remote_addr;
            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;
        }
    }


主要是配置一个upstream指定后端代理的网站地址,再配置一个server,指定其中的server_name为你的域名,以及proxy_pass为upstream的名称。


nginx 顶级域名重定向到www域名

至于顶级域名为什么要重定向到www域名,作者在另一片文章中已经提到过,可参考点击打开链接 在文章最后有说明。

例如我要将yddsj.com重定向到www.yddsj.com下则要进行以下配置

    # 主站网站程序路径
    upstream yddsj {
        server 127.0.0.1:81;      
    }
     
    server {
        listen       80;
        server_name  www.yddsj.com yddsj.com;  #  主站网站域名包括www域名和顶级域名
        if ($host = 'yddsj.com' ) {            #  这里的作用就是把访问yddsj.com的请求重定向到www域名下面
            rewrite ^/(.*)$ http://www.yddsj.com/$1 permanent;
        }
        location / {
            index  index.html index.jsp;    
            proxy_pass  http://yddsj;
            proxy_set_header   REMOTE-HOST $remote_addr;
            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;
        }
    }

猜你喜欢

转载自blog.csdn.net/u011537073/article/details/88670054
今日推荐