Docker-Compose一鍵部署Ningx+Asp.net core站點+Redis

生產環境更新追求快速平穩,Docker-Compose 通過一個配置文件來管理多個Docker容器,在配置文件中services來定義,然後使用腳本來啓動,停止和重啓應用,和應用中的服務以及所有依賴服務的容器,非常適合組合使用多個容器的應用場景,實現環境的快速搭建。

1.創建asp.net core示例站點

使用vs2017創建一個Asp.net core MVC站點,引入Redis,主要是爲了實現分佈式緩存,實現一些演示內容。然後編寫dockerfile,創建站點鏡像,這些過程有很多參考資料,這裏不再贅述。

2.創建docker-compose.yml文件
文件內容如下,創建了兩個web站點容器,連接redis容器。 nginx對外暴露端口80,可以訪問web1和web2,修改nginx配置,反向代理,分發請求到兩個web應用,nginx配置參考3


version: '3'

services:
   xxx_mvc:
        container_name: web
        image: registry.cn-shenzhen.aliyuncs.com/xxx/web
        environment:
            - ASPNETCORE_ENVIRONMENT=Production 
        expose:
            - 80
        entrypoint: ["dotnet", "XXX.Web.Mvc.dll"]  
        restart: always 
        links:
          - redis
        volumes:
            - "./appsettings.Production.json:/app/appsettings.Production.json"   
   
            
    xxx_mvc_2:
        container_name: web-2
        image: registry.cn-shenzhen.aliyuncs.com/xxx/web 
        environment:
            - ASPNETCORE_ENVIRONMENT=Production 
        expose:
            - 80 
        entrypoint: ["dotnet", "XXX.Web.Mvc.dll"]  
        restart: always 
        links:
          - redis
        volumes:
            - "./appsettings.Production.json:/app/appsettings.Production.json"   
   
 
    nginx:
      container_name:xxx-nginx
      image: nginx
      ports:
        - "8080:80" 
      links:
        - xxx_mvc:web1
        - xxx_mvc_2:web2 
      restart: always
      volumes:
        - "./nginx-about/nginx.conf:/etc/nginx/nginx.conf:ro"
  
   
    redis:
      image: redis
      restart: always
      expose:
        - 6379
    

3.Nginx配置文件

upstream web{
    ip_hash; 
    server web1:80; #1號  
    server web2:80; #2號 
}

server {
    listen        80;
    server_name   example.com *.example.com;
    location / {
        proxy_pass         http://web;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection keep-alive;
        proxy_set_header   Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
    }
}

4.執行docker-compose up 命令
連接服務器,新建目錄上傳相關文件後,在目錄中執行docker-compose up ,命令成功將自動完成包括服務的創建和啓動, 順利的話,訪問 http://xxx:8080就可以看到站點頁面了。

祝好運:)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章