Nginx 搭建多服务站点
0. 前言知识
多服务站点是什么意思?简单来说就是一台机子上可以搭建多个web网站,比如有两个域名blog.dawnguo.cn
和www.dawnguo.cn
,那么这两个域名访问的网站内容是不同的,但是网站的资源都是放在同一台机子上的。即一个IP地址对应多个域名支持多站点访问,你想在一个IP地址下面放多少个站点都行。那么怎么配置呢?主要是通过Virtual Host来实现。
1.实验环境
本实验所采用的Nginx version为nginx/1.10.3 (Ubuntu),关于nginx的配置目录是在/etc/nginx/
下,因为nginx版本的不同,该目录中的内容一般都会不同,该目录在我机子上的内容如下所示:
$ 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语句主要是这几句:
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
2.配置过程
假设需要配置以下两个站点:
域名1 www.dawnguo.cn 放在 /var/www/html
域名2 blog.dawnguo.cn 放在 /var/www/blog
-
首先为每个站点创建一个配置文件:在
sites-enabled/
目录下分别创建www.dawnguo.cn
、blog.dawnguo.cn
两个文件(Hint:你可以不在sites-enabled/
中创建,你可以自己创建一个目录,然后把这两个文件放进去,那么下面include的路径也记得要变掉)www.dawnguo.cn
文件内容如下所示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
文件内容如下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/
目录中,那么相关的语句为include /etc/nginx/sites-enabled/*;
可能有的
nginx.conf
文件已经有了这句话,那么就不用加了 -
之后重启nginx服务即可
service nginx restart