Nginx同vps配置多站点(含SSL)


现在服务器都很贵,那么同一服务器配置多个站点就很有必要。本教程教大家如何配置多站点,以及安装SSL证书。

配置环境

操作系统:CentOS 7.6 64位
nginx版本:nginx-1.14.2

配置多站点

nginx多站点的配置其实很简单,但是我上网搜索到的很多资料写的不详细,而且版本都很旧。所有打算写博客记录一下。
简而言之,就是将nginx.conf中的server部分复制几份,然后配置不同的域名即可。

下面是我的server部分的配置文件,以lihtao.comlihaitao.net.cn作为站点一二。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 站点一
server {
listen 80;
server_name lihtao.com;

location / {
root html; //这里为站点目录
index index.html index.htm;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

# 站点二
server {
listen 80;
server_name lihtao.net.cn;

location / {
root html;
index index.html index.htm;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

配置SSL

SSL即配置443端口,和80端口的配置差别不大。需要注意的是:我们需要在80端口的配置部分通过rewrite实现url的重写,将其重写成https://lihtao.com的形式。以下为我server部分的完整配置。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# HTTP server
#
server {
listen 80;
server_name lihtao.com;
rewrite ^(.*)$ https://${server_name}$1 permanent;
}

server {
listen 80;
server_name lihaitao.net.cn;
rewrite ^(.*)$ https://${server_name}$1 permanent;

}


# HTTPS server
#
server {
listen 443;
server_name lihtao.com;
root /var/www/blog1;
index index.html index.htm;

ssl on;
ssl_certificate cert/lihtao.com.crt;
ssl_certificate_key cert/lihtao.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
ssl_prefer_server_ciphers on;

#error_page 404 /404.html;

error_page 500 502 503 504 /50x.html;
}

server {
listen 443;
server_name lihaitao.net.cn;
root /var/www/blog2;
index index.html index.htm;

ssl on;
ssl_certificate cert/lihaitao.net.cn.crt;
ssl_certificate_key cert/lihaitao.net.cn.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
ssl_prefer_server_ciphers on;

#error_page 404 /404.html;

error_page 500 502 503 504 /50x.html;
}

注意:如果重启nginx时报错,很可能时没有安装ssl模块


那该如何安装ssl模块呢?只需参考这篇文章中的安装nginx部分就可以,需要注意一个步骤,就是将./configure替换为./configure --with-http_ssl_module即可,其它部分不变。

ssl证书可以在阿里云和腾讯云免费申请,我的证书使用的是腾讯云提供的免费证书,证书的申请以及安装网上都有很多的资料可以参考。本文就不再赘述。

Donate comment here
-------------本文结束感谢您的阅读-------------
0%