【Nginx三】——Nginx实现反向代理

本文涉及的产品
.cn 域名,1个 12个月
简介: 【Nginx三】——Nginx实现反向代理

系列文章目录

【Nginx一】——Nginx介绍(正向代理 反向代理 负载均衡 动静分离)

【Nginx二】——Nginx常用命令 配置文件

Nginx如何处理请求

【Nginx三】——反向代理


前言

本篇博客主要介绍Nginx如何实现反向代理,会进行介绍什么是反向代理,以及进行实例实现反向代理。


一、反向代理是什么?

代理服务器来接收网络上请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给网络上连接的客户端。

背景:首先有一个用户C,三台服务器S1、S2和S3,但S1对外网开放,S2和S3不对外网开放,还有一份资源D,资源D放在服务器S2和S3上。

用户C并不知道资源D在服务器S2和S3上面,他只知道访问服务器S1就可以得到资源D,于是他每次都是直接访问服务器S1,只不过提供给用户C资源的都是来自服务器S2或者S3.

反向代理对于用户C来说,他是不知道资源D具体在哪里,也不知道具体由谁提供。

对于服务器S1来说每次都接受用户的请求,然后再把请求根据调度策略交给提供资源D的服务器S2或者S3,对于服务器S2和S3来说同样也都不知道访问这份资源D的真实用户是谁,只是和服务器S1进行交互。

二、Nginx实现反向代理

实现反向代理示意图:

1.tomcat环境准备并进行访问

在Linux服务器上安装tomcat并进行启动,linux虚拟机的ip为192.168.60.123

通过ip+端口号8080访问tomcat服务器;成功访问的页面:

2.通过域名访问tomcat

在windows下的hosts文件中进行域名与ip的映射关系。C:\WINDOWS\system32\drivers\etc

Windows10上的host文件配置作用是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”。这个文件的主要作用是定义IP地址和主机名的映射关系,是一个映射IP地址和主机名的规定³。当我们在浏览器中输入一个网址时,浏览器会首先查找本地的hosts文件,如果找到了对应的IP地址,就直接访问该IP地址对应的服务器,否则就向DNS服务器发出请求,获取该网址对应的IP地址。

示例(如图:)

linux虚拟机的ip为192.168.60.123

这次通过域名www.test.com+端口号8080进行访问。

实现效果截图:

3.通过域名不加端口号进行访问(实现反向代理)

修改Nginx的配置文件,编辑nginx.conf文件,修改server模块。

首先nginx会监听80端口的请求,再匹配服务名是为192.168.60.123的请求,匹配上之后再根据location的匹配规则进行匹配。要将请求传递到 HTTP 代理服务器,使用 proxy_pass 指令可以看这篇博客进行详细了解Nginx如何处理请求

代码如下(示例):

server {
        listen 80;
        server_name 192.168.60.123;
         location / {
         proxy_pass http://192.168.60.123:8080;  
             }
 }

配置好之后通过域名www.test.com进行访问

实现效果截图:


总结

不难看出反向代理对于客户端来说不知道目的服务器,客户端只知道请求代理服务器能够获取到需要的资源。而代理服务器可以通过相应的配置拦截前往我们后端服务器的客户端的请求,通过这样做,代理服务器可以保护目的服务器的身份并作为对安全攻击的额外防御。

目录
相关文章
|
2月前
|
负载均衡 网络协议 Unix
Nginx七层(应用层)反向代理:SCGI代理scgi_pass篇
Nginx七层(应用层)反向代理:SCGI代理scgi_pass篇
50 1
|
19天前
|
JavaScript Java 应用服务中间件
|
2天前
|
JavaScript 应用服务中间件 开发工具
vue尚品汇商城项目-day07【53.nginx反向代理配置】
vue尚品汇商城项目-day07【53.nginx反向代理配置】
13 4
|
2月前
|
应用服务中间件 nginx Docker
本地通过域名访问虚拟机上nginx的服务、搭建域名访问环境一(反向代理配置)
这篇文章介绍了如何通过域名在本地访问虚拟机上的nginx服务,包括创建nginx容器、修改配置文件、修改本地host文件以及进行访问测试的详细步骤。文章提供了具体的Docker命令来创建并配置nginx容器,展示了配置文件的修改示例,说明了如何在本地系统的hosts文件中添加虚拟机IP和自定义域名,以及如何通过浏览器进行测试访问。
本地通过域名访问虚拟机上nginx的服务、搭建域名访问环境一(反向代理配置)
|
2月前
|
缓存 负载均衡 应用服务中间件
Nginx 代理管理器强势登场!轻松设置反向代理,为你的网络安全与高效护航,快来探索!
【8月更文挑战第23天】Nginx 代理管理器(NPM)是一款强大的工具,用于简化反向代理的设置流程。反向代理能隐藏后端服务器的真实IP,提升安全性,实现负载均衡与缓存等功能。用户需先安装Nginx 代理管理器,然后通过其Web界面添加代理主机,指定代理名称、协议类型、服务器地址及端口等信息。对于HTTPS协议,还需上传SSL证书/密钥。完成设置后,可通过浏览器测试反向代理是否正常工作。Nginx 代理管理器还支持高级特性,如负载均衡、缓存及访问控制等。
63 1
|
2月前
|
负载均衡 应用服务中间件 Linux
"揭晓nginx的神秘力量:如何实现反向代理与负载均衡,拯救服务器于水火?"
【8月更文挑战第20天】在Linux环境下,nginx作为高性能HTTP服务器与反向代理工具,在网站优化及服务器负载均衡中扮演重要角色。本文通过电商平台案例,解析nginx如何解决服务器压力大、访问慢的问题。首先介绍反向代理原理,即客户端请求经由代理服务器转发至内部服务器,隐藏真实服务器地址;并给出配置示例。接着讲解负载均衡原理,通过将请求分发到多个服务器来分散负载,同样附有配置实例。实践表明,采用nginx后,不仅服务器压力得到缓解,还提升了访问速度与系统稳定性。
56 3
|
2月前
|
负载均衡 算法 应用服务中间件
在Linux中,nginx反向代理和负载均衡实现原理是什么?
在Linux中,nginx反向代理和负载均衡实现原理是什么?
|
2月前
|
jenkins 应用服务中间件 持续交付
如何配置 Nginx 作为 Jenkins 的反向代理并启用 SSL 加密
如何配置 Nginx 作为 Jenkins 的反向代理并启用 SSL 加密
77 8
|
2月前
|
缓存 负载均衡 应用服务中间件
如何配置 NGINX 反向代理
【8月更文挑战第21天】
162 0
如何配置 NGINX 反向代理
|
2月前
|
缓存 应用服务中间件 API
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇(三)
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇(三)
34 3