一篇学会Nginx实现反向代理

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

Nginx实现反向代理

昨天已经介绍Nginx快速入门,进行来学习Nginx反向代理,但是在知道反向代理之前,要先了解以下正向代理

1.正向代理

正向代理类似一个跳板机,代理访问外部资源。

原理架构图

客户端与代理服务器形成一个LAN局域网

作用

  • 访问原来无法访问的资源,如google
  • 可以做缓存,加速访问资源
  • 对客户端访问授权,上网进行认证
  • 代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息

2.反向代理

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

原理架构图

图片图片

说明:反向代理是代理服务器与原始服务器形成局域网,原始服务器没有暴露在外网上

作用

  • 保证内网服务器的安全。由于原始服务器没有暴露在外网上,所以外网无法攻击服务器。
  • 实现反向代理(例如:可以将代理服务器的请求分发给一个tomcat)。终极目标是实现负载均衡(分发给多个tomcat)

3.nginx实现反向代理-案例-nginx代理tomcat服务器

目标

用户请求交给nginx(反向代理服务器),nginx将请求交给tomcat去处理,处理完成交回给nginx,nginx交给用户。tomcat是原始服务器,不暴露在外网上

软件

地址

nginx

192.168.150.102

tomcat1

192.168.150.104

tomcat2

192.168.150.106

【步骤一】:安装Tomcat(在两台机器上安装)

可以查看如何在linux上安装Linux上如何安装软件(mysql,java,tomcat)以及防火墙介绍

  • 下载tomcat
curl -O -L https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.87/bin/apache-tomcat-9.0.87.tar.gz
  • 解压
tar -zxvf apache-tomcat-9.0.87.tar.gz  -C /usr/local/
  • Tomcat环境变量全局配置
vim /etc/profile

图片图片

  • 启动Tomcat

【步骤二】:在两台Tomcat上创建静态页面

  • 进入到tomcat下的webapps目录
/usr/local/apache-tomcat-9.0.87/webapps
  • 创建test目录
mkdir test
  • 在test目录创建index.html
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to tomcat!</h1>
<a href="https://tomcat.apache.org/">https://tomcat.apache.org/</a>.<br/>


<p><em>192.168.150.106  </em></p>
<p><em>I am Zbbmeta</em></p>
</body>
</html>

注意:不同机器上写各自IP地址,方便查看Nginx作用

图片图片

【步骤三】:修改nginx.conf配置文件,增加代理tomcat

图片图片

  • 增加代理tomcat服务器
upstream test2{server 192.168.150.104:8080 ; server  192.168.150.106:8080 ;}
  • 代理时的负载使用
location / {
    #root   /data/nginx;
    index  index.html index.htm;
    proxy_pass http://test2/test/;
}
  • 重启nginx
cd /usr/local/nginx/sbin
# 重启nginx
./nginx -s reload

【步骤四】:测试

使用浏览器访问http://192.168.150.102/

多次刷新浏览器发现,ip地址进行变换,也就说明nginx反向代理生效 图片 图片

责任编辑:武晓燕 来源: springboot葵花宝典
相关推荐

2021-10-26 10:40:26

代理模式虚拟

2020-01-02 15:16:51

Nginx反向代理服务器

2021-12-26 18:24:00

NginxTomcat服务

2022-03-21 06:35:23

HTML5NginxWebSocket

2021-12-04 22:05:02

Linux

2022-05-17 08:02:55

GoTryLock模式

2022-03-17 19:29:04

CSS切角自适应

2022-01-02 08:43:46

Python

2022-07-01 07:33:24

nginx反向代理测试

2022-02-07 11:01:23

ZooKeeper

2023-12-05 09:14:54

2021-07-06 08:59:18

抽象工厂模式

2021-05-11 08:54:59

建造者模式设计

2021-07-05 22:11:38

MySQL体系架构

2023-01-03 08:31:54

Spring读取器配置

2021-07-02 09:45:29

MySQL InnoDB数据

2022-08-26 09:29:01

Kubernetes策略Master

2022-08-23 08:00:59

磁盘性能网络

2023-11-28 08:29:31

Rust内存布局

2020-10-22 08:05:46

Nginx
点赞
收藏

51CTO技术栈公众号