Nginx极简入门(五)配置Nginx反向代理

简介: 反向代理(Reverse Proxy)则是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器
+关注继续查看

前面讲了如何配置Nginx虚拟主机,今天要说的是如何配置nginx和tomcat实现反向代理。

需要说明的是:由于本文章是nginx系列文章中的一篇,文章里面很多其他的配置,可能前面的文章已经说讲过,然后后续就没有在介绍,如果出现有些配置没有讲,大家可能需要去看看前面的文章。

 

一、什么是反向代理

通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中由代理服务器向Internet上的web服务器发起请求,最终达到客户机上网的目的。这就是所谓的正向代理,一般就直接叫代理。


反向代理(Reverse Proxy)则是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。


Nginx 只做请求的转发,后台有多个http服务器提供服务,nginx的作用就是把请求转发给后面的服务器,决定把请求转发给谁处理。如下图:

image.png

 

二、应用场景

实际项目中,一般应用系统通过集群的方式部署,Nginx通过反向代理的方式转发用户的HTTP请求到实际的Web应用服务器,对外只暴露Nginx服务器的地址,而无需映射实际的Web服务器。这样既能保证应用的安全,也可以做到对外地址统一。例如:nginx服务器:192.168.78.132,Web应用服务器1:192.168.78.134,Web应用服务器2:192.168.78.135。如下图所示:

image.png

 

三、环境准备

1. 两台 tomcat 服务器,我这里使用的是使用apache-tomcat-7.0.57版本,在192.168.78.134和192.168.78.135虚拟机上启动tomcat。

2. Nginx 服务器,这个之前安装过,ip地址是:192.168.78.132

3. 修改两个tomcat下的webapps/ROOT/index.jsp的内容,使用tomcat1和tomcat2两个服务首页显示不同的内容。

4. 通过host文件指定aaa.test.com和bbb.test.com对应192.168.78.132虚拟机:修改window的hosts文件:(C:\Windows\System32\drivers\etc)

192.168.78.132 aaa.test.com
192.168.78.132 bbb.test.com

 

四、配置Nginx反向代理

根据上边的需求在nginx.conf文件中配置反向代理,如下:

#配置一个代理即tomcat1服务器
upstream tomcat_server1 {
    server 192.168.78.134:8080;
}
#配置一个代理即tomcat2服务器
upstream tomcat_server2 {
    server 192.168.78.135:8080;
}
#配置一个虚拟主机
server {
    listen 80;
    server_name aaa.test.com;
    location / {
        #域名aaa.test.com的请求全部转发到tomcat_server1即tomcat1服务上
        proxy_pass http://tomcat_server1;
        #欢迎页面,按照从左到右的顺序查找页面
        index index.jsp index.html index.htm;
    }
}
server {
    listen 80;
    server_name bbb.test.com;
    location / {
        #域名bbb.test.com的请求全部转发到tomcat_server2即tomcat2服务上
        proxy_pass http://tomcat_server2;
        index index.jsp index.html index.htm;
    }
}

 

五、验证测试

分别访问aaa.test.com、bbb.test.com测试反向代理。

image.png


image.png


通过上面的截图可以看出:请求访问aaa.test.com通过nginx代理访问tomcat1,请求访问bbb.test.com通过nginx代理访问tomcat2。

 

最后

以上,就把如何配置nginx和tomcat实现反向代理讲完了。虽然步骤比较多,但是操作起来还是比较简单的。


这是系列课程,大家关注我的微信公众号(架构师精进),随时交流。



推荐阅读:

Nginx极简入门(四)基于域名的虚拟主机配置

Nginx极简实战—Nginx服务器高性能优化配置,轻松实现10万并发访问量

Nginx极简入门(三)基于端口的虚拟主机配置

Nginx极简入门(二)配置基于ip的虚拟主机

Nginx极简入门(一)如何在Linux系统编译安装Nginx服务

相关文章
|
4月前
|
负载均衡 网络协议 Ubuntu
入门nginx
今天带大家一起学习一下nginx。 # 什么是nginx Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;Nginx可以作为一个HTTP服务器进行网站的发布处理,另外Nginx可以作为反向代理进行负载均衡的实现。 - Nginx其可以支持数以百万级别的TCP连接 - 开源 - 跨平台 - 稳定 - 反向代理 ## 正向代理与反向代理 什么是正向代理呢?正向代理就是客户端非常明确要访问的服务器地址;服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;正向代理模式屏蔽或者隐藏了真
|
5月前
|
网络协议 Ubuntu 关系型数据库
树莓派ubuntu20.04+Docker+Nginx+Wordpress个人网站搭建全纪录(超详细,入门友好篇)
前言: 本文基于树莓派4B平台,搭载Ubuntu Server 20.04 LTS版本服务器系统,通过将树莓派服务器连接Ipv6公网网络,利用Docker工具,部署Nginx反向代理与Wordpress网站管理系统,实现网站搭建与异地访问。同时用到了域名管理、DDNS、MySQl等工具。本文将从服务器镜像烧录开始,将网站搭建过程进行完整的说明记录。 (经验来自互联网,多次试错学习后总结如下,以供参考。) 关键词: 树莓派; Ubuntu ; Ipv6 ;Docker
274 0
树莓派ubuntu20.04+Docker+Nginx+Wordpress个人网站搭建全纪录(超详细,入门友好篇)
|
7月前
|
前端开发 应用服务中间件 API
Nginx入门及如何反向代理解决生产环境跨域问题
Nginx入门及如何反向代理解决生产环境跨域问题
|
9月前
|
域名解析 负载均衡 应用服务中间件
Nginx基本入门
Nginx基本入门
67 0
Nginx基本入门
|
9月前
|
关系型数据库 MySQL 应用服务中间件
入门 - Docker将nginx容器和php容器关联起来
新建完文件后就可以开启容器了,开启后应该就正常了,访问你的服务器ip(默认就是80端口,应该就可以正常访问nginx) 然后在刚刚的主机目录/home/wwwroot/下新建一个目录default (因为在nginx里设置的默认目录,可以自己修改) 然后新建test.php 写入php代码测试运行。
266 0
|
9月前
|
消息中间件 编解码 JSON
Kafka、Logstash、Nginx日志收集入门
Kafka、Logstash、Nginx日志收集入门
142 0
|
负载均衡 前端开发 应用服务中间件
Nginx入门使用介绍
简单介绍Nginx基础知识
125 0
|
前端开发 JavaScript 应用服务中间件
nginx入门攻略(一篇简单掌握nginx)
nginx入门攻略(一篇简单掌握nginx)
nginx入门攻略(一篇简单掌握nginx)
|
运维 负载均衡 前端开发
16张图入门Nginx——(前端够用,运维入门)
16张图入门Nginx——(前端够用,运维入门)
16张图入门Nginx——(前端够用,运维入门)
|
缓存 移动开发 负载均衡
Nginx 从入门到实践,万字详解!(下)
最近越来越频繁地遇到需要配置反向代理的场景,在自己搭建博客的时候,也不可避免要用到 Nginx,所以这段时间集中学习了一下 Nginx,同时做了一些笔记,希望也可以帮助到大家~ 😜 这篇文章会在 CentOS 环境下安装和使用 Nginx,如果对 CentOS 基本操作还不太清楚的,可以先看看 <半小时搞会 CentOS 入门必备基础知识> 一文先做了解。 相信作为开发者,大家都知道 Nginx 的重要,废话不多说,一起来学习吧。
Nginx 从入门到实践,万字详解!(下)
相关产品
云迁移中心
推荐文章
更多