linux 启动多个nginx服务分别使用不同的conf配置文件
1、说明
一台机器可以启动两个nginx实例,需要注意的是端口冲突的问题;一个通过编译安装,另外一个直接拷贝第一个应用程序。
2、配置操作步骤
- 查看nginx位置 ,一般在 /usr/local/nginx,通过 cp 命令拷贝到其他文件夹,我这里是拷贝到 /home/sthb/nginx
- 修改 /home/sthb/nginx/nginx 文件夹以及文件夹下所有文件的所属用户和权限,可以避免很多权限相关的问题。
我这里当前用户是 sthb
# 修改文件夹下所有文件所属用户为 sthb
sudo chown -R sthb: /home/sthb/nginx/nginx
# 修改文件夹下所有文件权限为 744
sudo chmod -R 744 /home/sthb/nginx/nginx
- 进入到拷贝后的nginx.conf文件,修改需要的端口,不要与原nginx在使用的端口冲突,并且加上 ‘pid /home/sthb/nginx/nginx/logs/nginx.pid;’参数(根据实际路径设置,nginx.pid的位置在nginx/logs/目录下,如果没有就创建这个文件,如果有就进入这个文件把内容删除了),避免 重启的时候把原nginx实例给重启了。
worker_processes 1;
pid /home/sthb/nginx/nginx/logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
client_max_body_size 10m;
include conf.d/*.conf;
}
- 我这里使用‘include conf.d/*.conf;’ 把配置文件放到 ‘ conf.d’目录下,自己配置需要的内容,这里不详细介绍。
3、启动
**注意:**启动的时候使用绝对路径进行启动 ,注意加 ‘-c’ 参数指定配置文件
#检查配置文件是否有问题, '-c' 参数指定配置文件
/home/sthb/nginx/nginx/sbin/nginx -c /home/sthb/nginx/nginx/conf/nginx.conf -t
# 启动服务
/home/sthb/nginx/nginx/sbin/nginx -c /home/sthb/nginx/nginx/conf/nginx.conf
#一般显示这个就代表没什么问题了,如果有报权限问题,注意查看一下对应文件的权限和所属用户 用户组有没有配置正确
nginx: the configuration file /home/sthb/nginx/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /home/sthb/nginx/nginx/conf/nginx.conf test is successful
查看进程可以发现启动了两个nginx实例,所属的用户不同,启用的配置文件也不同
重启服务
#重启服务
/home/sthb/nginx/nginx/sbin/nginx -c /home/sthb/nginx/nginx/conf/nginx.conf -s reload
4、总结
- 注意启动拷贝nginx文件夹的后需要配置对应的权限和所属用户
- nginx的conf文件需要注意不要冲突
- 启动 nginx 的时候需要指定 conf 配置文件,需要使用绝对路径进行指定