Nginx进阶篇

本文详细介绍了Nginx的Proxy代理,包括正向代理和反向代理的概念及配置,以及如何通过Nginx实现反向代理。同时,文章还探讨了Nginx的Proxy缓存设置,包括缓存目录的创建、缓存的启用和验证,以及缓存的工作原理。
摘要由CSDN通过智能技术生成

一、Proxy代理

1、代理原理

(1)正向代理

内网客户机通过代理访问互联网。通常要设置代理服务器地址和端口。

( 用户知道代理的存在,用户清楚自己上网访问的全过程。用户和代理在一个局域网 ,服务器自己在一个网段 )

(2)反向代理

外网用户通过代理访问内网服务器。内网服务器无感知。

( 用户不知道代理的存在,用户不清楚自己上网访问的全过程。用户在一个局域网 ,代理和服务器自己在一个网段 )

2、Proxy代理

(1)环境

两台nginx真实服务器

(2)nginx-1 启动网站(内容)

    nginx-1的IP:192.168.85.133
    yum install -y nginx
    systemctl start nginx

(3)nginx-2 启动代理程序

    nginx-2的IP:192.168.85.131
    yum install -y nginx
    systemctl start nginx

   vim /etc/nginx/conf.d/default.conf

 
  1. vim /etc/nginx/conf.d/default.conf

  2.  
  3. location / {

  4. .....

  5. proxy_pass http://192.168.85.133:80; 请注意:填写nginx-1服务器的地址

  6. proxy_redirect default;

  7.  
  8. proxy_set_header Host $http_host;

  9. proxy_set_header X-Real-IP $remote_addr;

  10. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

  11.  
  12. proxy_connect_timeout 30;

  13. proxy_send_timeout 60;

  14. proxy_read_timeout 60;

  15.  
  16. proxy_buffering on;

  17. proxy_buffer_size 32k;

  18. proxy_buffers 4 128k;

  19. proxy_busy_buffers_size 256k;

  20. proxy_max_temp_file_size 256k;

  21. }

proxy_pass :真实服务器
proxy_redirect :如果真实服务器使用的是的真是IP:非默认端口。则改成IP:默认端口。
proxy_set_header:重新定义或者添加发往后端服务器的请求头
proxy_set_header X-Real-IP :启用客户端真实地址(否则日志中显示的是代理在访问网站)
proxy_set_header X-Forwarded-For:记录代理地址

proxy_connect_timeout::后端服务器连接的超时时间_发起三次握手等候响应超时时间
proxy_send_timeout:后端服务器数据回传时间_就是在规定时间之内后端服务器必须传完所有的数据
proxy_read_timeout :nginx接收upstream(上游/真实) server数据超时, 默认60s, 如果连续的60s内没有收到1个字节, 连接关闭。像长连接

proxy_buffering on;开启缓存
proxy_buffer_size:proxy_buffer_size只是响应头的缓冲区
proxy_buffers 4 128k; 内容缓冲区域大小
proxy_busy_buffers_size 256k; 从proxy_buffers划出一部分缓冲区来专门向客户端传送数据的地方
proxy_max_temp_file_size 256k;超大的响应头存储成文件。

(4)使用PC客户端访问nginx-2服务器地址

(5)观察nginx-1服务器的日志 

vim  /var/log/nginx/access.log

 
  1. vim /var/log/nginx/access.log

  2.  
  3. 192.168.85.131 - - [21/Dec/2017:00:29:58 +0800] "GET / HTTP/1.0" 200 646 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:57.0) Gecko/20100101 Firefox/57.0" "192.168.85.1"

  4.  
  5. 192.168.85.131 代理服务器地址

  6. 192.168.85.1 客户机地址。

  7.  
  8. 访问成功。 记录了客户机的IP和代理服务器的IP。

二、Proxy缓存

1、延续代理实验 —— 设置nginx-2为缓存服务器

vim /etc/nginx/conf.d/default.conf

 
  1. http {

  2.  
  3. proxy_cache_path /app/qianfeng/cache levels=1:2 keys_zone=proxy_cache:10m max_size=10g inactive=60m use_temp_path=off;

  4.  
  5. }

  6.  
  7. location / {

  8.  
  9. proxy_cache proxy_cache; 使用名为 的对应缓存配置

  10. proxy_cache_valid 200 304 12h; 对httpcode为200…的缓存12小时

  11. proxy_cache_valid any 10m; 设置不同相应码的缓存时间,除了上面的,其他的的存10分钟

  12. proxy_cache_key $host$uri$is_args$args; 定义缓存唯一key,通过唯一key来进行hash存取

  13. add_header Nginx-Cache "$upstream_cache_status"; 缓存命中情况如何在http头中体现,以及在nginx日志中查看

  14. proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;出现502-504或错误,会跳过此台服务器访问下一台服务器

2、mkdir -p /app/qianfeng/cache
    准备缓存文件的存放目录

3、systemctl restart nginx
    重启服务器

4、使用PC客户机,再次访问nginx-2服务器

5、通过PC客户机浏览器开发者功能。观察是否命中缓存。

命中 hit    
未命中 miss    
提示:新创建的网页文件,初次访问均为miss。

6、nginx缓存工作原理

(1)未启动缓存

(2)启动缓存第一次查询

(3)启动缓存第二次查询

7、清理nginx_proxy缓存

ps:新创建的网页文件,初次访问均为miss。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值