前段时间,了不起给大家说过如果使用 Docker 发布自己的后端项目 , 也就不再使用 Jar 包进行项目的发版操作,但是这其中就又涉及到了前端如何发版,为什么这么说,因为资深前端开发,可能知道各种发版内容等,但是对于一般的前端开发来说,走到build后,就已经算是比较不错了,接下来如果没有运维的话,那么在不使用 jekins 的情况下,就只能是后端来进行发版了,今天我们讲讲这个docker 是如何发布前端应用的 。
前端发布现在部署前端服务,肯定少不了 Nginx,了不起就先从这个 Nginx 来开始讲一下吧 。
“Nginx是一款轻量级的HTTP服务器,采用事件驱动的异步非阻塞处理方式框架 , 这让其具有极好的IO性能,时常用于服务端的反向代理和负载均衡 。”
选择Nginx的原因有以下几点:
- 高性能:Nginx以事件驱动的方式处理请求,能够高效地处理大量并发连接 , 适合高负载的场景 。
- 资源消耗低:相比其他Web服务器 , Nginx占用的系统资源更少,能够在相同硬件上处理更多的请求 。
- 可扩展性:Nginx支持模块化的架构,可以通过添加模块来扩展功能,满足不同需求 。
- 反向代理和负载均衡:Nginx内置了反向代理和负载均衡功能,能够有效地分发请求到多个后端服务器 。
- 高可靠性:Nginx经过长时间的实际应用验证,稳定性和可靠性较高 。
安装 Nginx一般的,我们都是使用 Docker 来进行这个 Nginx 的安装
要在Docker中安装Nginx,可以按照以下步骤进行操作:
- 首先,确保你已经安装了Docker 。如果没有安装,可以根据你的操作系统在Docker官方网站上找到相应的安装指南 。
- 打开终端或命令行界面 , 执行以下命令来拉取Nginx镜像:
docker pull nginx
这将从Docker Hub上拉取最新的Nginx镜像到你的本地环境 。- 当镜像拉取完成后,可以使用以下命令来创建并运行一个Nginx容器:
docker run --name mynginx -d -p 80:80 nginx
这个命令将创建一个名为mynginx的容器,并将容器的80端口映射到宿主机的80端口,使得可以通过浏览器访问Nginx服务 。- 现在 , 你可以通过浏览器访问http://localhost来查看Nginx默认页面,或者使用宿主机的IP地址来访问Nginx服务 。
Nginx 的相关配置
worker_processes1;# worker进程的数量events {# 事件区块开始worker_connections1024;# 每个worker进程支持的最大连接数}# 事件区块结束http {# HTTP区块开始includemime.types;# Nginx支持的媒体类型库文件default_typeApplication/octet-stream;# 默认的媒体类型sendfileon;# 开启高效传输模式keepalive_timeout65;# 连接超时server {# 第一个Server区块开始,表示一个独立的虚拟主机站点listen80;# 提供服务的端口,默认80server_namelocalhost;# 提供服务的域名主机名location / {# 第一个location区块开始roothtml;# 站点的根目录 , 相当于Nginx的安装目录indexindex.html index.htm;# 默认的首页文件,多个用空格分开}# 第一个location区块结果error_page500502503504/50x.html;# 出现对应的http状态码时,使用50x.html回应客户location = /50x.html {# location区块开始,访问50x.htmlroothtml;# 指定对应的站点目录为html}}......
其实我们相对来说只需要关注 location 中的相关配置就可以了 , 但是对于 Nginx 了不起还是想多说一下这个的 。
Nginx 的正向代理正向代理是指代理服务器代表客户端向服务器发出请求 , 然后将服务器的响应返回给客户端 。在Nginx中,可以通过配置代理服务器来实现正向代理功能 。具体的配置如下:
server {listen80;server_namelocalhost;location / {proxy_pass http://example.com;# 将请求转发到指定的服务器proxy_set_header Host $host;# 设置请求头中的Host字段proxy_set_header X-Real-IP $remote_addr;# 设置请求头中的真实IP地址proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;# 设置请求头中的转发地址proxy_set_header X-Forwarded-Proto $scheme;# 设置请求头中的协议类型}}
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 使用 Mapstructure 解析 Json,你学会了吗?
- 创建一个双模式跨运行时的 JavaScript 包,你学会了吗
- Spring非常实用的技巧,你确定知道?
- 看完后,你再也不用怕面试问并发编程啦
- 十大AI模型盘点,每一个都是强者!
- 最新“铁饭碗”排名,国家烟草第四,医生第二,第一很多人却不知道
- 女人对你有好感,哪怕嘴上不说,这7个肢体语言也藏不住
- “无性婚姻”有多可怕?听听3个过来人的故事,希望你能引以为戒
- 家里放了几年的红茶、绿茶、普洱茶,还能喝吗?医生告诉你实话
- 如何提升抖音小店的店铺销量?