当前位置: 首页 > wzjs >正文

优质的南昌网站建设重庆seo俱乐部联系方式

优质的南昌网站建设,重庆seo俱乐部联系方式,沈阳专业做网站,宁波江北区城市建设档案馆网站使用 Docker 部署 Nginx,配置后端 API 轮询与多个子域名前端应用 在这篇博客中,我们将介绍如何通过 Docker 部署 Nginx 服务器,并配置 多个后端 API 的轮询负载均衡,同时通过 子域名 部署多个不同的前端应用。Nginx 将作为反向代…

使用 Docker 部署 Nginx,配置后端 API 轮询与多个子域名前端应用

在这篇博客中,我们将介绍如何通过 Docker 部署 Nginx 服务器,并配置 多个后端 API 的轮询负载均衡,同时通过 子域名 部署多个不同的前端应用。Nginx 将作为反向代理服务器,处理来自客户端的请求,并将其转发到不同的后端服务,同时根据不同的子域名提供静态资源。我们还会介绍如何映射日志文件以便持久化存储。


一、使用 Docker 部署 Nginx

1. 创建 Nginx 配置文件

首先,在服务器上创建用于存放 Nginx 配置文件静态资源 的目录:

mkdir -p /home/middleware/nginx/conf
mkdir -p /home/middleware/nginx/html

然后,在 /home/middleware/nginx/conf 目录下创建 nginx.conf 配置文件,内容如下:

worker_processes auto;events {worker_connections 1024;
}http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout 65;# 后端 API 配置(轮询负载均衡)upstream backend_servers {server 192.168.1.1:8080;server 192.168.1.2:8080;}# 反向代理配置server {listen 80;server_name example.com;location / {root /usr/share/nginx/html;index index.html;try_files $uri /index.html;}# 反向代理后端 APIlocation /api/ {proxy_pass http://backend_servers;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}
}

2. 启动 Nginx Docker 容器

使用 Docker 启动 Nginx 容器,运行以下命令:

docker run -d --name my-nginx \-p 80:80 \-v /home/middleware/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro \-v /home/middleware/nginx/html:/usr/share/nginx/html \-v /home/middleware/nginx/logs:/var/log/nginx \nginx

在这个命令中,-v /home/middleware/nginx/logs:/var/log/nginx 表示将宿主机上的 /home/middleware/nginx/logs 目录映射到容器内的 /var/log/nginx 目录,这样 Nginx 的日志文件就会保存在宿主机上。


二、配置多个后端 API 轮询(负载均衡)

1. 配置后端 API 服务器

我们使用 Nginx 的 upstream 模块来配置多个后端 API 服务器,进行 轮询负载均衡。在上述的 nginx.conf 文件中,我们已经通过以下部分配置了两个后端 API 服务器:

# 后端 API 配置(轮询负载均衡)
upstream backend_servers {server 192.168.1.1:8080;server 192.168.1.2:8080;
}

这样,所有请求到 /api/ 路径的请求将通过 Nginx 反向代理,轮询转发到两个后端 API 服务器(192.168.1.1:8080192.168.1.2:8080)。

2. 负载均衡策略

Nginx 提供了多种负载均衡策略:

  • 轮询(默认):Nginx 默认按照请求顺序轮流将流量转发到 upstream 配置的后端服务器。
  • IP 哈希:如果你希望基于客户端 IP 地址来分配请求,可以使用 ip_hash,如下所示:
upstream backend_servers {ip_hash;server 192.168.1.1:8080;server 192.168.1.2:8080;
}

这样,来自同一 IP 的请求将始终路由到同一个后端服务器。


三、为多个前端应用配置子域名

1. 配置多个子域名

假设你有多个前端应用,并希望通过不同的 子域名 来访问它们。比如,两个前端应用分别希望通过 frontend1.example.comfrontend2.example.com 来访问。

首先,假设你的前端应用已经打包,并且存放在以下目录:

  • /home/middleware/nginx/html/frontend1:第一个前端应用的构建文件
  • /home/middleware/nginx/html/frontend2:第二个前端应用的构建文件

然后,修改 Nginx 配置文件,配置两个 server 块来分别处理这两个子域名:

# 第一个前端应用(frontend1)
server {listen 80;server_name frontend1.example.com;location / {root /usr/share/nginx/html/frontend1;index index.html;try_files $uri /index.html;}# 反向代理后端 APIlocation /api/ {proxy_pass http://backend_servers;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}# 第二个前端应用(frontend2)
server {listen 80;server_name frontend2.example.com;location / {root /usr/share/nginx/html/frontend2;index index.html;try_files $uri /index.html;}# 反向代理后端 APIlocation /api/ {proxy_pass http://backend_servers;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}

2. 配置不同的根目录和反向代理

  • server_name frontend1.example.com;:第一个子域名配置,访问 frontend1.example.com 会访问 /usr/share/nginx/html/frontend1 目录下的文件。
  • server_name frontend2.example.com;:第二个子域名配置,访问 frontend2.example.com 会访问 /usr/share/nginx/html/frontend2 目录下的文件。

如果前端应用需要与后端 API 通信,你可以通过 反向代理 将 API 请求转发到后端服务器。这里,/api/ 路径的请求会转发到之前配置的 负载均衡后端服务器

3. 将前端应用文件复制到 Nginx 根目录

将打包后的前端文件复制到相应的目录中:

cp -r frontend1_dist/* /home/middleware/nginx/html/frontend1/
cp -r frontend2_dist/* /home/middleware/nginx/html/frontend2/

四、使用 Docker Compose 部署 Nginx

如果你希望使用 Docker Compose 来管理 Nginx 容器,下面是如何使用 docker-compose.yml 文件来配置和启动 Nginx。

1. 创建 docker-compose.yml 文件

/home/middleware/nginx 目录下创建一个 docker-compose.yml 文件,内容如下:

version: '3'services:nginx:image: nginxcontainer_name: my-nginxports:- "80:80"volumes:- /home/middleware/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro- /home/middleware/nginx/html:/usr/share/nginx/html- /home/middleware/nginx/logs:/var/log/nginxnetworks:- nginx_networkrestart: alwaysnetworks:nginx_network:driver: bridge

2. 启动 Nginx 服务

docker-compose.yml 文件所在的目录下运行以下命令来启动 Nginx 容器:

docker-compose up -d

3. 停止 Nginx 服务

如果你需要停止服务,可以使用以下命令:

docker-compose down

五、映射 Nginx 日志文件

为了持久化存储 Nginx 的日志文件,我们需要将 Nginx 容器中的日志目录映射到宿主机。通过以下配置,我们可以确保日志文件不会丢失,并方便后续查看和分析。

1. 映射日志文件

在启动 Nginx 容器时,确保将 /var/log/nginx 目录映射到宿主机上的某个目录。例如:

docker run -d --name my-nginx \-p 80:80 \-v /home/middleware/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro \-v /home/middleware/nginx/html:/usr/share/nginx/html \-v /home/middleware/nginx/logs:/var/log/nginx \nginx

在这个命令中,-v /home/middleware/nginx/logs:/var/log/nginx 表示将宿主机上的 /home/middleware/nginx/logs 目录映射到容器内的 /var/log/nginx 目录。

2. 确保日志目录权限

确保宿主机上的日志目录具有适当的权限,以便 Nginx 能够在该目录中写入日志文件:

mkdir -p /home/middleware/nginx/logs
chmod 777 /home/middleware/nginx/logs
http://www.dtcms.com/wzjs/483214.html

相关文章:

  • 网站开发一次性费用免费的网站推广
  • 做网站的公司合肥seo服务如何收费
  • 做卡贴质量好的网站百度风云榜热搜
  • 哪些网站可以找到做药人的信息淘宝的关键词排名怎么查
  • 免费提供空间的网站网上营销新观察网
  • 日ip 1万 网站 值多少钱北京营销网站制作
  • 京东购物商城官网北京seo运营推广
  • 怎么创网站网络营销公司招聘
  • canva在线平面设计官网整站优化包年
  • 太原市建设交易中心网站首页品牌推广策略有哪几种
  • 最新的新开传奇网站上海优化价格
  • 做内贸的网站百度资源共享
  • 怎么看网站到期时间无锡网站建设优化公司
  • 手表网站建设规划书广告营销顾问
  • 网页设计制作毕业论文seo收费标准
  • 安徽网站建设推广网页分析工具
  • 给公司网站做seo百度快速收录办法
  • 织梦手机网站源码搜索引擎优化的简称
  • 河东做网站的公司深圳seo外包
  • 潜江官方新闻天猫seo搜索优化
  • 网站建设图片链接方法百度搜索指数的数据来源
  • 做设计网站的工作怎么样的zac博客seo
  • 自己做的网站买域名多少钱如何查询网站收录情况
  • 壁纸网站模板广州品牌营销服务
  • 网站建设犀牛电子商务seo
  • 京东的网站建设分析如何做推广引流赚钱
  • 1688成品网站源码十大搜索引擎神器
  • 光谷做网站推广哪家好长沙网站制作
  • o2o电子商务网站建设厦门seo排名优化
  • 部门网站建设的意义成都最新动态