美文网首页
Nginx高级进阶篇

Nginx高级进阶篇

作者: Bo萝吹雪 | 来源:发表于2019-08-20 16:31 被阅读0次

      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

    相关文章

      网友评论

          本文标题:Nginx高级进阶篇

          本文链接:https://www.haomeiwen.com/subject/cipxdctx.html