1.什么是反向代理

使用nginx实现反向代理,Nginx只做请求的转发,后台有多个http服务器提供服务,nginx的功能就是把请求转发给后面的服务器,决定把请求转发给谁。

2.在一个虚拟机上创建两个tomcat实例,模拟多个服务器。

  Nginx反向代理就是通过访问不同的域名访问运行在不同端口的tomcat ,这里在hosts文件 中配置 www.test80.com 和 www.test82.com两个域名,

对应的ip都是我虚拟机上的安装了nginx的centos系统的ip地址192.168.93.130,通过模拟Nginx反向代理,实现 www.test80.com 访问运行8080端口的tomcat,www.test82.com访问运行8082端口的tomcat

2.1 在线安装tomcat

[root@localhost local]# su liuch

[liuch@localhost local]$ ls

bin  etc  games  include  lib  lib64  libexec  nginx  nginx-1.16.0  nginx-1.16.0.tar.gz  sbin  share  src

[liuch@localhost local]$ su root

Password:

[root@localhost local]#  wget https://mirrors.cnnic.cn/apache/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42.tar.gz --no-check-certificate

--2019-06-16 06:13:43--  https://mirrors.cnnic.cn/apache/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42.tar.gz

Resolving mirrors.cnnic.cn... 101.6.8.193, 2402:f000:1:408:8100::1

Connecting to mirrors.cnnic.cn|101.6.8.193|:443... connected.

WARNING: certificate common name “*.tuna.tsinghua.edu.cn” doesn’t match requested host name “mirrors.cnnic.cn”.

HTTP request sent, awaiting response... 200 OK

Length: 9711748 (9.3M) [application/x-gzip]

Saving to: “apache-tomcat-8.5.42.tar.gz”

100%[==========================================================================================================>] 9,711,748   1.45M/s   in 6.4s

2019-06-16 06:13:50 (1.44 MB/s) - “apache-tomcat-8.5.42.tar.gz” saved [9711748/9711748]

[root@localhost local]# ls

apache-tomcat-8.5.42.tar.gz  bin  etc  games  include  lib  lib64  libexec  nginx  nginx-1.16.0  nginx-1.16.0.tar.gz  sbin  share  src

[root@localhost local]#

2.2 解压

2.3 创建tomcats目录并复制两个tomcat

2.4修改tomcat配置(在同一台机器上运行两个tomcat,需要设置tomcat的端口不同)

修改tomcat2的server.xml

  

2.5修改tomcat首页,以区分两个tomcat

 

2.6 启动tomcat,并开放8082端口(直接访问 192.168.93.130:8082会访问不通,被拦截器拦住了)

开放8082端口:

访问测试

 

3. 配置Nginx反向代理

在上面的基础上,配置nginx的反向代理服务,这时nginx仅仅是做请求转发

/usr/local/nginx/sbin/nginx -s reload 重新加载nginx配置文件后 测试,可以看到域名为www.test80.com的请求,被转发到了端口号为8080的tomcat服务器上

来自www.test82.com的请求,被转发到了端口号为8082的tomcat服务器上:

4.模拟nginx 负载均衡配置

如果在同一个域名下有多台服务器提供服务,此时需要nginx来进行负载均衡。

Nginx负载均衡服务器:192.168.93.130

Tomcat1服务器:192.168.93.130:8080

Tomcat2服务器:192.168.93.130:8082,在前面的基础上,nginx.conf配置稍作如下改动:把tomcatserver2 的反向代理配置及proxy_pass注释掉,

在tomcatserver1下面添加一台服务器 server  192.168.93.130:8082; 即可

此时访问http://www.test80.com/ ,可以看到8080端口的tomcat1,8082端口的tomcat2轮流处理请求:(nginx默认的负载均衡策略是轮询)

Nginx实现反向代理与负载均衡的更多相关文章

  1. Windos环境用Nginx配置反向代理和负载均衡

    Windos环境用Nginx配置反向代理和负载均衡 引言:在前后端分离架构下,难免会遇到跨域问题.目前的解决方案大致有JSONP,反向代理,CORS这三种方式.JSONP兼容性良好,最大的缺点是只支持 ...

  2. nginx的反向代理和负载均衡的一个总结

    之前一直觉的nginx的反向代理和负载均衡很厉害的样子,最近有机会接触了一下公司的这方面的技术,发现技术就是一张窗户纸呀,捅破了啥都明白了! 接下来先看一下nginx的反向代理: 简单的来说就是ngi ...

  3. nginx简单反向代理和负载均衡(ubuntu)

    nginx简单反向代理与负载均衡 环境:三台ubuntu 12.04.5 虚拟机    均装有nginx 1.1.19 以下u1(192.168.240.129) ,u2(192.168.240.13 ...

  4. nginx的反向代理和负载均衡的区别是什么 - 开源中国社区

    nginx的反向代理和负载均衡的区别是什么 - 开源中国社区   nginx的反向代理和负载均衡的区别是什么 #user  nobody;worker_processes  1;#error_log  ...

  5. nginx(三)反向代理和负载均衡

    nginx(三)反向代理和负载均衡 正向代理概念:比如在学校要上网,在学校内网是一个内网ip,需要连上公网就需要一个正向代理服务器. 反向代理概念: 看下图(Nginx只做请求的转发,后台有多个htt ...

  6. 七、CentOS 6.5 下 Nginx的反向代理和负载均衡的实现

    CentOS 6.5 下 Nginx的反向代理和负载均衡的实现 * 修复上面文章的问题: 复制出一个tomcat2之后,修改service.xml文件时,要修改三个端口: 1. <!-- 800 ...

  7. nginx实现反向代理和负载均衡

    利用nginx做反向代理和负载均衡是减轻服务器压力的有效方式.nginx代理服务器接收多个客户端请求, 根据配置的参数均衡到每个tomcat服务器上,tomcat处理请求,返回响应结果给nginx,n ...

  8. Nginx使用反向代理实现负载均衡

    Nginx使用反向代理实现负载均衡 yls 2019-9-20 简介 基于docker容器以及docker-compose,所以需要自学docker在linux环境的基本使用 使用两个tomcat作为 ...

  9. nginx 配置反向代理,负载均衡实战解析

    前言:NGINX的反向代理和负载均衡是网站架构中经常用到的一种高并发,高可用的方案,下面我们直接实战操作,当然理论也是要的. 一.反向代理 过程:反向代理:客户端 一>代理 <一> ...

  10. [笔记]nginx配置反向代理和负载均衡

    1.nginx配置文件:源码安装情况下,nginx.conf在解压后的安装包内.yum安装,一般情况下,一部分在/etc/nginx/nginx.conf中,一部分在/etc/nginx/conf.d ...

随机推荐

  1. linux中表示系统信息如cpu mem disk等内容都在 /proc

    linux中表示系统信息的 内容都在 /proc 要查看系统的任何信息, 如cpu mem 磁盘等等, 都在 /proc下, 如: cpuinfo ,meminfo diskstatus 等等

  2. ThreadPoolExecutor 源码分析

    ThreadPoolExecutor 线程池核心实现类 线程池的生命周期 RUNNING: 接受新任务,同时处理工作队列中的任务 SHUTDOWN: 不接受新任务,但是能处理工作队列中的任务 STOP ...

  3. LinkedHashSet 源码分析

    LinkedHashSet 1)底层由 LinkedHashMap 支持的 Set 接口实现,该 Set 中的元素具有可预知的迭代顺序. 创建实例 /** * 构造一个新的空 set,其底层 Link ...

  4. Oracle-数据导出和导入

    对数据库进行逻辑备份或数据转储,也就是对数据库实时导入.导出操作时,既可以使用常规的EXP/IMP客户端程序,也可以使用数据泵技术:IMPDP/EXPDP 使用数据泵导出或导入的优点: 1.数据泵导出 ...

  5. nginx proxy_pass 和 proxy_redirect

    proxy_pass:充当代理服务器,转发请求proxy_redirect:修改301或者302转发过程中的Location.默认值为proxy_redirect default. 例:locatio ...

  6. AlertManager警报通知 E-mail 微信 模板

    # AlertManager警报通知 E-mail 微信 模板 #AlertManager配置 #alertmanager.yml # 全局配置项 global: resolve_timeout: 5 ...

  7. 接口框架 python+unittest+request+HTMLTestRunner

    request的各种方法主要用来处理客户端浏览器提交的请求中的各项参数和选项.如POST,GET最常用的两种请求 官方文档:http://docs.python-requests.org/en/mas ...

  8. Nginx配置之rewrite、proxy_pass、upstream、location

    如图,这是Nginx的配置文件nginx.conf中的一段配置代码. 在http段中定义了一个名为webservers的upstream模块,主要用于负载均衡. 在server模块中,定义了一个loc ...

  9. zend studio远程自动上传代码并执行

    http://devzc.com/archives/382/zend_studio_sftp_upload_and_exec/ 最近要做服务的接口测试,公司原有的ide测试工具对于数组的参数化很弱.由 ...

  10. RandomAccessFile类使用说明

    RandomAccessFile类是Java Io体系中功能最为丰富的文件访问类,它提供了众多的文件访问方法.RandomAccessFile类支持“随机访问”方式,这里的“随机”是指程序可以直接跳到 ...