linux 启动多个nginx服务分别使用不同的conf配置文件
作者:mmseoamin日期:2024-02-03

linux 启动多个nginx服务分别使用不同的conf配置文件

1、说明

一台机器可以启动两个nginx实例,需要注意的是端口冲突的问题;一个通过编译安装,另外一个直接拷贝第一个应用程序。

2、配置操作步骤
  1. 查看nginx位置 ,一般在 /usr/local/nginx,通过 cp 命令拷贝到其他文件夹,我这里是拷贝到 /home/sthb/nginx

  2. 修改 /home/sthb/nginx/nginx 文件夹以及文件夹下所有文件的所属用户和权限,可以避免很多权限相关的问题。

    我这里当前用户是 sthb

    # 修改文件夹下所有文件所属用户为 sthb
    sudo chown -R sthb: /home/sthb/nginx/nginx
    #  修改文件夹下所有文件权限为 744
    sudo chmod -R 744 /home/sthb/nginx/nginx
    
  3. 进入到拷贝后的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;
    }
    
  4. 我这里使用‘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实例,所属的用户不同,启用的配置文件也不同

linux 启动多个nginx服务分别使用不同的conf配置文件,进程查看,第1张

重启服务

#重启服务
/home/sthb/nginx/nginx/sbin/nginx -c /home/sthb/nginx/nginx/conf/nginx.conf -s reload
4、总结
  1. 注意启动拷贝nginx文件夹的后需要配置对应的权限和所属用户

  2. nginx的conf文件需要注意不要冲突

  3. 启动 nginx 的时候需要指定 conf 配置文件,需要使用绝对路径进行指定