Nginx 配置多个 Node 服务的域名
最近用 Node 写的两个小项目都需要上线,项目跑在阿里云上,给了不同的端口,平时在各自的端口上,相安无事,但是要挂在微信公号上就需要域名,IP只有一个,两个域名势必要搭起来,我资历尚浅,肯定劝不动他俩,不看僧面看佛面,只好请来神器 Nginx 主持公道。这里做个笔记,欢迎补充指正。
Domains-2-Servers ?
多个 Domain 需要对应多个 Node 服务,然而只有一个 IP,这还怎么谈?矛盾尖锐到无法解决的时候就需要中间人介入,和气生财嘛,Nginx 在中间人这个位置做的得心应手,擅长的领域有以下几点
- 页面服务器
- 负载均衡
- web 缓存加速
- 反向代理
这起纠纷需要用到反向代理根据请求的 URL 将请求转到不同的服务器,以达到多个服务和谐共处的环境
Nginx 安装 & 常用命令
安装
我比较懒,用 yum 安装,快捷方便
常用命令
- nginx -s stop 快速关闭
- nginx -s quit 优雅地关闭
- nginx -s reopen 重新打开日志
- nginx -s reload 平滑重启
- nginx -t 启动前测试
如果用包管理器进行的安装,也可以通过 service 来操作 Nginx
- service nginx start
- service nginx stop
- service nginx restart
- service nginx reload
Nginx 配置文件
1 | 系统: CentOS 7 |
检查 nginx.conf
进入 /etc/nginx/
路径下,路径下的 nginx.conf
是 Nginx 的配置文件,还有 /conf.d
文件夹存放的是 Server 的设置(注:这里的 /conf.d
在较早的版本里是 /sites-available
)
1 | //nginx.conf 文件末尾对 /conf.d 中配置文件的应用,如果这一行被注释了,请把注释去除 |
新建 Server 配置文件
配置文件确认没有问题了,现在需要在 /conf.d
目录下配置服务器和对应的域名,我这里新建两个文件 lushi.conf
和 mark.conf
(文件名随意,注意是 .conf
文件)以对应我需要配置的两个域名,分别的配置如下1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19//lushi.conf
server {
listen 80;
server_name lushi.lijundong.com;
access_log /var/log/nginx/domain1.access.log;
location / {
proxy_pass //127.0.0.1:3000/;
}
}
//mark.conf
server {
listen 80;
server_name mark.lijundong.com;
access_log /var/log/nginx/domain1.access.log;
location / {
proxy_pass //127.0.0.1:3100/;
}
}
重载配置文件
之前介绍的命令在这里就可以用了,nginx -s reload
重载配置文件,现在访问配置好的两个域名,又回到了相安无事的年代
参考:
作者: leeon
来源: https://leeon.im
链接: https://leeon.im/nginx-conficure-domains-to-servers/
本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可