linux中同时运行两个版本的nginx

  • /usr/sbin/nginx (通过包管理器安装的常见路径)
  • /usr/local/nginx/sbin/nginx (通过源码编译安装的常见路径)

    注意:,我们是通过deb安装,安装之后是/usr/sbin/nginx;
    所以如果已安装的版本如果也是安装在此路径的,那么,我们就不能再安装新版本了,只能直接利用已安装的nginx;
    此处不讲解利用老版本的方式,因为原有厂家配置各不相同,略过;

    当原有版本是安装在/usr/local/nginx/sbin/nginx (通过源码编译安装的常见路径);
    1、确认配置文件在版本内的路径

    image
    只要原有版本的配置不在   /etc/nginx/内;就行,如果/etc/nginx文件夹存在,并有内容;那么就需要停止安装;
    2、确认服务文件不存在
    /lib/systemd/system/nginx.service 此路径是我们新版本需要的;所以此路径不能有nginx.service,如果有,就停止安装;
    一般情况他们会放在下图的路径内;那么就不影响我们安装;

    image

     

    3、ls /var/run/     确认nginx.pid不存在,存在就停止安装;

    image

     


    以上都确认没有问题,那么我们可以安装;
    sudo   dpkg   -i   nginx.deb

    安装后,把lib内的service复制一份到etc;
    sudo  cp  /lib/systemd/system/nginx.service     /etc/systemd/system/nginx-new.service
    因为 /etc/systemd/system/nginx.service已经被老版本nginx占用,所以我们用-new来解决;

    sudo vim /etc/systemd/system/nginx-new.service
    编辑一下确认内容都是取的新版本的路径

    image

     


    sudo vim /etc/nginx/conf.d/default.conf
    编辑新版本配置文件,去把80端口的监听删除活该成别的;因为老版本一般情况下都会把80端口占用掉;
    保证端口不冲突的情况下就可以;


    服务启用
    sudo systemctl daemon-reload

    sudo systemctl enable nginx-new.service

    服务启动
    sudo systemctl start nginx-new.service
    sudo   systemctl    status    nginx-new.service


  • 不出意外,现在新的版本已经启动了;配置好以后,就可以直接浏览器访问了;

     


posted @ 2026-04-09 10:43  小了白了兔666  阅读(41)  评论(0)    收藏  举报