.net core部署到Ubuntu
阿新 • • 發佈:2018-07-18
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