nginx服务器配置多域名应用的一次小记
序章
由于本人金钱有限,只能购买的起一台VPS,在已经部署了hexo
博客后,想要使用这台再配置下自己做的项目,通过搜索,发现貌似有两种方法。
同一个
server{}
下配置多个location / {}
,类似于以下这种:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18server{
listen 80;
server_name www.example.com;
location / {
alias /root/www;
index index.html;
}
location /demo1{
alias /root/demo1;
index index.html;
}
location /demo2{
alias /root/demo2;
index index.html;
}
}这样的话,不同的项目就会在
www.example.com/demo1
www.example.com/demo2
下面了,可以通过这样的形式访问。通过二级域名配置不同的
server
来监听80端口,这样直接可以使用二级域名访问,不用加/
。这种是我采用的,因为我已经申请了一个域名,再用二级域名做A记录指向服务器ip就可以了。但是在过程中遇到了一个小坑,费了很长时间。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20server {
listen 80;
server_name www.example1.com;
location / {
proxy_pass http://localhost:81;
#或者静态资源目录
#alias /root/demo1/;
}
}
server {
listen 80;
server_name www.example2.com;
location / {
proxy_pass http://localhost:82;
#或者静态资源目录
#alias /root/demo2/;
}
}
过程
我首先将VPS部署了hexo
静态博客,然后使用这台VPS部署 SpringBoot+Vue3
的项目,由于是前后端分离的项目,还需要把服务端做一下反向代理。
如果把按照以上第二种方法,把配置都写在nginx.conf
中的话,会很乱,emmm我的还出现了部署失败访问不到的情况,所以打算将不同域名的conf
分开写,放到一个文件夹中。
nginx.conf
分开的方法:
首先将默认的.conf
文件的http
下面加上include /etc/nginx/conf.d/*.conf;
这句话的意思是在/etc/nginx/conf.d
目录下所有的.conf
文件都被访问到,建议这里使用绝对路径。
然后就可以在conf.d
目录下写.conf
文件了,我写了两个一个是前端资源的配置文件,一个是后端接口的反向代理。
需要注意的是,在配置前端资源的静态资源目录时,要把目录写在server{}
下用root
声明,如果写在location{}
下使用alias
声明时,会报403错误。
终曲
最后项目就愉快的run
起来啦!
使用chrome调试一定要勾选(F12)中
network
的Disable cache
和Preserver log