NGINX代理和缓存
原创
©著作权归作者所有:来自51CTO博客作者ℒℴѵℯ·芳·ꦿ໊ོ的原创作品,请联系作者获取转载授权,否则将追究法律责任
介绍
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内
部网络上的服务 器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器
对外就表现为一个反向代理服务 器,通常使用到的http/https协议和fastgci(将动态内容和http服务器
分离)
正向代理(内网客户机通过代理访问互联网)
1. resolver:指定dns服务器地址
2. proxy_pass:代理到的地址
3. resolver_timeout:dns解析超时时长
#正向代理配置
[root@nginx1 ~]# cat /etc/nginx/conf.d/www.conf
server{
listen *:8090;
resolver 114.114.114.114;
location / {
proxy_pass http://$http_host$request_uri;
}
}
#测试
curl -x 代理 "http://www.baidu.com" -I
反向代理(外网用户通过代理访问内网服务器)
#反向代理配置
server {
listen 8080;
server_name www.server1.ccom;
location / {
proxy_pass http://被代理的ip;
}
}
proxy代理网站常用优化配置写入到新文件,调用时使用include即可
[root@server conf.d]# cat /etc/nginx/proxy_params
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_buffering on;
proxy_buffer_size 32k;
proxy_buffers 4 128k;
[root@server conf.d]# cat proxy.conf
server {
listen 8080;
server_name www.server1.com;
location / {
proxy_pass http://192.168.80.128:8090;
include proxy_params;
}
}
proxy_cache缓存实验
http {
# 其他配置-------------
# 指定了数据存放路径在/myweb/server/proxycache目录下,它包含两级hash目录,缓存数据的
总量不能超过20m,如果缓存在5分钟之内没有被访问则强制刷新,定义缓存空间mycache
proxy_cache_path /myweb/server/proxycache levels=1:2 max_size=20m
inactive=5m loader_sleep=1m keys_zone=mycache:10m;
# 配置响应数据的临时存放目录
proxy_temp_path /myweb/server/tmp;
# 其他配置--------------
server {
proxy_pass http://192.168.80.20;
proxy_cache mycache;
proxy_cache_valid 200 301 1h; # 状态码为200 301的响应缓存1h
proxy_cache_valid any 1m; # 配置其他状态的响应数据缓存1分钟
}
}