正向代理和反向代理

参考:

博客1:https://www.cnblogs.com/Anker/p/6056540.html

博客2:https://www.zhihu.com/question/24723688

 

最近在做OTA工作,需要搞懂前后端服务在我司产品上时怎么跑的,其中前端是部署在nginx上的,于是想研究一下相关的东西。

首先,前端是跑在docker容器中的,容器中装了nginx;

然后,我们看下docker构建这个镜像的DockerFile:

复制代码
FROM arm64-nginx:v1.0.0

ENV HTTP_PORT 80
ENV HTTPS_PORT 443
ENV RTMP_PORT 1935
ENV PIC_PORT 8077

EXPOSE 80 8077

COPY ./dist /var/www/html

COPY ./nginx.conf /etc/nginx/nginx.conf.template

VOLUME /usr/local/share/images

#CMD [ "nginx", "-g", "daemon off;" ]
CMD envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < \
  /etc/nginx/nginx.conf.template > /etc/nginx/nginx.conf && \
  nginx
复制代码

进一步,看下镜像运行容器的命令:

docker run -d -v /data/images:/usr/local/share/images -v /data/nginx/nginx/nginx.conf:/etc/nginx/nginx.conf 
-v /data/nginx/nginx/nginx.conf.template:/etc/nginx/nginx.conf.template -v /data/nginx/html/config.js:/var/www/html/config.js --net=host --name=web-service --restart=always 镜像id

很明显,需要关注下 /etc/nginx/nginx.conf 这个文件,因为-v映射的关系,在宿主机或容器内外都可以看:

/etc/nginx/nginx.conf:

 

 可以看到,web server运行起来默认监听80端口,然后通过nginx反向代理这个server,使得可以通过这个server访问多个端口
而对于client来说,这个是透明的,client并不知道server进行了代理,这就是反向代理

当然了,nginx还有负载均衡的作用,可以参考下面的图,结合,server进行反向代理对client端来说是“透明”的(客户端不知道真正提供服务的是谁),这个概念,一下子就能明白,什么是负载均衡:

 

posted @   胖白白  阅读(61)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示