【记录】nginx 配置详解
正向代理:通过VPN等中间服务器访问某网站,需要代理到代理服务器,
正向代理是访问外部服务地址
location = /baidu.html {
proxy_pass http://www,baidu.com;
}
反向代理是访问内部服务器地址
location / XX/ {
proxy_passs http://127.0.0.1:8010
}
proxy_set_header Host $Host; # 传 header 参数至后端服务
proxy_set_header X-Forward-For $remote_addr; #设置 request header 即客户端IP 地址
proxy_pass http://xxx.com; 代理服务
proxy_redirect off; 是否允许重定向
proxy_connect_timeout 90; #连接代理服务超市时间
proxy_send_timeout 90; #请求发送最大时间
proxy_read_timeout 90; #读取最大时间
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
upstream 负载均衡
upstream backend {
server 127.0.0.1:8081 weight ; #weight 权重
server 127.0.0.1:8082;
server 127.0.0.1:8083; backup; #如果上面服务器挂了就访问备份服务
}
负载均衡算法
ll + weight 轮训加权重(默认)
ip_hash 保持session一致性 (如果某个nginx挂掉重新登录会话,登录到指定服务器)
url_hash 静态资源缓存,解决存储,加快速度(第三方)
least_conn: 最少链接
least_time:最小响应时间,计算节点平均响应时间,然后取响应时间最快的那个,分配更高权重
一致性hash
可以将session保存在会话中心用redis(或者用ip_hash)
nginx 高速缓存
QPS:每秒查询数
TPS:每秒处理数
150KB 乘以 500QPS/秒 接近于70M网络
将原来的redis 缓存放到nginx ,少走一步
nginx 缓存到硬盘里
Nginx 静态缓存基本配置
一:在http元素下添加缓存区声明。
proxy_cache_path /data/nginx/cache_xxx levels=1:2 keys_zone=cache_luban:500m inactive=20d max_size =1g;
levels:缓存目录级别 1表示缓存取最后一个字母 2表示下级目录去第二第三个字母
缓存码用MD5
proxy_cache_path 缓存路径
levels:缓存层级及目录数
keys_zone:缓存区内存大小
inactive:有效期
max_size:硬盘大小
二:为指定location设定缓存策略
location / {
proxy_pass http://xxx;
proxy_cache cache_luban;
proxy_cache_key $host$uri$is_args$args;
proxy_cache_valid 200 304 12h;
}
指定缓存区
proxy_cache cache_luban;
以全路径md5值做为key
proxy_cache_key $host$uri$is_args$args;
对不同的http状态码设置不同的缓存时间
nginx 多进程 单线程
events {
worker_connections 1024;
}