nginx常用配置模板
2022-08-03 09:57:03
84
{{single.collect_count}}

nginx常用配置模板

1.正向代理

# 正向代理到baidu服务location = /baidu.html { proxy_pass http://www.baidu.com;}

正向代理的概念: 正向代理是指客户端与目标服务器之间增加一个代理服务器,客户端直接访问代理服务器,在由代理服务器访问目标服务器并返回客户端并返回 。这个过程当中客户端需要知道代理服务器地址,并配置连接。

应用场景: 爬虫、翻墙、maven的nexus服务。

2.反向代理

# 反向代理至 本机的8010服务location /test/ { proxy_pass http://127.0.0.1:8010;}

反向代理的概念: 反向代理是指客户端访问目标服务器,在目标服务内部有一个统一接入网关将请求转发至后端真正处理的服务器并返回结果。这个过程当中客户端不需要知道代理服务器地址,代理对客户端而言是透明的。

应用场景:nginx 、Apache负载均衡应用。

代理相关参数:

# 代理服务proxy_pass# 是否允许重定向proxy_redirect off;# 传header参数至后端服务proxy_set_header Host $host;# 设置request header即客户端IP地址proxy_set_header X-Forwarded-For $remote_addr;# 连接代理服务超时时间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;

3.负载均衡

通过proxy_pass可以把请求代理至后端服务,但是为了实现更高的负载及性能,我们的后端服务通常是多个,这个是时候可以通过upstream模块实现负载均衡。

upstream backend { server 127.0.0.1:8010 weight=1;server 127.0.0.1:8080 weight=2;server 127.0.0.1:8030 weight=1 backup;}location / {proxy_pass http://backend;}

upstream 相关参数:

# 反向服务地址 加端口server# 权重weight# 失败多少次认为主机已挂掉则,踢出max_fails# 踢出后重新探测时间fail_timeout# 备用服务backup# 允许最大连接数max_conns# 当节点恢复,不立即加入,而是等待slow_start后加入服务对列。slow_start

upstream 负载均衡算法介绍

# 轮询加权重 (默认)ll+weight# 基于Hash 计算 ,用于保持session一至性ip_hash# 静态资源缓存,节约存储,加快速度(第三方)url_hash# 最少链接(第三方)least_conn# 最小的响应时间,计算节点平均响应时间,然后取响应最快的那个,分配更高权重(第三方)least_time# 注意:第三方是指需要自己为nginx装插件,nginx本身没有实现。

4.nginx缓存配置

在http元素下添加缓存区声明

# proxy_cache_path 缓存路径# levels 缓存层级及目录位数# keys_zone缓存区内存大小# inactive 有效期# max_size 硬盘大小proxy_cache_path /data/nginx/cache_test levels=1:2 keys_zone=cache_test:500m inactive=20d max_size=1g;

为指定location设定缓存策略

# 指定缓存区proxy_cache cache_test;# 以全路径md5值做做为Key proxy_cache_key $host$uri$is_args$args;# 对不同的HTTP状态码设置不同的缓存时间proxy_cache_valid 200 304 12h;

缓存的清除

# 该功能可以采用第三方模块ngx_cache_purge实现# 清除配置location ~ /clear(/.*) {#允许访问的IP allow 127.0.0.1; allow 192.168.0.193; #禁止访问的IP denyall; #配置清除指定缓存区和路径(与proxy_cache_key一至) proxy_cache_purgecache_test $host$1$is_args$args;}
# 访问生成缓存文件http://www.test.com/?a=1# 清除生成的缓存,如果指定缓存不存在 则会报404 错误。http://www.test.com/clear/?a=1
回帖
全部回帖({{commentCount}})
{{item.user.nickname}} {{item.user.group_title}} {{item.friend_time}}
{{item.content}}
{{item.comment_content_show ? '取消' : '回复'}} 删除
回帖
{{reply.user.nickname}} {{reply.user.group_title}} {{reply.friend_time}}
{{reply.content}}
{{reply.comment_content_show ? '取消' : '回复'}} 删除
回帖
收起
没有更多啦~
{{commentLoading ? '加载中...' : '查看更多评论'}}