由于 nginx运行时 一个master 和多个 worker进程以线程的方式运行

worker_processes 就代表worker进程数,我设置的是根据cpu核数。user 代表配置文件启动生效用户 也可以加上用户组worker_connections worker进程连接数
http://nginx.org/en/docs/ nginx 配置文件文档
基于多Ip的虚拟主机
location / ##说明映射的是本地nginx安装路径root ##路径下的文件夹index ## 文件夹下的首页
基于多Ip的虚拟主机
前提主机是多网卡:不同ip对应不同路径 端口监听默认80
server {listen 192.168.1.110;server_name localhost;location / {root server1/html;index index.html index.htm;}}server {listen 192.168.1.111;server_name localhost;location / {root server2/html;index index.html index.htm;}}
基于多端口的虚拟主机
server {listen 9011;server_name localhost;location / {root server3/html;index index.html index.htm;}}
基于域名的虚拟主机
server {listen 80;server_name 域名; //匹配优先级 精确>左侧通配符>右侧通配符>正则location / {root server4/html;index index.html index.htm;}}
热部署
当从老版本替换为新版本的 nginx 的时候,如果不热部署的话,会需要取消 nginx 服务并重启服务才能替换成功,这样的话会使正在访问的用户在断开连接,所以为了在不影响用户的体验下进行版本升级,就需要通过信号量热部署来升级版本。
注意一点:新的nginx编译后的 logs、sbin、conf这些目录名字不能变
先备份nginx二进制文件 并用新的二进制nginx文件覆盖
cp nginx nginx.bak


启动新的nginx 这里说明一下 nginx 启动时必须以绝对路径启动,不然SIGUSR2无法找到nginx
kill -s SIGUSR2 21598


现在 新旧进程 都并存,并且在logs下存在了一个旧进程的master 进程pid
这时 可以优雅退出worker进程,具体用户超时时间连接参数 worker shutdown timeout time 在配置文件可以配置
kill -s SIGWINCH 21598

此时旧master 还存在的情况下可以开始验证新worker进程的nginx 是否满足需求 如果满足需求可以正式让就master退出了
kill -s SIGQUIT 21598 至此平滑升级就可以了;如果新版有不满足需求,未通过测试 在老版本的master未退出时可以回滚
kill -s SIGHUP 21598 此时新旧进程也是并存的
kill -s SIGQUIT 21603 退出新master进程
