需求:用Nginx代理tomcat,且代理配置用热部署方式

    原有Nginx环境:
    nginx:192.168.10.100:80
    tomcat:192.168.10.101:8080

    [root@localhost ~]# cat /usr/local/nginx/conf/nginx.conf
    image.png
    http://192.168.10.100/
    image.png
    热部署:
    [root@localhost ~]# ps -ef | grep nginx
    image.png
    修改nginx.conf配置文件,设置对tomcat的代理
    [root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf location{}添加如下内容:

    1. http{
    2. ......
    3. server {
    4. listen 80;
    5. server_name localhost;
    6. #charset koi8-r;
    7. #access_log logs/host.access.log main;
    8. location / {
    9. root html;
    10. proxy_pass http://192.168.10.101:8080;
    11. # index index.html index.htm;
    12. }
    13. ......
    14. }

    由于还没有给Nginx进行热部署,现在访问http://192.168.10.100/还是原来的Nginx页面
    http://192.168.10.100/
    image.png
    [root@localhost ~]# kill -s SIGUSR2 2282
    [root@localhost ~]# ps -ef | grep nginx
    image.png
    给master进程发送SIGUSR2信号,让Nginx平滑升级可执行程序。可以看到Nginx重新启动了一组master进程和worker进程,而新master进程是旧master进程的子进程(通过父子进程的继承关系,新master进程可以很方便地继承旧master进程的相关资源)

    且在nginx的pid目录中存储了一份新的pid文件(保存了新旧master进程的ID)
    [root@localhost ~]# ls /var/run/ | grep nginx
    image.png

    给旧master进程发送SIGWINCH信号,让旧master进程关闭旧worker进程
    [root@localhost ~]# kill -s SIGWINCH 2282
    [root@localhost ~]# ps -ef | grep nginx
    image.png
    此时访问http://192.168.10.100/,被代理为tomcat,且实现了Nginx不停机配置
    image.png