当前位置: 首页 > news >正文

Nginx多层代理配置

此篇只说nginx的多级代理配置,不扯其他的.


需求:hba.changyoufun.com-121.201.125.239(gd1)--hk1--co(alphaclash.ggdev.co)  广东代理--->香港--->加拿大

由于idc机房在加拿大,所以经常会配些nginx多级反向代理到国内.(不做代理client就得***,或者说是丢包很严重.)


下面的Nginx配置我只写80的,443的忽略,简化nginx的配置,参数也不一一列举不然太多了.

gd1的反向代理配置:(就是一个反向代理)

cat hba.changyoufun.com.conf
server{
  listen 121.201.125.239:80;
  
  server_name hba.changyoufun.com;
  access_log  /data/weblogs/hba.changyoufun.com.access.log main;
  index index.html  index.php index.htm;
  location / {
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $host;
                proxy_redirect off;
                proxy_read_timeout 600;
                proxy_connect_timeout 600;
                proxy_pass http://hba80;
         }
}
Upstream配置(代理的是hk1的内网ip):
 upstream hba80 {
       server 10.105.3.222:80;         
    }
    upstream hba443 {
       server 10.105.3.222:443;           
    }


hk1的反向代理配置:(也是一个nginx反向代理)

cat hba.changyoufun.com.conf
server{
  listen 10.105.3.222:80;
  
  server_name hba.changyoufun.com;
  access_log  /data/weblogs/hba.changyoufun.com.access.log main;
  index index.html  index.php index.htm;
  location / {
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $host;
                proxy_redirect off;
                proxy_read_timeout 600;
                proxy_connect_timeout 600;
                proxy_pass http://hba80;
         }
}
Upstream配置(代理的是alphaclash.ggdev.co域名的ip地址):
upstream hba80 {
       server 216.66.17.34:80;           
    }
    upstream hba443 {
       server 216.66.17.34:443;          
    }

co机房原先已经存在alphaclash.ggdev.co域名的配置,只需要copy一份alphaclash.ggdev.co的nginx配置,将域名替换为hba.changyoufun.com即可.

co的两份nginx配置:

nginx和php的web版:

cat hba.changyoufun.com.conf
server{
      listen 216.66.17.34:80; 
    server_name hba.changyoufun.com ;
    access_log  /data/weblogs/hba.changyoufun.com.access.log main;
    index  index.html index.php index.htm;
root /product/clash/alpha/web/htdocs;
location ~ ^/.*(do|php)$ {
        fastcgi_pass php_proxy;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
    }
}


cat alphaclash.ggdev.co.conf
server{
      listen 216.66.17.34:80; 
    server_name alphaclash.ggdev.co;
    access_log  /data/weblogs/alphaclash.ggdev.co.access.log main;
    index  index.html index.php index.htm;
root /product/clash/alpha/web/htdocs;
location ~ ^/.*(do|php)$ {
        fastcgi_pass php_proxy;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
    }
}


注释:其实nginx的代理很简单,很多时候是没想明白,既然代理alphaclash.ggdev.co,前面两级代理配置了这个域名不就ok了?仔细想发现nginx代理根据ip:端口找域名,然后在location匹配到的location段再找upstream段,再根据upstream段的ip+port找下级域名,最后发现最后一级没有相匹配的域名就报404了,所以最后一层也要配上相匹配的域名配置.


相关文章:

  • 嗜血法医第八季/全集Dexter 8迅雷下载
  • 太一星晨:负载均衡啃不动的骨头交给应用交付
  • Android之通过HttpURLConnection.getResponseCode状态码抛出异常的问题以及解决方法
  • Dropcam摄像头:透过我的眼睛辨出你是谁
  • webservice fail protected mode
  • 第20条:类层次优于标签类
  • css属性的继承、初识值、计算值、当前值、应用值
  • redis以及php的redis扩展安装部署
  • Gartner表示安全分析可能是安全风险检测的关键
  • 掌众金融:业务主体变更掌众金服
  • 营造平安 信息化使公交事业更加人性化
  • 减少二次开发成本 无缝融入当前流程
  • 前瞻WCTF世界黑客大师赛10大看点
  • VMware在VMworld大会将会推出什么新东西?
  • 梭子鱼公布“三管齐下”战略
  • 2017年终总结、随想
  • CAP理论的例子讲解
  • Laravel 中的一个后期静态绑定
  • 力扣(LeetCode)965
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 树莓派 - 使用须知
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 通信类
  • Java数据解析之JSON
  • linux 淘宝开源监控工具tsar
  • ​linux启动进程的方式
  • # include “ “ 和 # include < >两者的区别
  • #pragma once
  • #每日一题合集#牛客JZ23-JZ33
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • (10)STL算法之搜索(二) 二分查找
  • (39)STM32——FLASH闪存
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (八)Spring源码解析:Spring MVC
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (已解决)什么是vue导航守卫
  • (原創) 未来三学期想要修的课 (日記)
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转) 深度模型优化性能 调参
  • (转载)OpenStack Hacker养成指南
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .NET Core Web APi类库如何内嵌运行?
  • .net 提取注释生成API文档 帮助文档
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • /bin/bash^M: bad interpreter: No such file or directory
  • :中兴通讯为何成功
  • @Resource和@Autowired的区别
  • @test注解_Spring 自定义注解你了解过吗?
  • @WebService和@WebMethod注解的用法
  • [ C++ ] STL---string类的使用指南
  • [ 代码审计篇 ] 代码审计案例详解(一) SQL注入代码审计案例