2020/01/07 05-Nginx反向代理

醉酒当歌 提交于 2020-01-11 07:58:07

nginx可以做web服务器,反向代理服务器

如何提供反向代理功能

在这里插入图片描述
异构代理就是前端的协议和后面服务的协议不一致
在这里插入图片描述
可以先实现同构的服务器,两端都是http的协议
在这里插入图片描述
**
RS2代表后端服务器**
在这里插入图片描述
把17作为反向代理服务器,8.7访问到17代理至27
在这里插入图片描述在这里插入图片描述
访问/跟的时候调度到27在这里插入图片描述在这里插入图片描述
就转发到RS2上
在这里插入图片描述
也可以选择性的调度
在这里插入图片描述
安装这个可以支持PHP
在这里插入图片描述
在这里插入图片描述
apache走的协议还是http,这样就还是同构的在这里插入图片描述
之前安装的PHP并不是独立软件,还是个相当于apache的小模块,只是扩展而已
如果有专门的PHP程序服务器,但是要把请求转出来就不一样了,这样的请求协议是PHP的,在这里插入图片描述
这个模块放到了HTTPd下,说明就不是一个独立程序,这是依附apache小模块,让它具有处理PHP程序的能力
在这里插入图片描述
nginx不能处理PHP程序,之能交给Apache或者交给php服务器来处理
在这里插入图片描述
之前修改了httpd的工作模式
在这里插入图片描述
worker模型兼容性差,改回原来的prefork
在这里插入图片描述
php程序要想被支持,不能worker模型,只能prefork
在这里插入图片描述
写一个PHP程序在这里插入图片描述在这里插入图片描述
直接访问可以
在这里插入图片描述
现在要nginx收到请求转发到后端服务器上

增加一台主机37地址的
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
clientIP是7,nginx调度器是17,后端RS是27,37
在这里插入图片描述
27处理动态程序,37处理静态页面,访问PHP就往上面的调度,访问静态就往37调度,这样动静分离
在这里插入图片描述在这里插入图片描述在这里插入图片描述
访问PHP就转发给27,就需要用到正则表达式,PHP后缀的在这里插入图片描述
-t查看错误,不能有URI,正则表达式匹配是不允许的在这里插入图片描述在这里插入图片描述
~ 不区分大小写*
在这里插入图片描述在这里插入图片描述
多了个斜线。现在应该可以了在这里插入图片描述
调度成功,这就是动静分离
在这里插入图片描述
现在是基于同构的协议
在这里插入图片描述
如果跑的是PHP服务器,用的是fastcgi协议,也会监听端口,9000端口,
在37上单独安装PHP-FPM软件包,是专门的PHP独立服务器

在这里插入图片描述在这里插入图片描述在这里插入图片描述
这是独立的服务
在这里插入图片描述在这里插入图片描述
监听的地址和端口 在这里插入图片描述
这样才可以接受远程用户访问
在这里插入图片描述
注释掉,不然只允许127.0。0.1的地址访问
在这里插入图片描述
启动服务
在这里插入图片描述
建立一个代码放到目录里
在这里插入图片描述在这里插入图片描述
需要在服务器上创建反向代理功能,有专门的模块
在这里插入图片描述在这里插入图片描述
这里有很多参数是和fastcgi进行交互的,两种不同的协议肯定要传递参数
在这里插入图片描述
修改反向代理服务器,针对后面的PHP服务器,协议是fastcgi,包含的参数就是上面看到的文件里的参数
在这里插入图片描述
后端服务器认为代理在访问,不是真实的客户端访问在这里插入图片描述在这里插入图片描述
只有访问PHP的时候才代理,不访问就还是往正常/data/asite下去访问在这里插入图片描述在这里插入图片描述在这里插入图片描述
确实访问到了
在这里插入图片描述
刚才只是反向代理,但现在还没实现调度
在这里插入图片描述
需要用到upstream模块

在这里插入图片描述
范例在这里插入图片描述upstream +取的名称
最终调度的服务器
下面调度服务器的地址 rs

server格式一般都是ip地址加端口号
修改主配置文件在这里插入图片描述
默认调度算法wrr,这里只是定义了将来会用的服务器列表
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
确实有效果
在这里插入图片描述
停止一台后端机器
在这里插入图片描述
就不往宕机的机器调度了
在这里插入图片描述在这里插入图片描述
ip_hash就是根据源地址做hash运算,只要是同一个地址来的请求就往同一台机器上调度
第一次没有连接过的用户用权重调度,已经链接过的用hash运算调度
在这里插入图片描述
在这里插入图片描述
可以根据请求url调度
在这里插入图片描述
根据用户请求报文中的算法来调度在这里插入图片描述
nginx内置有很多变量
在这里插入图片描述
完整的url路径包括参数在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!