1. 程式人生 > >.net core部署到Ubuntu

.net core部署到Ubuntu

linux tails 9.png program image out 部署 alt nec

1.使用vs2017創建Asp.net Core Web應用程序,選擇ubuntu中安裝的.net core版本,這裏選擇2.1版本:

技術分享圖片

2.右鍵發布該項目,選擇文件系統發布:

技術分享圖片

3.在ubuntu中安裝vsftpd(Ubuntu安裝vsftpd並通過xftp連接),並通過xftp將發布的publish目錄上傳到ubuntu服務器,也可以通過ftp直接發布到ubuntu,需要配置vsftpd,配置項比較多,可以參考:FTP服務器vsftpd配置詳解

4.執行dotnet WebApp.dll,然後就可以在瀏覽器打開localhost:5000(5000為默認端口,如果有修改,請使用實際端口)但是現在還不能通過ip訪問,這就需要Nginx實現

5.通過命令安裝nginx(相當於linux下的iis)

sudo apt-get install nginx

然後配置nginx的代理轉發,修改/etc/nginx/sites-available/default,修改內容如下

server {
    listen 80;
    location / {
        proxy_pass http://localhost:5000;
        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; } }

保存退出,然後重新加載nginx

sudo nginx -t
sudo nginx -s reload

6.通過nginx實現了通過IP訪問,然而,重啟後我們會發現網站並沒有開機啟動,這個時候就需要Supervisor了

安裝supervisor

sudo apt-get install supervisor

安裝完成之後,在 /ect/supervisor/confg.d/ 目錄下新建一個配置文件,取名為 WebApp.conf

編輯該配置文件

vi WebApp.conf

修改為:

[program:WebApp]
command=dotnet WebApp.dll #要執行的命令
directory=/dotnetcoreWebApp #命令執行的目錄
environment=ASPNETCORE__ENVIRONMENT=Production #環境變量
user=www-data #進程執行的用戶身份
stopsignal=INT
autostart=true #是否自動啟動
autorestart=true #是否自動重啟
startsecs=1 #自動重啟間隔
stderr_logfile=/var/log/WebApp.err.log #標準錯誤日誌
stdout_logfile=/var/log/WebApp.out.log #標準輸出日誌

重啟supervisor

sudo service supervisor restart

這個時候重啟機器,通過ip地址也可以訪問了

7.如果是非本機訪問ip,需要將80端口加到防火墻例外

sudo ufw allow 80/tcp

.net core部署到Ubuntu