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

相关文章

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

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

mysql中的服务器架构详解

《mysql中的服务器架构详解》:本文主要介绍mysql中的服务器架构,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、mysql服务器架构解释3、总结1、背景简单理解一下mysqphpl的服务器架构。2、mysjsql服务器架构解释mysql的架

MySQL中的InnoDB单表访问过程

《MySQL中的InnoDB单表访问过程》:本文主要介绍MySQL中的InnoDB单表访问过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、访问类型【1】const【2】ref【3】ref_or_null【4】range【5】index【6】

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

前端如何通过nginx访问本地端口

《前端如何通过nginx访问本地端口》:本文主要介绍前端如何通过nginx访问本地端口的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、nginx安装1、下载(1)下载地址(2)系统选择(3)版本选择2、安装部署(1)解压(2)配置文件修改(3)启动(4)

怎么用idea创建一个SpringBoot项目

《怎么用idea创建一个SpringBoot项目》本文介绍了在IDEA中创建SpringBoot项目的步骤,包括环境准备(JDK1.8+、Maven3.2.5+)、使用SpringInitializr... 目录如何在idea中创建一个SpringBoot项目环境准备1.1打开IDEA,点击New新建一个项

Qt 设置软件版本信息的实现

《Qt设置软件版本信息的实现》本文介绍了Qt项目中设置版本信息的三种常用方法,包括.pro文件和version.rc配置、CMakeLists.txt与version.h.in结合,具有一定的参考... 目录在运行程序期间设置版本信息可以参考VS在 QT 中设置软件版本信息的几种方法方法一:通过 .pro

Nginx 重写与重定向配置方法

《Nginx重写与重定向配置方法》Nginx重写与重定向区别:重写修改路径(客户端无感知),重定向跳转新URL(客户端感知),try_files检查文件/目录存在性,return301直接返回永久重... 目录一.try_files指令二.return指令三.rewrite指令区分重写与重定向重写: 请求

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1