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访问公网,获取公网软件仓库的资源等。

相关推荐
飛_1 小时前
解决VSCode无法加载Json架构问题
java·服务器·前端
gx23485 小时前
HCLP--MGER综合实验
运维·服务器·网络
angushine5 小时前
鲲鹏服务器部署Kafka2.8.1
运维·服务器
-XWB-6 小时前
【安全漏洞】防范未然:如何有效关闭不必要的HTTP请求方法,保护你的Web应用
服务器·网络·http
一个网络学徒7 小时前
MGRE综合实验
运维·服务器·网络
墨痕砚白7 小时前
VMware Workstation Pro虚拟机的下载和安装图文保姆级教程(附下载链接)
服务器·windows·vmware·虚拟机
白鹭7 小时前
基于LNMP架构的分布式个人博客搭建
linux·运维·服务器·网络·分布式·apache
无敌的牛9 小时前
Linux文件理解,基础IO理解
linux·运维·服务器
angushine9 小时前
鲲鹏服务器logstash采集nginx日志
运维·服务器·nginx