Nginx反向代理讲解和配置
首先来介绍下Nginx的反向代理。代理服务器一般分为正向代理(通常直接称为代理服务器)和反向代理。
画个图我们就好理解了。
正向代理:可以想象成是路由器,我们要通过它来上网的那种。(可以说是客户端的代理)

反向代理:客户端的请求过来之后交给反向代理服务器,然后反向代理服务器再交给后台真实的服务器。(这个是服务器端的代理)

我们今天说的是nginx的反向代理功能的实现。同时,反向代理还可以实现负载均衡的功能。可以自己思考下。
由于实验比较简单,这边环境就简单处理。
http-server1:192.168.10.156(Apache服务)
http-server2:192.168.10.157(nginx服务)
nginx-proxy:192.168.10.159
保证http服务器搭建完成,并能正常访问
nginx-proxy安装(其他依赖条件自己安装)。版本:nginx-1.4.7.tar.gz
tar -zxvf nginx-1.4.7.tar.gz /home
./configure
--prefix=/usr/local/nginx \
--sbin-path=/usr/local/bin \
--conf-path=/etc \
--error-log-path=/usr/local/nginx/error.log \
--pid-path=/usr/local/nginx/ngnix.pid \
--lock-path=/usr/local/nginx/nginx.lock \
--with-http_ssl_module \
--with-http_gzip_static_module \
--with-http_perl_module \
--http-log-path=/usr/local/nginx/access.log \
--http-fastcgi-temp-path=/usr/local/nginx/html \
--with-pcre --with-zlib=/usr --with-openssl=/usr
make && make install
编辑nginx的配置文件。
vim /etc/nginx.conf
#user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
upstream loadbance {
server 192.168.10.156;
server 192.168.10.157;(如果其其他端口,后面请加端口号:X.X.X.X:8888)
}
server {
listen 80;
location / {
proxy_pass http://loadbance;
}
}
}
红色部分为搭建反向代理服务器所需要的简单配置。(注意,nginx行尾的分号)
upstream:反向代理的关键字
loadbance:你可以理解为后台一组服务器的名称
server: 后台真实的服务器地址,可以是IP或者FQDN(如果是FQDN,别忘记解析)
listen:监听的端口,如果没有把原来nginx做web服务器的配置内容注销掉,建议改为其他端口
proxy_pass:后面跟http://loadbance 此一定要和upstream后面(服务器组名称)的名称保持一致
OK,大功告成。访问进行测试。
访问代理服务器地址:http://192.168.10.159,然后刷新


这就是nginx的反向代理。其实我们还可以延伸下。
nginx的反向代理功能我认为就可以当做一个简单的负载均衡来使用,我们可以指定nginx的调度算法:
nginx的官网上说(其实个人认为不止4中,你可以在服务器的ip地址后面加上服务器的权值,但是按官网上加上权值是不算一种。)
NGINX supports four load balancing methods:
1):The round-robin method 轮询
2):The least_conn method 最少连接数
a request is sent to the server with the least number of active connections with server weights taken into consideration。请求会送到活跃链接最少的服务器上(服务器的权值要考虑进来的)
3):The ip_hash method
The method guarantees that requests from the same address get to the same server unless it is not available。这种方法保证了来自同一个IP地址的请求会得到同一个服务器的响应,除非挂了。(其是通过客户端的ip(IPV4 or IPV6)地址来计算出此IP的hash值的)
4);The generic hash method:
the server to which a request is sent is determined from a user-defined key which may be a text, variable, or their combination. For example, the key may be a source IP and port,
请求会发送到一个用户定义键值(可以是text,变量,或者混合的)的服务器上
再来看一个官网说的:
If a method other than the default one is used, the corresponding directive (least_conn,ip_hash or hash) should be specified inside the upstream before the server directives.如果你要使用其他的调度算法(默认使用的round-robin),相应的指令必须在upstream内部指定,并且要在server指令之前。
比如:最小数链接/ip_hash/hash $request_uri consistent;(如果是使用轮询的方式的话,就不用写了,因为默认算法就是轮询)
upstream loadbance {
least_conn; //或者是ip_hash和(hash $request_uri consistent)
server 192.168.10.156 weight=3; //可以设置权值的哦
server 192.168.10.157;(如果其其他端口,后面请加端口号:X.X.X.X:8888)
}
哎呀,我擦,这就扯远了。其实,nginx还有一个健康检查的功能,如果有台服务器挂了,请求不会分发到该服务器上。比如下面的写法:
upstream loadbance {
server 192.168.10.156 weight=3;
server 192.168.10.157;
server 192.168.10.158 backup;//当备机使用
server 192.168.10.155 down; //如果你要临时移除一台服务器进行升级或者其他操作,可以把其标记为down的状态,这样请求就不会到其上。
}
其实,我们还可以通过server内部的location指令来指定不同的路径分发到不同的服务器上去。来实现分流。
比如,可以定义多个upstream。upstream1,upstream2.......然后
location /mp3 {
proxy_pass http://upstream1;
}
location /flv {
proxy_pass http://upstream2;
}
Nginx反向代理讲解和配置的更多相关文章
- 正向代理 forward proxy、反向代理 reverse proxy、透明代理 transparent proxy nginx反向代理原理和配置讲解 防止外部客户机获取内部内容服务器的重定向 URL 缓存命中
[大型网站技术实践]初级篇:借助Nginx搭建反向代理服务器 - Edison Chou - 博客园http://www.cnblogs.com/edisonchou/p/4126742.html 图 ...
- Nginx反向代理负载均衡配置
1.反向代理概述 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求 ...
- nginx反向代理原理和配置讲解
最近有打算研读nginx源代码,看到网上介绍nginx可以作为一个反向代理服务器完成负载均衡.所以搜罗了一些关于反向代理服务器的内容,整理综合. 一 概述 反向代理(Reverse Proxy)方式 ...
- Linux 下 Nginx 反向代理 负载均衡配置
转载请注明出处:http://blog.csdn.net/smartbetter/article/details/52036350 上一篇分享了 Nginx + JDK + Tomcat + MySQ ...
- Centos7.4 Nginx反向代理+负载均衡配置
Ningx是一款高性能的HTTP和反向代理服务器,配置起来也比较简单. 测试环境: 172.16.65.190 Nginx-反向代理 172.16.65.191 Ningx-Web 172.16.65 ...
- 配置LANMP环境(7)-- 配置nginx反向代理,与配置apache虚拟主机
一.配置nginx反向代理 1.修改配置文件 vim /etc/nginx/nginx.conf 在35行http下添加一下内容: include /data/nginx/vhosts/*.conf; ...
- nginx反向代理原理及配置详解
nginx概述nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:nginx可以作为一个HTTP服务器进行网站的发布处理,另外n ...
- Linux下nginx反向代理服务器安装与配置实操
1.我们只要实现访问nginx服务器能跳转到不同的服务器即可,我本地测试是这样的, 在nginx服务器里面搭建了2个tomcat,2个tomcat端口分别是8080和8081,当我输入我nginx服务 ...
- windows下Nginx反向代理服务器安装与配置
感谢慕课网Geely老师的讲解,本人将Nginx进行如下的总结. Nginx是一款轻量级的Web服务器,也是一款反向代理服务器,其主要特点:高稳定, 高性能,资源占用少功能丰富,模块化结构 支持热部署 ...
随机推荐
- Linux信号(signal) 机制分析
Linux信号(signal) 机制分析 [摘要]本文分析了Linux内核对于信号的实现机制和应用层的相关处理.首先介绍了软中断信号的本质及信号的两种不同分类方法尤其是不可靠信号的原理.接着分析了内核 ...
- SVG 2D入门2 - 图形绘制
基本形状 SVG提供了很多的基本形状,这些元素可以直接使用,这一点比canvas好多了.废话不说了,直接看例子,这个最直接: <svg width="200" heigh ...
- mongo db 分享 ppt
在公司内部的mongo db的ppt.初步进阶 http://files.cnblogs.com/files/yuhan-TB/mongoDB.pptx
- Object-C 基础笔记3---属性
一,区别属性和实例变量 实例变量就是声明在接口大括号里面的变量.@public类型的实例变量直接使用->访问, property 属性是一组设置器和访问器,属性是方法不是变量. 与类相似,属性需 ...
- 爆破vcrkme01(已补上注册机)
系统 : Windows xp 程序 : vcrkme01 程序下载地址 :http://pan.baidu.com/s/1mh1n33y 要求 : 爆破 使用工具 :OD 可在“PEDIY Crac ...
- 一、什么是WPF?
一.什么是WPF? Windows Presentation Foundation(以前的代号为“Avalon”)是 Microsoft 用于 Windows 的统一显示子系统,它通过 WinFX 公 ...
- [转]MMORPG服务器架构
MMORPG服务器架构 一.摘要 1.网络游戏MMORPG整体服务器框架,包括早期,中期,当前的一些主流架构2.网络游戏网络层,包括网络协议,IO模型,网络框架,消息编码等.3.网络游戏的场景管理,A ...
- 第一个demo
1.首先这是最初的概念模型. 2.最后设计成这样. 3.运行
- Hex Editor实现Notepad++16进制编辑功能
把HexEditor.dll文件复制到安装目录(如C:\Program Files\Notepad++\plugins),退出NotePad++重新打开即可!需要以十六进制显示时,点击菜单的:[插件] ...
- GPIO模拟IIC接口信号质量分析
信号质量有问题的波形001: 信号质量有问题的波形002: 从上图可以看出,GPIO口模拟的I2C接口,电平都存在半高的情况. 因为I2C的接口是通过GPIO模拟实现的,该时钟信号线SCL内部默认为下 ...