代理服务器介绍
代理服务可简单的分为正向代理和反向代理:
- 正向代理: 用于代理内部网络对 Internet 的连接请求(如 VPN/NAT),客户端指定代理服务器,并 将本来要直接发送给目标 Web 服务器的 HTTP 请求先发送到代理服务器上, 然后由代理服务 器去访问 Web 服务器, 并将 Web 服务器的 Response 回传给客户端:
- 反向代理: 与正向代理相反,如果局域网向 Internet 提供资源,并让 Internet 上的其他用户可以 访问局域网内资源, 也可以设置一个代理服务器, 它提供的服务就是反向代理. 反向代理服 务器接受来自 Internet 的连接,然后将请求转发给内部网络上的服务器,并将 Response 回传给 Internet 上请求连接的客户端:
正向代理
- A同学在大众创业、万众创新的大时代背景下开启他的创业之路,目前他遇到的最大的一个问题就是启动资金,于是他决定去找马云爸爸借钱,可想而知,最后碰一鼻子灰回来了,情急之下,他想到一个办法,找关系开后门,经过一番消息打探,原来A同学的大学老师王老师是马云的同学,于是A同学找到王老师,托王老师帮忙去马云那借500万过来,当然最后事成了。不过马云并不知道这钱是A同学借的,马云是借给王老师的,最后由王老师转交给A同学。这里的王老师在这个过程中扮演了一个非常关键的角色,就是代理,也可以说是正向代理,王老师代替A同学办这件事,这个过程中,真正借钱的人是谁,马云是不知道的,这点非常关键。 我们常说的代理也就是只正向代理,正向代理的过程,它隐藏了真实的请求客户端,服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求
反向代理
- 大家都有过这样的经历,拨打10086 客服电话,一个地区的 10086 客服有几个或者几十个,你永远都不需要关心在电话那头的是哪一个,叫什么,男的,还是女的,漂亮的还是帅气的,你都不关心,你关心的是你的问题能不能得到专业的解答,你只需要拨通了10086 的总机号码,电话那头总会有人会回答你,只是有时慢有时快而已 那么这里的 10086 总机号码就是我们说的反向代理。客户不知道真正提供服务的人是谁 反向代理隐藏了真实的服务端,当我们访问 www.baidu.com 的时候,就像拨打 10086 一样,背后可能有成千上万台服务器为我们服务,但具体是哪一台,你不知道,也不需要知道,你只需要知道反向代理服务器是谁就好了,www.baidu.com 就是我们的反向代理服务器,反向代理服务器会帮我们把请求转发到提供真实计算的服务器那里去。Nginx 就是性能非常好的反向代理服务器,它可以用来做负载均衡。
反向代理的作用 ①保护网站安全:任何来自 Internet 的请求都必须先经过代理服务器 ②通过配置缓存功能加速 Web 请求:可以缓存真实 Web 服务器上的某些静态资源,减轻真实 Web 服务器的负载压力
③实现负载均衡:充当负载均衡服务器均衡地分发请求,平衡集群中各个服务器的负载压力
常见的反向代理之间的区别
- Lvs优点: 工作在四层仅作分发的左右,抗负载能力强,承载并发量高 缺点: 自身布支持正则处理,不能做动静分离
- Haproxy优点:haproxy可以同时工作在4层和7层,支持会话保持和cookie引导,支持url测试后端的服务器,专业的代理服务器 缺点: 处理数据相比nginx比较慢,消耗较多带宽
- Nginx优点: 1、nginx工作在七层,可以针对http应用做一些分流的策略,比如针对域名、目录结构,他的正则比haproxy更加强大和灵活 2、nginx对网络的依赖非常小,理论上能ping同就能进行负载功能,这个也是他的优势所在 3、nginx的安装和配置比较简单,测试起来比较方便 4、可以承载搞得负载压力且稳定,一般能支撑超过几万次的并发量 5、nginx可以通过端口检测到服务器内部的故障 缺点:nignx 不支持url来检测后端服务器状态,nginx的session的保持,cookie的引导能力相对欠缺
Nginx介绍:
Nginx是一款轻量级的网页服务器、反向反向代理服务器、以及邮件代理服务器(大企业会自己搭建),因为它的稳定性、丰富的功能集、示例配置文件和地系统资源的消耗 淘宝使用的nginx是二次开发的nginx 名叫tengine,基本上中大型企业都会选择nginx 在国内,已经有 淘宝、新浪博客、新浪播客、网易新闻、六间房、56.com、Discuz!、水木社区、豆瓣、YUPOO、海内、迅雷在线 等多家网站使用 Nginx 作为 Web 服务器或反向代理服务器。
Nginx核心特点:
(1)跨平台:Nginx 可以在大多数 OS 编译运行,而且也有 Windows 的版本; (2)配置异常简单:非常容易上手。 (3)非阻塞、高并发连接:官方测试能够支撑 5 万并发连接,万并发连接数。(这得益于 Nginx 使用了最新的 epoll 模型); (4)事件驱动:通信机制采用 epoll 模型,支持更大的并发连接 (5)Master/Worker 结构:一个 master 进程,生成一个或多个 worker 进程。 (6)内存消耗小:处理大并发的请求内存消耗非常小。在 3 万并发连接下,开启的 10 个Nginx 进程才消耗 150M 内存(15M*10=150M)。 (7)内置的健康检查功能:如果 Nginx 代理的后端的某台 Web 服务器宕机了,不会影响前端访问 (8)节省带宽:支持 GZIP 压缩,可以添加浏览器本地缓存的 Header (9)稳定性高:用于反向代理,宕机的概率微乎其微
搭建Nginx反向代理服务器
实验环境
实验拓扑图
测试服务器安装apache
两台操作相同 [root@apache1 ~]# yum -y install httpd [root@apache1 ~]# vim /var/www/html/index.htm 添加: 192.168.83.4 另外一台内容为192.168.83.5 方便区分效果 [root@apache1 ~]# systemctl start httpd
安装Nginx
上传安装包 nginx-1.14.0.tar.gz ngx_cache_purge-2.3.tar.gz nginx-sticky-module.gz
tar zxf nginx-1.10.2.tar.gz tar zxf ngx_cache_purge-2.3.tar.gz unzip nginx-sticky-module.gz
编译实验所需模块
[root@nginx ~]# groupadd nginx [root@nginx ~]# useradd nginx -g nginx -s /sbin/nologin [root@www nginx-1.14.0]# https://blog.csdn.net/qq_42596792/article/details/configure --prefix=/usr/local/nginx1.14 --user=nginx --group=nginx --with-http_stub_status_module –with-http_realip_module --with-http_ssl_module –with-http_gzip_static_module --http-client-body-temp-path=/var/tmp/nginx/client --http-proxy-temp-path=/var/tmp/nginx/proxy --http-fastcgi-temp-path=/var/tmp/nginx/fcgi --with-pcre --add-module=…/ngx_cache_purge-2.3 --with-http_flv_module --add-module=…/nginx-sticky-module [root@nginx nginx-1.10.2]# make && make install
参数解释: –with-http_stub_status_module ##开启stub_status监控模块,查看nginx状态信息 –with-http_realip_module##获取客户端的真实IP地址(X-Real或X-Forwarded-For) –with-http_ssl_module ##开启ssl加密模块,支持https –with-http_gzip_static_module ##开启gzip压缩模块 –http-client-body-temp-path ##设定http客户端请求的临时文件路径 –http-proxy-temp-path ##设定代理临时文件存放路径 –http-fastcgi-temp-path##设定fastcgi文件存放路径 –with-pcre##启用pcre库 –with-http_flv_module ##开启对flv视频的伪流支持
nginx的路径优化和编写脚本启动
[root@nginx ~]# ln -s /usr/local/nginx/1.14/sbin/nginx /usr/local/sbin/ [root@nginx ~]# nginx -t [root@nginx ~]# mkdir -p /var/tmp/nginx/client/ [root@nginx ~]# chown -R nginx /var/tmp/nginx/client/ [root@www ~]# netstat -anpt | grep nginx tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3977/nginx: master
配置nginx反向代理
重启nginx验证 配置nginx反向代理缓存后端web服务器页面数据
$upstream_cache_status 包含以下几种状态
- MISS 未命中,请求被传送到后端
- HIT 缓存命中
- EXPIRED 缓存已经过期请求被传送到后端
- UPDATING 正在更新缓存,将使用旧的应答
- STALE 后端将得到过期的应答
本文地址:http://www.tpjde.com/quote/846.html 推平第 http://www.tpjde.com/ , 查看更多配置完成后重启nginx访问