nginx初步了解

SIGINT     终止进程     中断前台进程,只能结束前台的进程

SIGKILL    终止进程     杀死前后台进程,立即强制结束程序的运行,本信号不能被阻塞, 处理和忽略

SIGTERM    终止进程     软件终止信号,会被阻塞, 处理和忽略

SIGWINCH   忽略进程

SIGHUP     终止进程

1.快速停止nginx

nginx -s stop  (-s参数:nginx通过nginx.pid文件得到master进程id,再向运行中的master进程发送TERM信号来快速关闭服务)

或者 

kill -s SIGTERM nginx的主进程id(通过ps -ef | grep nginx 来查看) 或者 kill -s SIGINT nginx的主进程id

2.优雅停止nginx:指让nginx执行完当前的所有请求再停止

nginx -s quit

或者

kill -s SIGQUIT nginx的主进程id

3.优雅的停止某个worker进程

kill -s SIGWINCH worker的id

4.重启nginx

nginx -s reload

或者

kill -s SIGHUP nginx的主进程id

5.重置日志文件:重新打开日志文件,可以实现把已有的日志文件改名或者转移到别的目录中备份,这样可以防止日志文件过大

nginx -s reopen

或者

kill -s SIGUSR1 nginx的主进程id

1、反向代理:也就是将nginx作为跳板,通过server{}中的location{}中的proxy_pass参数来指定挑战的服务器地址

   例如:在虚拟主机配置文件中:

   # / 表示所有形式的访问都进行跳转到 http://192.168.209.128

   第一种:location / {

              root   html;

              index  index.html index.htm;

  

              反向代理的设置

              #proxy_pass http://192.168.209.128; #设置被代理的服务器的地址,其形式是主机名或ip+端口号,如果设置了负载均衡,则在此填写负载均衡器的名称

          }

   第二种:

# ~\.php$(正则表达式):表示所有以.php结尾的访问才进行跳转

         location ~\.php$ {

             proxy_pass http://192.168.209.128;

         }

  

   ps:在server{}中的location{}是可以多个定义的,通过正则表达式的使用,可以将一些特殊的访问进行跳转,例如将图片访问跳转到专门存储图片的服务器中去

2、负载均衡是基于反向代理的基础上,对多台服务器做负载调度访问

   步骤一:在http{}中通过upstream模块来配置负载均衡器,如下:

      #步骤1:负载均衡的配置,通过upstream来创建负载均衡器,fzjh为器名称,用于反向代理proxy_pass选项中,server是对应用于负载的服务器

      upstream fzjh{

          server 192.168.209.128 weight=1; #weight设置权重

          server 192.168.209.133 weight=2;

          #server 127.0.0.1:8080 backup;

      }

   步骤二:在反向代理设置中使用负载均衡器的名称

     location / {

              root   html;

              index  index.html index.htm;

  

              反向代理的设置

              #proxy_pass fzjh; #设置被代理的服务器的地址,其形式是主机名或ip+端口号,如果设置了负载均衡,则在此填写负载均衡器的名称

          }

      

      

3、负载均衡默认使用轮询的方式、ip_hash的方式能够将同一个ip使用同一个服务器来访问,这样虽然能解决session不丢失的问题,但是也使得负载不够均衡,一般使用session共享的技术(session入数据库、入memcached等)来代替ip_hash的方式

4、使用nginx的proxy模块中的proxy_cache实现缓存功能,需要的步骤如下:

   第一:在http{}中设置缓存路径和缓存区的名称

   proxy_cache_path /data/cache/nginx/fzjh2  levels=1:2  keys_zone=fzjh2:10m inactive=1h;

   第二:在server{}的location{}中设置proxy_pass、proxy_cache、proxy_cache_valid

   location ~\.php$ {

              proxy_pass http://192.168.209.128;  #表示需要从哪里获取缓存内容

              proxy_cache fzjh2;                  #设置缓存使用的缓冲区,该值有第一步中的keys_zone设定

              proxy_cache_valid 200 1m;           #设置对于不同访问反应的缓存时间,例如200、301等

         }

    

   第三:在http{}中添加几个变量,该步骤只是在http的response headers中增加X-Via和X-Cache选项的显示

         add_header X-Via $server_addr;  #服务器ip

         add_header X-Cache $upstream_cache_status;  #缓存状态:miss、hit等