win 10 dockerはnginxを配置してdotnetcoreアプリケーションに対して負荷の均衡を実現します

2813 ワード

nginx機能
リバースエージェント、ロードバランシング、ピクチャ、CSS、JSなどの静的リソースのキャッシュ
順方向エージェントと逆方向エージェント
フォワードエージェント
プロキシクライアント、プロキシクライアントが要求を発行し、クライアントはアクセスする実際のアドレスを知っています.
逆プロキシ
エージェントサービス側、代行サービス側は要求を受信して、クライアントはアクセスする本当の住所を知りません
win 10 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
    
  • ローカルホスト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を実行し、ローカルディレクトリをミラーにマウントするwin 10 linux docker nginx tomcatクラスタ負荷等化-ピットNginx簡易チュートリアル