Nginx负载均衡、反向代理

一、代理服务器

1、什么是代理服务器?
  • 客户端访问数据的时候,不会直接与目标服务器进行连接,而是所有的请求都发送到代理(Proxy)服务器,然后代理服务器会去根据你的请求去访问相应的服务器,并最终返给你你想要的数据。
  • 其实说白了代理服务器的功能就是代理网络用户去取的网络信息。相当于网络信息的中转站。
2、代理服务器有什么好处?
  • 减轻服务器负载压力
    代理服务器会把目标服务器相应的数据缓存到自己的硬盘缓冲区中去,客户端下次相同操作可以直接从代理服务器处获得数据。从而提高访问的速度。减轻服务器的压力。
  • 访问控制
    所有的Internet请求都会经过代理服务器,而不是让客户端直接访问目标服务器,这么做隐藏了目标服务器的IP,保证了服务器的安全。防止恶意攻击。
  • 负载均衡
    可以充当负载均衡服务器,均衡的分发请求,平衡集群中各个服务器的负载压力。

二、反向 VS 正向

代理服务器又分为正向代理和反向代理,那这两种代理方式有什么区别呢?

正向代理(Forward Proxy)


代理服务器和客户端在一个LAN内,代理客户端收发请求,使真是的客户端对服务器不可见。对外相当一个客户端。

反向代理(Reverse Proxy)


代理服务器和服务器在一个LAN内,替服务器收发请求,使真是的服务器地址对客户端不可见。这样代理服务器对外就表现为一个服务器。


三、Nginx反向代理服务器搭建

实现效果

打开浏览器,在浏览器地址栏输入地址 www.zwl.com,跳转到 linux 系统 tomcat 主页面中;

方法一、使用proxy_pass转发、不添加upstream模块

1. 修改hosts配置文件
[root@localhost ~]# vi /etc/hosts127.0.0.1  www.zwl.com
2.在 nginx 进行请求转发的配置(反向代理配置)
   server {listen   80;                             ///设置为80端口server_name  www.zwl.com;                ///访问域名location / {root   html/zwl1;proxy_pass  http://127.0.0.1:8080;    ///转发配置index  index.html index.htm;}
3.反向代理测试

如上配置,我们监听 80 端口,访问域名为 www.zwl.com,不加端口号时默认为 80 端口,故访问该域名时会跳转到 127.0.0.1:8080 路径上。在浏览器端输入 www.zwl.com 结果如下:


方法二、使用upstream、proxy_pass模块(负载均衡)

1. 修改hosts配置文件
[root@localhost ~]# vi /etc/hosts127.0.0.1  www.zwl.com
2.在 nginx 进行请求转发的配置(反向代理配置)
   upstream villian{                             ///添加upstream模块server 192.168.146.131:8080 weight=1 max_fails=2 fail_timeout=30s;       ///8080server 192.168.146.131:8081 weight=1 max_fails=2 fail_timeout=30s;       ///8081}
###########################################################################server {listen   80;                             ///设置为80端口server_name  www.zwl.com;                ///访问域名
###########################################################################location / {root   html/zwl1;proxy_pass  http://villian;           ///转发配置index  index.html index.htm;}
3.反向代理测试

如上配置,我们监听 80 端口,访问域名为 www.zwl.com,不加端口号时默认为 80 端口,故访问该域名时会跳转到 127.0.0.1:8080 路径上。在浏览器端输入 www.zwl.com 结果如下:


方法三、根据访问路径跳转到不同的端口服务

1、环境准备
  • 在Linux中安装部署 Nginx(port-80)、Tomcat(port-8080)、Tomcat(port-8081)
[root@#localhost local]# ls
nginx  tomcat8080  tomcat8081
2、修改端口映射IP
[root@#localhost ~]# cat /etc/hosts
192.168.219.128 www.zwl.com
3、修改Nginx反向代理配置
[root@#localhost conf]# cat nginx.conf
worker_processes  1;
events {worker_connections  1024;
}
###################################################
http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;
####################################################server {listen       80;server_name  www.zwl.com;
###################`反向代理配置`####################     location / {root   html;index  index.html index.htm;
}location ~ /edu/ {proxy_pass http://localhost:8080;
}location ~ /vod/ {proxy_pass http://localhost:8081;
}
####################################################}
}
4、Tomcat(port-8080)新建jsp动态资源
[root@#localhost edu]# pwd
/usr/local/tomcat8080/webapps/ROOT/edu          ///tomcat8080端口路径
[root@#localhost edu]# ls
java.jsp
[root@#localhost edu]# cat java.jsp            ///jsp测试代码<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<HTML><HEAD><TITLE>JSP Test Page</TITLE></HEAD><BODY><%Random rand = new Random();out.println("<h1>Random Tomcat port-8080 number:</h1>");out.println("<h1>刷新数字即可变化</h1>");out.println(rand.nextInt(99)+100);%></BODY>
</HTML>
5、Tomcat(port-8081)新建jsp动态资源
[root@#localhost vod]# pwd
/usr/local/tomcat8081/webapps/ROOT/vod          ///tomcat8081端口路径
[root@#localhost vod]# ls
java.jsp
[root@#localhost vod]# cat java.jsp            ///jsp测试代码
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<HTML><HEAD><TITLE>JSP Test Page</TITLE></HEAD><BODY><%Random rand = new Random();out.println("<h1>Random Tomcat port-8081 number:</h1>");out.println("<h1>刷新数字即可变化</h1>");out.println(rand.nextInt(99)+100);%></BODY>
</HTML>
6、分别启动tomcat8080、Tomcat8081服务
[root@#localhost edu]# /usr/local/tomcat8080/bin/startup.sh
Using CATALINA_BASE:   /usr/local/tomcat8080
Using CATALINA_HOME:   /usr/local/tomcat8080
Using CATALINA_TMPDIR: /usr/local/tomcat8080/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat8080/bin/bootstrap.jar:/usr/local/tomcat8080/bin/tomcat-juli.jar
Tomcat started.
[root@#localhost vod]# /usr/local/tomcat8081/bin/startup.sh
Using CATALINA_BASE:   /usr/local/tomcat8081
Using CATALINA_HOME:   /usr/local/tomcat8081
Using CATALINA_TMPDIR: /usr/local/tomcat8081/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat8081/bin/bootstrap.jar:/usr/local/tomcat8081/bin/tomcat-juli.jar
Tomcat started.
7、测试反向代理根据不同路径访问不同端口资源
  • Tomcat 8080:http://www.zwl.com/edu/java.jsp
  • Tomcat 8080:http://www.zwl.com/vod/java.jsp

Nginx官方配置教程


转载至:https://cloud.tencent.com/developer/article/1339493
转载至:https://blog.csdn.net/qq_40036754/article/details/102463099#_Nginx___12_274

运维之道 | Nginx负载均衡、反向代理相关推荐

  1. Linux中 Nginx+uwsgi部署flask项目 Nginx负载均衡 反向代理

    Nginx是一款自由的.开源的.高性能HTTP服务器和反向代理服务器. 轻量级,同样起web服务,比 apache占用更少的内存及资源 抗并发, nginx处理请求是异步非阻塞的,而 apache则是 ...

  2. 架构之Nginx(负载均衡/反向代理)

    Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器 ,也是一个 IMAP/POP3/SMTP 代理 服务器 . Nginx 是由 Igor Sys ...

  3. 运维工程师必备之负载 均衡集群及LVS详解

    原文地址:运维工程师必备之负载 均衡集群及LVS详解作者:蚁巡运维平台 来源: chrinux 的BLOG 时间: 2013-07-01 14:00 此博文主要介绍集群和负载均衡的基本理论和类别,内容 ...

  4. day10 负载均衡反向代理

    day10 负载均衡反向代理 1.复习 1.nginx+python的流程1.1安装基础环境yum install python3 pip3 install django==2.2.2安装uwsgi之 ...

  5. 运维工程师必备之负载均衡集群及LVS详解

    此博文主要介绍集群和负载均衡的基本理论和类别,内容看着比较枯燥.无味的,但是要想成为一个好的linux运维工程师,这些基本理论是必须理解透彻,才会在后来的系统调优和集群架构中得心应手,所以想成为lin ...

  6. 运维之道 | Nginx 配置文件优化解析

    Nginx配置文件nginx.conf 1.配置文件位置/usr/local/nginx/conf/nginx.conf 2.nginx 的组成部分 配置文件中有很多#,开头的表示注释内容,我们去掉所 ...

  7. Nginx安装/负载均衡/反向代理配置与调优

    [Nginx安装] Linux下直接使用包管理安装 sudo apt-get install nginx 使用whereis命令查看安装位置 whereis nginx #sbin下代表nginx可执 ...

  8. @所有运维人丨多链路负载均衡那些事儿

    一.写在前面 企业.高校.运营商等多链路负载均衡的问题,属于老生常谈的问题,山石网科从10多年前在二级运营商打开局面,作为高吞吐.高并发.高用户数量的广域网接入设备时,就开始尝试解决多链路负载均衡的问 ...

  9. Linux运维之LVS实现负载均衡的DR(直接路由)模式

    前言: 我们在浏览器输入网址后,经过cdn的反向代理后缓解了一些访问压力,下面就来到了LB(负载均衡)集群! 硬件负载均衡器 HA.F5 软件实现负载均衡 (LVS(工作在OSI网络模型的传输层).N ...

最新文章

  1. Cocos2d中从场景切换到UIViewController视图方法总结
  2. 鸿蒙智慧屏和pro有什么区别,体验揭秘荣耀智慧屏pro评测怎么样?荣耀智慧屏pro和普通版区别有什么不同?...
  3. 城市智能化发展中,AI公司应该做什么?
  4. angularjs ngRoute的使用简单例子
  5. MyEclipse8 GA 下载地址 注册码 优化指南
  6. 文件的使用python_python-文件的使用
  7. 工商银行黄金开户问答题答案
  8. WPF-005:关于使用PageFunction导航中KeepAlive的使用
  9. 中label换行问题_如何巧妙处理 Git 多平台换行符问题(LF or CRLF)
  10. 计算机科技英语论文,计算机科技英语论文大纲模板 计算机科技英语论文提纲怎么写...
  11. 传智播客asp.net基础视频免费分享
  12. c 语言转成 梯形图,把语句表转换成梯形图.doc
  13. 针对python代码下载youtub视屏报错修复
  14. [Python]安装/升级pip/pip3
  15. grapher中文版 附序列号
  16. c语言设计生命游戏,C语言实现生命游戏.doc
  17. 我国首次发布IT从业人员心理特征研究报告
  18. 快报:工信部通报38款侵害用户权益的APP | 俄罗斯对保加利亚发起网络攻击
  19. 即时通讯系列-1-即时通讯软件的项目需求说明书
  20. 雨林木风刘杰娇:114 啦网址导航改版围绕用户需求与时俱进

热门文章

  1. 【计算机网络】运输层:传输协议TCP概述
  2. 波动溢出模型|GARCH、DCC、BEKK
  3. 第七章 frr sysrepo纳管初始化流程分析
  4. 行业软件下载整理(全)
  5. 单片机学习日志—电子秒表的设计(2018.07.19)
  6. [推荐] 网络最强PHP开发工具+电子书+视频教程等资料下载汇总
  7. Android 10 SDK 29 使用listFiles返回null空值的原因
  8. 双屏怎么快速切换鼠标_不让鼠标乱跑 双屏使用必备技能
  9. php mov格式,mov和mp4区别是什么
  10. usb high speed chirp