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檔案修改
- 從容器中拷貝組態檔到宿主機
docker cp nginx-test:/etc/nginx/nginx.conf C:/nginx
- 配置本地host www.helloworld.com
- 修改宿主機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 http://load_balance_server ;#請求轉向load_balance_server 定義的服務器串列
}
}
}
- 更新到容器
#修改組態檔后,將組態檔拷貝回容器
docker cp C:/nginx/nginx.conf nginx-test:/etc/nginx
#重啟容器,使配置生效
docker restart nginx-test
四、部署dotnetcore應用
- 宿主機直接運行
dotnet run --urls http://*:8111
dotnet run --urls http://*:8112
dotnet run --urls http://*:8113
- 容器部署
Dockerfile撰寫
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
WORKDIR /app
# copy csproj and restore as distinct layers
COPY *.sln .
COPY WebApp/*.csproj ./WebApp/
RUN dotnet restore
# copy everything else and build app
COPY WebApp/. ./WebApp/
WORKDIR /app/WebApp
RUN dotnet publish -c Release -o out
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS runtime
WORKDIR /app
COPY --from=build /app/WebApp/out ./
ENTRYPOINT ["dotnet", "WebApp.dll", "--urls", "http://*:8111"]
生成鏡像并運行3個容器
docker build -t webapp .
docker run --name webapp -d -p 8111:8111 webapp
docker run --name webapp2 -d -p 8112:8111 webapp
docker run --name webapp3 -d -p 8113:8111 webapp
參考
Docker中運行nginx并掛載本地目錄到鏡像中
win10 linux docker nginx tomcat 集群負載均衡-天坑
Nginx 簡易教程
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/24082.html
標籤:.NET Core
上一篇:一、命令列創建專案
