Nginx高级进阶篇

  Nginx Proxy服务器

   1. 代理原理:正向代理与反向代理

      举一个简单的例子来说明正代与反代:

       A:客户端                    B:代理             C:服务端

       A想要买一件产品,但是这个产品C有,A认识C但是并不能直接联系到C,此时就出来了B,C认识B,A也认识B,所以                     A就通过B把C的产品买了下来,其实C不知道把产品卖给了A,这就是正向代理

      A想要买一件产品,这个产品C有,但是A不认识C不知道C有,只认识B,A把请求发给B,B根据A的请求从C那里拿到产品              然后返回给A,此时A并不知道自己买的产品是C的,这就是反向代理

     2.启动代理:

      环境准备:两台装载nginx的服务器,都关闭防火墙和selinux

      nginx1:只是需要启动就可以了  #systemctl start nginx     

      nginx2:修改配置文件: #vi /etc/nginx/conf.d/default.conf:

      在location标签里面添加如下内容:

proxy_pass http://192.168.100.10:80;                                                       #真实服务器的IP地址

proxy_redirect default;                                                                               #代理重定向

proxy_set_header Host $http_host;                                                          #代理设置头部

proxy_set_header X-Real-IP $remote_addr;                                            #客户机IP

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;     #记录代理地址

proxy_connect_timeout 30;                                                                        #后端服务器连接的超时时间_发起三次握手等候响应超时时间

proxy_send_timeout 60;                                                                              #后端服务器数据回传时间_就是在规定时间之内后端服务器必须传完所有的数据

proxy_read_timeout 60;                                                                                #nginx接收upstream(上游/真实) server数据超时, 默认60s, 如果连续的60s内没有收到1个字节, 连接关闭。像长连接

proxy_buffering on;                                                                                       #开启缓存

proxy_buffer_size 32k;                                                                                  #proxy_buffer_size只是响应头的缓冲区

proxy_buffers 4 128k;                                                                                    #内容缓冲区域大小

proxy_busy_buffers_size 256k;                                                                    #从proxy_buffers划出一部分缓冲区来专门向客户端传送数据的地方

proxy_max_temp_file_size 256k;                                                                  #超大的响应头存储成文件。


然后重启服务访问代理地址:


会发现访问代理地址就会给我们转发到真实的服务器上面去了。


3.Proxy缓存

缓存类型:CDN缓存网页缓存(公网)     数据库缓存 memcache redis         网页缓存 nginx-proxy        客户端缓存   浏览器缓存

nginx proxy缓存模块:ngx_http_proxy_module

缓存开关

    #    Syntax:     proxy_cache zone | off;

    #    Default:     proxy_cache off;

    #    Context: http, server, location

代理缓存

    #    Syntax: proxy_cache_path path [levels=levels] keys_zone=name:size[inactive=time] [max_size=size]                             

    #    [manager_files=number]

    #    Default:  —

    #    Context: http

    #    example:proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=one:10m;

缓存维度

    #    Syntax:     proxy_cache_key string;  定义缓存唯一key,通过唯一key来进行hash存取,缓存文件名

    #    Default:     proxy_cache_key $scheme$proxy_host$request_uri;

    #    Context: http, server, location

缓存过期

    #    Syntax:     proxy_cache_valid [code ...] time;

    #    Default:     —

    #    Context: http, server, location

    #    proxy_cache_valid 200 302 10m;

    #    proxy_cache_valid 404      1m;

清理Nginx缓存

1.rm 删除已缓存的数据

#     rm - rf /cache/*

2.通过ngx_cache_purge 扩展模块清理,需要编译安装nginx

    #    location ~ /purge(/.*) {

    #   allow      all;

    #    proxy_cache_purge proxy_cache $1$is_args$args;

     #      }

若有问题咨询欢迎大家联系我:

邮箱:wangmouren_sir@163.com

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容