Nginx教程 反向代理

这篇具有很好参考价值的文章主要介绍了Nginx教程 反向代理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

“Nginx 是一个很强大的高性能Web和反向代理服务” 引言自百度百科。其实 Nginx 不仅可以作为方向代理,也可以作为正向代理服务器。接下来咱们就看看这两种代理方式。

nginx 域名反向代理,ngixn,docker,nginx,微服务,docker,Powered by 金山文档

正向代理

概念

一个位于客户端和目标服务器之间的代理服务器(中间服务器)。为了从原始服务器取得内容,客户端向代理服务器发送一个请求,并且指定目标服务器,之后代理向目标服务器转交并且将获得的内容返回给客户端。正向代理的情况下客户端必须要进行一些特别的设置才能使用。常见的场景如VPN。

关系

客户端 <一> 代理 一>服务端。注意红色的箭头,正向代理是对客户端的代理。目标服务很明确。简单举个例子:A(客户端)想租C(服务端)的房子,但是A(客户端)并不认识C(服务端)租不到。 B(代理)认识C(服务端)能租这个房子所以你找了B(代理)帮忙租到了这个房子。这个过程中C(服务端)不认识A(客户端)只认识B(代理) C(服务端)并不知道A(客户端)租了房子,只知道房子租给了B(代理)。

nginx 域名反向代理,ngixn,docker,nginx,微服务,docker,Powered by 金山文档

反向代理

概念

与正向正好相反。对于客户端来说,反向代理就好像目标服务器。并且客户端不需要进行任何设置。客户端向反向代理发送请求,接着反向代理判断请求走向何处,并将请求转交给客户端,使得这些内容就好似他自己一样,一次客户端并不会感知到反向代理后面的服务,也因此不需要客户端做任何设置,只需要把反向代理服务器当成真正的服务器就好了。常见的场景比如例如域名代理多个端口,利用域名代理多个服务器的应用等等。

关系

客户端 一>代理 <一> 服务端。注意红色的箭头,正向代理是对服务端的代理。也举个例子:A(客户端)想租一个房子,B(代理)就把这个房子租给了他。 这时候实际上C(服务端)才是房东。 B(代理)是中介把这个房子租给了A(客户端)。这个过程中A(客户端)并不知道这个房子到底谁才是房东,他都有可能认为这个房子就是B(代理)的。

nginx 域名反向代理,ngixn,docker,nginx,微服务,docker,Powered by 金山文档

反向代理实战

实战一:直接用域名代理目标地址

使用 nginx 反向代理,访问 http://springboot.com/ 直接跳转到 127.0.0.1:8080。

环境准备:springboot服务,docker,mac。我采用的是docker nginx挂载文件修改,大家想看挂载相关的操作可以看看这篇文章。《docker 挂载、修改文件》https://blog.csdn.net/lly576403061/article/details/129507650。直接修改文件如下,重点我已经标注。然后在浏览器输入:http://localhost:8010/demo1/api/demo1/start即可访问。

nginx 域名反向代理,ngixn,docker,nginx,微服务,docker,Powered by 金山文档
nginx 域名反向代理,ngixn,docker,nginx,微服务,docker,Powered by 金山文档

实战二:反向代理使用不同的路径请求不同的服务

使用Nginx的反向代理,在浏览器访问同一个域名和端口,只是根据访问路径的不同调用相应的服务。具体case如下:

http://localhost:8088/demo1/api/demo1/start 访问微服务demo1的相关接口。

http://localhost:8088/demo2/api/demo2/start 访问微服务demo2的相关接口。

具体操作之前咱们在《Docker Nginx 反向代理》里有聊过,可以看看。https://blog.csdn.net/lly576403061/article/details/129452986

番外:Location指令的匹配说明

location,该指令用于匹配 URL,具体测说明如下。

location [ = | ~ | ~* | ^~ ] uri { ... }
  1. = :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。

  1. ~:用于表示 uri 包含正则表达式,并且区分大小写。

  1. ~*:用于表示 uri 包含正则表达式,并且不区分大小写。

  1. ^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。

注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。

附件:官方文档:https://nginx.org/en/docs/http/ngx_http_core_module.html#location文章来源地址https://www.toymoban.com/news/detail-698903.html

到了这里,关于Nginx教程 反向代理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • nginx反向代理https域名时,请求报错502问题排查

    微信公众号:运维开发故事,作者:冬子先生 一. 现象 在使用nginx反向代理后端服务器的时候,因为配置的是域名,导致HTTPS 请求转发失败,报 SSL 错误,js 报 502 img img 二. 排查过程 1、查看nginx日志,发现报502,但是本地curl upstream中的后端域名是可以正常通的 img 2、查看后端

    2024年02月11日
    浏览(43)
  • Docker Nginx 反向代理

    最近在系统性梳理网关的知识,其中网关的的功能有一个是代理,正好咱们常用的Nginx也具备次功能,今天正好使用Nginx实现一下反向代理,与后面网关的代理做一个对比,因为我使用的docker安装的Nginx,与直接部署Nginx不太一样正好记录下遇到的问题,希望可以帮助到学习的

    2023年04月08日
    浏览(44)
  • K8s进阶之网络:pod内不同容器、同节点不同pod通信、CNI插件、不同节点pod通信、Flannel容器网络、Serivce连接外部网络、服务发现、Nginx反向代理与域名、Ingress代理

    Pod是Kubernetes中最小的可部署单元,它是一个或多个紧密关联的容器的组合,这些容器共享同一个网络命名空间和存储卷,因此Pod中的 所有容器都共享相同的网络命名空间和IP地址——PodIP ,所以在同一个Pod内的容器间通信可以 通过localhost直接通信 。 k8s创建Pod时永远都是首先

    2024年02月05日
    浏览(56)
  • Nginx教程 反向代理

    “Nginx 是一个很强大的高性能Web和反向代理服务” 引言自百度百科。其实 Nginx 不仅可以作为方向代理,也可以作为正向代理服务器。接下来咱们就看看这两种代理方式。 正向代理 概念 一个位于客户端和目标服务器之间的代理服务器(中间服务器)。为了从原始服务器取得内容

    2024年02月09日
    浏览(36)
  • Nginx-反向代理(配置教程)

     反向代理的作用 1、解决网站服务器对外可见的问题、私密性、安全性 2、路由功能:根据用户请求的URI调度到对应功能的节点处理请求 3、负载均衡:将用户的请求,通过调度算法挑选一台合适的节点处理请求 4、动静分离:根据用户请求的URI进行区分,将动态资源调度到应

    2024年02月13日
    浏览(41)
  • yum安装nginx、源码安装、nginx开机自启、配置多域名与重定向、反向代理、配置IPv6、获取证书与配置证书https

    可以使用yum直接安装nginx:yum -y install nginx,如果安装报错,可以换个yum源试试 源码安装提供更大的灵活性,但需要更多的手动管理,而Yum安装则更方便 yum源镜像站,阿里云的推荐:https://developer.aliyun.com/mirror/ 常用的镜像:epel和centos,根据提示命令直接安装即可 然后执行:

    2024年02月20日
    浏览(70)
  • 基于Docker MinIO整合Nginx搭建反向代理

    docker拉去镜像安装和配置就不说了 主要说一下配置反向代理 第一次使用minio我陷入了一个误区,将nginx的data目录挂载到了minio的文件目录,这样是可以通过nginx访问minio文件,但是没有任何意义,也没有做任何的代理设置,研究了很久最后把nginx容器停了重新run一个,然后配置

    2024年02月09日
    浏览(42)
  • 在docker中使用Nginx并实现反向代理

    使用Nginx反向代理,可以通过不同的子域名访问到不同服务器的端口上 下面来介绍怎么在Docker容器中使用Nginx反向代理。 1.安装Docker 确保你的系统上已经安装了Docker。具体可以Docker官方网站上找到适合你系统的安装指南。 2.创建一个新的Docker容器 首先,创建一个新的Docker容器

    2024年02月16日
    浏览(54)
  • 【代理服务器】Squid 反向代理与Nginx缓存代理

    如果 Squid 反向代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端;否则反向代理服务器将向后台的 Web 服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存在本地,供下一个请求者使用。 缓存网页对象,减少重复请求 将互联网请求

    2024年02月12日
    浏览(58)
  • 使用Nginx作为反向代理服务器

    简介 在本教学文章中,我们将学习如何使用Nginx作为反向代理服务器,将流量转发到后端服务器。反向代理是一种常见的应用场景,它可以帮助我们提高应用程序的可靠性、性能和安全性。本教程将介绍如何配置Nginx作为反向代理,并涵盖负载均衡和缓存设置。 前提条件 在开

    2024年02月13日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包