代理服务(3):nginx的反向代理
1、nginx的作用和特点
1)作用
发布静态网页
支持动态配置和动静分离配置
反向代理工具,发布web服务器使用
缓存工具将外网请求信息进行缓存
2)配置nginx缓存的特点
加快用户访问的速度
对静态数据进行高效缓存
提高IP地址利用率
增强并发访问量
如图所示:
2、安装nginx和缓存功能
[aaa@qq.com /]# tar xzvf ./ngx_cache_purge-2.0.tar.gz -C /usr/src/
[aaa@qq.com /]# yum -y install pcre-devel zlib-devel
[aaa@qq.com /]# useradd -M -s /sbin/nologin nginx
[aaa@qq.com nginx-1.6.0]# ./configure --prefix=/usr/local/nginx --user=nginx --with-http_stub_status_module --add-module=/usr/src/ngx_cache_purge-2.0
[aaa@qq.com /]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
3、配置nginx缓存
[aaa@qq.com /]# mkdir -p /var/cache/nginx/cache_temp
[aaa@qq.com /]# vim /usr/local/nginx/conf/nginx.conf
2 user nginx; nginx的管理用户
3 worker_processes 1; 使用的进程
12 events { event配置
13 use epoll; 使用epoll模式
14 worker_connections 4096; 每个进程允许连接的数量
15 }
16 worker_rlimit_nofile 2048; 访问文件的句柄数2048
32 keepalive_timeout 15; 连接保持时间
33 charset utf-8; 默认的字符编码
34 client_body_buffer_size 512k; 客户请求的缓存大小
35 proxy_connect_timeout 15; 客户访问代理服务器的超时时间
36 proxy_read_timeout 60; 代理服务器读取数据的超时时间
37 proxy_send_timeout 5; 代理服务器发送给客户端的超时时间
38 proxy_buffer_size 512k; 代理服务器的缓存大小
39 proxy_buffers 4 512k; 设置4个缓存区
40 proxy_temp_file_write_size 512k; 客户端通过代理写数据时的缓存大小
41 proxy_temp_path /var/cache/nginx/cache_temp; proxy的临时文件存在目录
42 proxy_cache_path /var/cache/nginx/proxy_cache levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=10g; 缓存文件路径,两级目录,
缓存名字是cache_one,共享内存大小为200MB
43 upstream backend_server { 定义方向代理池
44 server 192.168.200.10 weight=1 max_fails=2 fail_timeout=30s;
45 server 192.168.200.20 weight=1 max_fails=2 fail_timeout=30s;
46 }
49 server {
50 listen 192.168.100.30:80;
51 server_name www.benet.com;
52
53 location / {
54 root html;
55 index index.html index.htm;
56 proxy_next_upstream http_502 http_504 error timeout; 实现容灾和重复重复处理问题
57 proxy_cache cache_one; 保存缓存
58 proxy_cache_valid 200 304 12h; 缓存状态信息
59 proxy_cache_key $host$uri$is_args$args; 第二级目录缓存数据
60 proxy_set_header host $host; 记录远程客户端的IP地址
61 proxy_set_header X-Foreader-for $remote_addr; 远程主机请求转发到群集
62 proxy_pass http://backend_server; 代理到后端服务器
63 expires 1d; 保存时间为1天
64 }
65 location ~ /purge(/.*) { 抓取清除缓存的请求,
注:Cache_proxy Purge, 这个url中,必须以波浪号开头,不要加"^"
66 allow 127.0.0.1; 允许本地
67 allow 192.168.100.0/24; 允许100.0网段的主机
68 deny all; 拒绝使用
69 proxy_cache_purge cache_one $host$1$is_args$args; 清除缓存
70 }
71 location ~ .*\.(php|jsp|cgi|asp)?$ { 不缓存动态网页
72 proxy_pass http://backend_server; 代理到后端服务器
73 proxy_set_header X-Forearded-for $remote_addr; 远程主机请求转发到群集
74 }
4、验证
[aaa@qq.com /]# nginx
http://www.benet.com 访问网络资源
http://www.benet.com/purge/ 清空当前主机访问的缓存
注意:反向代理 (https)
listen 443 ssl;
上一篇: nginx反向代理的缓存
下一篇: Nginx的正反向代理