Linux 下的 Nginx 反向代理配置.
最近实践中遇到了需要利用 nginx 进行反向代理服务器请求的需求,以前没怎么碰触过,因此花了1个多小时,快速阅览了一下nginx官网在反向代理服务中给出的基本定义:
说实话,官网给予的定义是精准的,但对于不是很了解 nginx 或者不太喜爱浪费脑细胞的童鞋来说,依旧还是云里雾里的将其定义为神仙级别的东西;
为此,今日闲来无事就把这一块进行一下总结和整理,方便自己以及有需要的人来参考:
由于本人的能力以及理解力的限制,以下的例子也只是完全结合 nginx官网中给予的定义来进行解释和整理,牛掰的大神可以完全忽略并藐视以后的所有内容了...
首先,若是要利用 nginx 做反向代理,就需要用到 ngx_stream_proxy_module 这个模块;
官网给出的解释:
The ngx_stream_proxy_module module (1.9.0) allows passing connections to another server over TCP and UNIX-domain sockets.
大概意思是说:这个 ngx_stream_proxy_module 允许在TCP和UNIX-domain Sockets之上连接到其它服务器。
那么也就是说, 只有用 ngx_stream_proxy_module 才能实现 nginx 反向代理了。
先看下面两个例子:
Example A:
proxy_pass http:
proxy_set_header Cookie $http_cookie; #
proxy_set_header X-Real-IP $remote_addr; #
}
示例C中的代码就是定义了,如何将真实header信息发送到被代理的服务器上,
#1 表示发送X-Forwarded-For(XFF, 通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段。)
#2 表示发送产生的Cookie信息。
#3 表示发送客户端真实的IP地址。
注意:以上代码中的#以后的所有内容都表示被注视掉的内容。
当我们进行反向代理请求处理的时候,网站不想被一个客户端或者连接长时间的占用的时候,可以这样做:
Example D
server {
}
以上这段代码表示 超时时间处理为 10秒。proxy_timeout 给予的参数还可以是 10m 表示十分钟。
以上这些配置足以完成一个简单的反向代理功能,还有更多的高级配置可以查阅官网的说明;
附上一个完整示例,该配置采用分布式进行WEB集群反向代理:
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Cookie $http_cookie;
proxy_set_header X-Real-IP $remote_addr;
proxy_timeout 10s;
proxy_pass http: weight= max_fails= fail_timeout=10s;
server weight= max_fails= fail_timeout=10s;
server weight= max_fails= fail_timeout=10s;
}
提示:upstream webserver 是一组不同的WEB服务器或者集群服务器,它是以轮播模式进行代理请求的。
关于 upstream 可以参看官网中 ngx_http_upstream_module 的定义;
Linux 下的 Nginx 反向代理配置.的更多相关文章
- 【netcore基础】CentOS 7.6.1810 搭建.net core 2.1 linux 运行环境 nginx反向代理 supervisor配置自启动
之前写过一篇Ubuntu的环境搭建博客,感觉一些配置大同小异,这里重点记录下 nginx 作为静态 angular 项目文件服务器的配置 参考链接 [netcore基础]ubuntu 16.04 搭建 ...
- nginx反向代理配置及优化
nginx反向代理配置及优化前言: 由于服务器apache抗不住目前的并发.加上前端squid配置后,问题依然无法解决.而页面程序大部分是动态.无法使用fastcgi来处理.因此想使用nginx做为反 ...
- nginx反向代理配置实例分享
nginx反向代理配置一例. 配置内容如下: user www www; worker_processes 8; error_log /usr/local/webserver/nginx/logs/n ...
- (总结)Linux服务器上最简单的Nginx反向代理配置
Nginx不但是一款高性能的Web服务器,也是高性能的反向代理服务器.下面简单说说Nginx的反向代理功能. 反向代理是什么? 反向代理指以代理服务器来接受Internet上的连接请求,然后将请求转发 ...
- nginx 反向代理配置(一)
文章参考:https://blog.csdn.net/physicsdandan/article/details/45667357 什么是代理? 代理在普通生活中的意义就是本来 ...
- 利用DockerHub在Centos7.7环境下部署Nginx反向代理Gunicorn+Flask独立架构
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_165 上一篇文章:Docker在手,天下我有,在Win10系统下利用Docker部署Gunicorn+Flask打造独立镜像,是在 ...
- 使用python自动生成docker nginx反向代理配置
由于在测试环境上用docker部署了多个应用,而且他们的端口有的相同,有的又不相同,数量也比较多,在使用jenkins发版本的时候,不好配置,于是想要写一个脚本,能在docker 容器创建.停止的时候 ...
- [nginx]Windows和Mac下,nginx反向代理服务器配置
最近做项目,前端需要用到nginx反向代理来转发请求,总结了一下在Windows和Mac上的配置,以备查询. 一.Windows 修改nginx的配置文件,nginx.conf. 1)nginx.co ...
- nginx反向代理配置
最近在项目中使用nginx反向代理,根据不同的请求路径,将请求分发到不同服务.下面的示例主要完成如下功能 /prod/路径的请求分发到prod服务 /test/路径的请求分发到test服务 创建文件夹 ...
随机推荐
- LDA-线性判别分析(四)
本来是要调研 Latent Dirichlet Allocation 的那个 LDA 的, 没想到查到很多关于 Linear Discriminant Analysis 这个 LDA 的资料.初步看了 ...
- Swift基础--使用TableViewController自定义列表
首先建立一个swift项目,把storyboard的内容删掉,添加一个 Navigation Controller,然后设置storyboard对应界面的class,在Navigation Contr ...
- RequireJs 深入理解
原文 http://www.tuicool.com/articles/jam2Anv RequireJs已经流行很久了,我们在项目中也打算使用它.它提供了以下功能: 声明不同js文件之间的依赖 可 ...
- 在asp.net中导出表格Excel数据
第一步:需要引用org.in2bits.MyXls程序集到使用页面 第二步:前台代码 <asp:Button ID="LeadingOut" runat="serv ...
- SQL Server 存储过程之基础知识(转)
什么是存储过程呢?存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令. 通俗来讲:存储过程其实就是能完成一定操作的一组SQL语句. 那为什么要用存储过程呢?1.存储过程只在创造时进行编译, ...
- javascript 阻止事件冒泡和阻止默认事件对比
公司项目有像上图中效果的功能需求这也是很常见功能很简单功能,通过一个小例子和大家聊聊js的事件冒泡和默认事件. 先说说一般的实现方式即使用阻止事件冒泡的方式去做,给input绑定一个click事件(并 ...
- linux 系统下java开发环境的配置
在安装之前,确保你的linux系统下有 jdk,jboss等相关软件 一.配置JDK环境变量 步骤: 解压缩JDK文件: unzip jdk1.6.0_31.zip 目录下显示文件夹jdk1.6.0_ ...
- HibernateTemplate类的方法flush()
hibernate的实体都是存储在缓存中的,所以你会发现有的时候当你创建出两个主键相通的实体的时候会报错.正常情况是当你调用save方法的时候,这个实体对象未必已经保存到数据库了,调用close方法的 ...
- JavaScript 全局变量命名空间生成函数
<script type="text/javascript"> var GLOBAL = {}; GLOBAL.namespace = function(str){ v ...
- [Zookeeper研究]一 Zookeeper技术简介
最近的项目中使用到了Zookeeper.Kafka以及Storm.仔细研究了一下,觉得这几个开源项目对于搞分布式的人来说是非常有用的,所以想把自己的一点心得体会总结一下,希望能对大家有所帮助. 首先从 ...