nginx怎么做“正向代理”?代理自己后端的服务器(没有公网ip),去访问公网软件仓库

本文主要是介绍nginx怎么做“正向代理”?代理自己后端的服务器(没有公网ip),去访问公网软件仓库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

实现的方法:

配置nginx服务器的调用配置文件

/etc/nginx/default.d/*.conf

在里面写location块,把匹配到的符合条件的url的访问,转到另一个网址去,以nginx的身份去访问

而nginx作为代理服务器,本身是配置了公网ip的

只是后端服务器没有,所以要访问公网的资源,得先访问nginx服务器的内网ip

然后nginx把这个访问以自己的身份转发出去。请求的结果再返回给后端服务器。

nginx里面的location匹配的是url路径,lnmp平台动静分离,把.php$结尾的url的请求通过fastcgi_pass转发给php-fpm,php-fpm调用php脚本和库,再通过php-mysqlnd和mysql交互,来实现对访问请求的响应。
location  ~  ^/rockylinux/(.*)$  {
     proxy_pass:   云服务商的镜像仓库公网地址$1
}
波浪号“~”是正则匹配   以“/rockylinux/xxxxxxx”这个字段为开头和结尾的,访问本机nginx网页服务的请求,就转到大括号里面的地址
这个也就叫七层代理吧
比如,nginx服务器的内网地址是192.168.1.252
那么内网里面的其他主机可以访问http://192.168.1.252/rockylinux/a/b/c/d/e/f/g.txt
就相当于访问云服务商的镜像仓库公网地址/a/b/c/d/e/f/g.txt
这里的核心有两个,一个是(.*)捕获组和$1捕获组调用的关系
第二个是nginx代理服务器的匹配规则的基础
也就是说,访问http://nginxserverip/url
这个http://nginxserverip/url 路径
被换成
什么
由nginx调用配置文件里面的location决定
location说,这个“url”前面的内容就是来找我,但是来找我的时候,我看看这个“url”是什么样的,看着给分配到什么地址。
这个地方就是访问请求的中转站
把这样的url转到那个网址去
把那样的url转到那个网址去
想要怎么转,告诉我,我来给你转。
也就是说,nginx的调用配置文件里面所书写的location里面的内容,就干一件事,来的什么请求,我给你换到什么地方去。
为什么要有这个location
一般是因为请求的源头干不了这件事,所以得找nginx帮忙
比如nginx作为代理服务器,有公网ip,它的后端真实服务器的集群,那些机器只有内网ip,不上公网ip,那么当这些机器想要访问公网去拿些资源的时候,就可以找nginx帮忙,把请求交给nginx机器的内网ip,然后nginx把这些对于公网地址的请求,变成自己对于公网地址的请求,用自己的公网ip去访问公网地址,拿到结果之后,把结果用自己的内网ip,交给后端真实服务器。
有点类似一个工厂的海外销售部门。
生产部门的职员主要负责生产,不直接和海外客户沟通订单的细节
海外客户对于自己需要的产品的要求,也不直接和工厂的生成部门人员沟通
这中间的一个桥梁就是海外销售部门,对内,可以和自己企业的生产部门沟通协调订单的生产进度和预计的交付周期等,对外,可以和海外客户沟通订单的需求和报价等细节。
nginx的代理
一般理解为,客户端对于后端服务器的访问,nginx做负载均衡,流量分发等。
其实反过来也可以,就是后端服务器通过nginx访问公网,获取公网软件仓库的资源等。

这篇关于nginx怎么做“正向代理”?代理自己后端的服务器(没有公网ip),去访问公网软件仓库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1126123

相关文章

Python极速搭建局域网文件共享服务器完整指南

《Python极速搭建局域网文件共享服务器完整指南》在办公室或家庭局域网中快速共享文件时,许多人会选择第三方工具或云存储服务,但这些方案往往存在隐私泄露风险或需要复杂配置,下面我们就来看看如何使用Py... 目录一、android基础版:HTTP文件共享的魔法命令1. 一行代码启动HTTP服务器2. 关键参

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也

WinForm跨线程访问UI及UI卡死的解决方案

《WinForm跨线程访问UI及UI卡死的解决方案》在WinForm开发过程中,跨线程访问UI控件和界面卡死是常见的技术难题,由于Windows窗体应用程序的UI控件默认只能在主线程(UI线程)上操作... 目录前言正文案例1:直接线程操作(无UI访问)案例2:BeginInvoke访问UI(错误用法)案例

SpringBoot改造MCP服务器的详细说明(StreamableHTTP 类型)

《SpringBoot改造MCP服务器的详细说明(StreamableHTTP类型)》本文介绍了SpringBoot如何实现MCPStreamableHTTP服务器,并且使用CherryStudio... 目录SpringBoot改造MCP服务器(StreamableHTTP)1 项目说明2 使用说明2.1

Nginx安全防护的多种方法

《Nginx安全防护的多种方法》在生产环境中,需要隐藏Nginx的版本号,以避免泄漏Nginx的版本,使攻击者不能针对特定版本进行攻击,下面就来介绍一下Nginx安全防护的方法,感兴趣的可以了解一下... 目录核心安全配置1.编译安装 Nginx2.隐藏版本号3.限制危险请求方法4.请求限制(CC攻击防御)

nginx中端口无权限的问题解决

《nginx中端口无权限的问题解决》当Nginx日志报错bind()to80failed(13:Permissiondenied)时,这通常是由于权限不足导致Nginx无法绑定到80端口,下面就来... 目录一、问题原因分析二、解决方案1. 以 root 权限运行 Nginx(不推荐)2. 为 Nginx

nginx 负载均衡配置及如何解决重复登录问题

《nginx负载均衡配置及如何解决重复登录问题》文章详解Nginx源码安装与Docker部署,介绍四层/七层代理区别及负载均衡策略,通过ip_hash解决重复登录问题,对nginx负载均衡配置及如何... 目录一:源码安装:1.配置编译参数2.编译3.编译安装 二,四层代理和七层代理区别1.二者混合使用举例

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

java实现docker镜像上传到harbor仓库的方式

《java实现docker镜像上传到harbor仓库的方式》:本文主要介绍java实现docker镜像上传到harbor仓库的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 前 言2. 编写工具类2.1 引入依赖包2.2 使用当前服务器的docker环境推送镜像2.2