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

简介: 【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进行访问

实现效果截图:


总结

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

相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
目录
相关文章
|
6天前
|
应用服务中间件 nginx
百度搜索:蓝易云【如何用NGINX实现UDP四层反向代理?】
请注意,这个回答是基于NGINX目前的特性和功能,如果有新的版本或更新的特性,建议查阅NGINX官方文档或其他权威资源,以确保你得到最准确的配置信息。
34 0
|
6天前
|
JSON 应用服务中间件 API
利用Grafana的API Key+Nginx反向代理实现Grafana免登录访问
利用Grafana的API Key+Nginx反向代理实现Grafana免登录访问
122 1
|
6天前
|
负载均衡 应用服务中间件 nginx
nginx-tomcat反向代理以及负载均衡测试
nginx-tomcat反向代理以及负载均衡测试
|
6天前
|
负载均衡 应用服务中间件 API
Nginx配置文件详解Nginx负载均衡Nginx静态配置Nginx反向代理
Nginx配置文件详解Nginx负载均衡Nginx静态配置Nginx反向代理
45 4
|
1天前
|
负载均衡 安全 应用服务中间件
nginx配置ssl和反向代理的配置代码
【5月更文挑战第2天】nginx配置ssl和反向代理的配置代码
18 3
|
6天前
|
域名解析 弹性计算 应用服务中间件
基于nginx反向代理实现OSS固定域名IP访问
本文基于阿里云OSS手册:https://help.aliyun.com/zh/oss/use-cases/use-an-ecs-instance-that-runs-centos-to-configure-a-reverse-proxy-for-access-to-oss,继续深入讨论如何利用nginx反向代理,实现固定的IP/域名访问OSS bucket。官方文档能够解决大部分的反向代理固定IP访问oss bucket的场景,但是对于必须使用域名作为endpoint的系统,会出现signatrue鉴权问题。本文继续在官方文档的基础上,将反向代理需要域名作为endpoint的场景补齐方案。
|
6天前
|
负载均衡 监控 Unix
[AIGC] Nginx:一个高性能的 Web 服务器和反向代理
[AIGC] Nginx:一个高性能的 Web 服务器和反向代理
|
6天前
|
负载均衡 JavaScript 前端开发
Nginx实现反向代理、负责均衡、动静分离
Nginx实现反向代理、负责均衡、动静分离
|
6天前
|
应用服务中间件 nginx
nginx进行反向代理的配置
在Nginx中设置反向代理的步骤:编辑`/etc/nginx/nginx.conf`,在http段加入配置,创建一个监听80端口、服务器名为example.com的虚拟主机。通过`location /`将请求代理到本地3000端口,并设置代理头。保存配置后,使用`sudo nginx -s reload`重载服务。完成配置,通过example.com访问代理服务器。
35 0
|
6天前
|
应用服务中间件 Nacos nginx
nacos 2.3.2模式 standalone 使用nginx 反向代理之后访问nacos控制台静
nacos 2.3.2模式 standalone 使用nginx 反向代理之后访问nacos控制台静