目录

Nginx简单操作 | Nginx 搭建多服务站点

Nginx 搭建多服务站点

0. 前言知识

多服务站点是什么意思?简单来说就是一台机子上可以搭建多个web网站,比如有两个域名blog.dawnguo.cnwww.dawnguo.cn,那么这两个域名访问的网站内容是不同的,但是网站的资源都是放在同一台机子上的。即一个IP地址对应多个域名支持多站点访问,你想在一个IP地址下面放多少个站点都行。那么怎么配置呢?主要是通过Virtual Host来实现。

1.实验环境

本实验所采用的Nginx version为nginx/1.10.3 (Ubuntu),关于nginx的配置目录是在/etc/nginx/下,因为nginx版本的不同,该目录中的内容一般都会不同,该目录在我机子上的内容如下所示:

1
2
$ ls
conf.d/  fastcgi.conf  fastcgi_params  koi-utf  koi-win  mime.types  nginx.conf  proxy_params  scgi_params  sites-available/  sites-enabled/  snippets/  uwsgi_params  win-utf

nginx.conf是最最最重要的配置文件,其中nginx.conf文件又会把conf.d/目录中.conf文件内容和sites-enabled/目录中的文件内容直接include进来,include语句主要是这几句:

1
2
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;

2.配置过程

假设需要配置以下两个站点:

1
2
域名1 www.dawnguo.cn 放在 /var/www/html
域名2 blog.dawnguo.cn 放在 /var/www/blog
  • 首先为每个站点创建一个配置文件:在sites-enabled/目录下分别创建www.dawnguo.cnblog.dawnguo.cn两个文件(Hint:你可以不在sites-enabled/中创建,你可以自己创建一个目录,然后把这两个文件放进去,那么下面include的路径也记得要变掉)

    www.dawnguo.cn文件内容如下所示

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    
    server {
        listen 443;
        server_name www.dawnguo.cn;
        ssl on;
        root /var/www/html;
        index index.html index.htm;
        ssl_certificate  cert/www.dawnguo.cn.pem;
        ssl_certificate_key cert/www.dawnguo.cn.key;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
      
        location / {
            index index.html index.htm;
        }
    }
    

    blog.dawnguo.cn文件内容如下

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    
    server {
        listen 443;
        server_name blog.dawnguo.cn;
        ssl on;
        root /var/www/blog;
        index index.html index.htm;
        ssl_certificate  cert/blog.dawnguo.cn.pem;
        ssl_certificate_key cert/blog.dawnguo.cn.key;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
      
        location / {
            index index.html index.htm;
        }
    }
    

    其实主要修改的就下面几个,理解了就好

    • server_name的值
    • root的值
    • 假如你的站点都是https方式访问的话,那么SSL证书也记得修改掉
  • 之后打开/etc/nginx/nginx.conf文件,把上述两个文件include进来,比如我上面把他们放在sites-enabled/目录中,那么相关的语句为

    1
    
    include /etc/nginx/sites-enabled/*;
    

    可能有的nginx.conf文件已经有了这句话,那么就不用加了

  • 之后重启nginx服务即可

    1
    
    service nginx restart