2020年5月25日星期一

win10 docker部署nginx对dotnetcore应用实现负载均衡

win10 docker部署nginx对dotnetcore应用实现负载均衡


nginx功能

反向代理,负载均衡,缓存静态资源,如图片、CSS、JS

正向代理和反向代理

正向代理

代理客户端,代客户端发出请求,客户端知道要访问的真实地址,如vpn

反向代理

代理服务端,代服务端接收请求,客户端不知道要访问的真实地址

win10 docker部署nginx对dotnetcore应用实现负载均衡

一、部署nginx

#拉取镜像docker pull nginx:latest#运行容器,挂载日志目录,方便查看错误信息docker run --name nginx-test -v C:/nginx/log:/var/log/nginx -p 80:80 -d nginx:latest

访问localhost检查是否可以正常访问

二、nginx文件检查

nginx相关文件夹在容器中的位置
日志位置:/var/log/nginx/
配置文件位置:/etc/nginx/
项目位置:/usr/share/nginx/html

#可进入容器内部查看docker exec -it [容器id] bash

三、nginx.conf文件修改

  1. 从容器中拷贝配置文件到宿主机
docker cp nginx-test:/etc/nginx/nginx.conf C:/nginx
  1. 配置本地host www.helloworld.com
  2. 修改宿主机nginx.conf文件
#省略原有配置信息http{ #设定实际的服务器列表 upstream load_balance_server {  #weigth参数表示权值,权值越高被分配到的几率越大  #ip使用ipconfig获取,不要使用127.0.0.1或localhost  server 192.168.43.10:8111 weight=5;  server 192.168.43.10:8112 weight=1;  server 192.168.43.10:8113 weight=6; } #HTTP服务器 server {  #侦听80端口  listen  80;  #定义使用www.xx.com访问  server_name www.helloworld.com;  #对所有请求进行负载均衡请求  location / {   root  /root;     #定义服务器的默认网站根目录位置   index  index.html index.htm; #定义首页索引文件的名称   proxy_pass ;#请求转向load_balance_server 定义的服务器列表  } }}
  1. 更新到容器
#修改配置文件后,将配置文件拷贝回容器docker cp C:/nginx/nginx.conf nginx-test:/etc/nginx#重启容器,使配置生效docker restart nginx-test

四、部署dotnetcore应用

  1. 宿主机直接运行
dotnet run --urls run --urls run --urls start="2">
  • 容器部署
    Dockerfile编写
  • FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS buildWORKDIR /app# copy csproj and restore as distinct layersCOPY *.sln .COPY WebApp/*.csproj ./WebApp/RUN dotnet restore# copy everything else and build appCOPY WebApp/. ./WebApp/WORKDIR /app/WebAppRUN dotnet publish -c Release -o outFROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS runtimeWORKDIR /appCOPY --from=build /app/WebApp/out ./ENTRYPOINT ["dotnet", "WebApp.dll", "--urls", " build -t webapp .docker run --name webapp -d -p 8111:8111 webappdocker run --name webapp2 -d -p 8112:8111 webappdocker run --name webapp3 -d -p 8113:8111 webapp

    参考

    Docker中运行nginx并挂载本地目录到镜像中
    win10 linux docker nginx tomcat 集群负载均衡-天坑
    Nginx 简易教程


    没有评论:

    发表评论