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等