当前位置:首页 > CN2资讯 > 正文内容

nginx作反向代理服务器nginx反向代理多个服务器

4天前CN2资讯

需求:国外买了两台VPS作国内网站的反向代理,国内网站域名统一指向这台代理服务器,再中转访问回来,这是为了暂时绕过域名备案的需求。国内网站的域名使用自建服务器dns_server解析。 

解决方案:实际上就是用nginx作个http代理服务器;php等动态页面不做缓存,其它的均缓存代理

代理服务器搭建环境:centos5.8 x86_64  nginx0.8.52 

安装略。

主要配置文档nginx/conf.d/xxx.conf

virtual.conf:

  • proxy_cache_path /data/nginx/proxy_cache levels=2:2 keys_zone=content:200m inactive=3d max_size=150000m;    
  • #设置缓存区名称为content,内存缓存空间大小为200MB,3天没有被访问的内容自动清除,硬盘缓存空间大小为150GB。  
  •  
  • server {  
  •     resolver 222.73.x.x;        #当proxy_pass中包含变量的url时,需进行域名解析,指定自建的DNS服务器地址dns_server_ip,所有这台DNS服务器做过解析的域名都将允许转发。    
  •     listen       80 default;  
  •     server_name  _;             #匹配所有,将默认的nginx.conf配置文件中server主机下的servername _;注释掉否则冲突  
  •  
  •     access_log  /var/log/nginx/access.log  main;  
  •       if ($request_method !~ ^(GET|POST|HEAD)$ ) {  
  •          return 444;  
  •       }  
  •         msie_padding on;  
  •         msie_refresh on;  
  •    
  •  
  •     location / {   #匹配/下所有uri缓存并转发
  •        proxy_cache content;   
  •        proxy_cache_valid  200 304 301 302 1d;  
  •        proxy_cache_valid  any 1m;    
  •        proxy_cache_key $host$uri$is_args$args;  
  •  
  •        proxy_pass http://$http_host$request_uri;   转发url
  •        proxy_redirect                      off;      
  •        proxy_set_header   Host             $host;      
  •        proxy_set_header   X-Real-IP        $remote_addr;      
  •        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;      
  •  
  • #limit  
  •               if ($userlimit = '100') {  
  •                   rewrite ^(.*)$ /unlimit$1 last;  
  •               }  
  •               limit_conn   myzone  100;  
  •      access_log  /var/log/nginx/limit_access.log  main;  
  •  
  •      }      
  •  
  • #unlimit  
  •     location /unlimit/ {  
  •        internal;  
  •        limit_conn   myzone  1000;  
  •        proxy_cache content;   
  •        proxy_cache_valid  200 304 301 302 1d;  
  •        proxy_cache_valid  404 1m;    
  •        proxy_cache_valid  any 1m;    
  •        proxy_cache_key $host$uri$is_args$args;  
  •  
  •        proxy_pass http://$http_host$request_uri;  
  •        proxy_redirect                      off;      
  •        proxy_set_header   Host             $host;      
  •        proxy_set_header   X-Real-IP        $remote_addr;      
  •        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;      
  •  
  •        access_log  /var/log/nginx/unlimit_access.log  main;  
  •  
  •      }      
  •  
  •  location ~ /purge(/.*)     #清除缓存设置
  •  {  
  •         allow 127.0.0.1;  
  •         allow 222.73.x.x;  
  •         allow 222.73.x.0/24;  
  •         allow 222.73.x.x/27;  
  •         deny all;  
  •         proxy_cache_purge  content  $host$1$is_args$args;  
  •  
  •     access_log  /var/log/nginx/purge_access.log  main;  
  •   }  
  •      
  •  location ~ .*\.(php|jsp|cgi)?$      #匹配.php,jsp,cgi的动态程序页面不做缓存,直接url转发
  •  {      
  •      proxy_set_header Host  $host;      
  •      proxy_set_header X-Forwarded-For  $remote_addr;      
  •      proxy_pass http://$http_host$request_uri;  
  •      access_log  /var/log/nginx/cgi_access.log  main;  
  •  }      
  •  
  • }  
  • proxy.conf

  • 反向代理参数的全局设置:
  • client_body_buffer_size  512k;      
  • proxy_connect_timeout    200;      
  • proxy_read_timeout       180;      
  • #proxy_read_timeout       15;      
  • proxy_send_timeout       5;      
  • proxy_buffer_size        16k;      
  • proxy_buffers            4 64k;      
  •  
  • proxy_set_header Accept-Encoding 'gzip,deflate';  
  • #proxy_max_temp_file_size 20m;  
  • proxy_busy_buffers_size 128k;      
  • proxy_temp_file_write_size 128k;      
  •  
  • proxy_temp_path   /data/nginx/proxy_temp;    
  • ipclass.conf

  • geo $userlimit {  
  • default 1;  
  • #202.107.x.x/27 100;  
  • #122.224.x.x/32 100;  
  • }  
  • 测试:

    1.dns_server上添加这台反向代理服务器地址的解析

    2.本地hosts中添加域名,反向代理服务器地址

    123.x.x.x      dns_server上内部域名1

    123.x.x.x      dns_server上内部域名2

    123.x.x.x      mirrors.163.com                                    #外部网站代理测试

    3.查看访问日志路径:

    匹配/下所有uri访问日志路径: /var/log/nginx/limit_access.log
    匹配php,cgi,jsp动态页面文件访问日志路径. /var/log/nginx/cgi_access.log  
    错误日志:/var/log/nginx/error.log

    测试结果:
    dns_server上内部网站域名测试, 日志查看记录访问正常,
    mirrors.163.com  访问502 bad gateway ,日志:
    012/11/27 03:23:08 [error] 4679#0: *20 mirrors.163.com could not be resolved (110: Operation timed out), client: 202.107.x.x, server: _, request: "GET / HTTP/1.1", host: "mirrors.163.com" 2012/11/27 03:23:08 [error] 4679#0: unexpected response for mirrors.163.com
    ..      非dns_server上的内部网站是不能通过此台代理服务器

    手动purge清除缓存测试OK:用法,清除的uri前添加purge即可

    http:///purge/$uri

      你可能想看:

      扫描二维码推送至手机访问。

      版权声明:本文由皇冠云发布,如需转载请注明出处。

      本文链接:https://www.idchg.com/info/19922.html

      分享给朋友:

      “nginx作反向代理服务器nginx反向代理多个服务器” 的相关文章

      连接测试地址的全面解析与故障排查技巧

      在网络管理和故障排查的过程中,连接测试地址扮演了重要角色。这些特定的IP地址并不指向任何实际的网络设备,因此在进行网络测试时,它们能够确保不会对现有的网络结构造成影响。简单来说,连接测试地址允许我们在不干扰现有设备的情况下,检查和验证网络的状态。 说到连接测试地址,我想起两个常见的:127.0.0....

      内部错误解决指南:快速识别与处理方法

      一说到“内部错误”,我们很多人可能会感到一头雾水。其实,内部错误是指在计算机系统或程序内部发生的那种错误。这类错误通常是由于系统内部的某些故障所造成的,或是程序代码本身的一些问题。如果我们把计算机比作一个庞大的工厂,那么内部错误就像是工厂里机器运转不畅或部件失灵,导致整个生产线出现问题。 理解内部错...

      全面了解IP检查的重要性与实用工具

      IP 检查概述 在开始之前,先简单想象一下我在使用网络的日常生活。每当我访问一个网站或者下载文件时,我的设备背后其实都有一个IP地址在默默运作。这个看似简单的数字组合,不仅是我们在互联网世界里的“身份证”,同时也是进行各种网络交互的基础。 什么是 IP 检查 IP检查,简单来说,就是对IP地址的分析...

      腾讯云国际版:全球云服务的强者之选,满足您的业务需求

      腾讯云国际版概述 腾讯云国际版的定义与背景 腾讯云国际版是腾讯公司专为全球客户推出的一款云服务产品,旨在满足不同国家和地区用户的需求。它在功能上与国内版本相似,但根据国际市场的需求进行了优化,以确保服务的稳定性和流畅性。作为一名用户,我发现腾讯云国际版特别注重数据隐私和合规性,这对于希望拓展海外市场...

      掌握PVM: 并行虚拟机在高效计算中的应用与优势

      什么是PVM PVM,全称为“并行虚拟机”(Parallel Virtual Machine),是一种软件架构,用于多台计算机之间的并行计算。这种技术使得不同的计算机可以连接在一起,像一个单一的超级计算机一样共同完成任务。想象一下,你在进行一个复杂的计算,它需要大量的时间和资源。通过PVM,你可以将...

      了解BGP VPS的优势与市场价格分析

      在谈论“BGP VPS”之前,先来聊聊BGP和VPS。BGP,或边界网关协议,是一种用于交换路由信息的协议,它确保数据在互联网上以最佳路径传输。想象一下,当你在网络上发送一条信息时,BGP帮助判断哪条路最安全、最快捷。这种优化的路由能力,在处理大量数据流量时,显得尤为重要。 而VPS,虚拟专用服务器...