需要安裝的工具
- .Net Core
- Nginx反向代理服務器(相當於Windows下的IIS)
- Supervisor(進程管理工具)
.Net Core安裝方法請參閱
安裝完成后就可以在項目文件夾,使用以下命令啟動網站
dotnet xxx.dll
然后就可以在瀏覽器打開localhost:5000(5000為默認端口,如果有修改,請使用實際端口)
但是現在還不能通過ip訪問,這就需要Nginx實現。
Nginx
通過命令安裝:
sudo apt-get install nginx
然后配置nginx的代理轉發,修改/etc/nginx/sites-available/default,修改內容如下
//如果沒有權限修改,請使用 sudo chmod 777 xxx 修改權限(xxx表示文件夾路徑或者文件名) 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
這樣就實現了通過IP訪問
然而,重啟后我們會發現網站並沒有開機啟動,這個時候就需要Supervisor了
Supervisor
安裝:
sudo apt-get install supervisor
安裝完成之后,在 /ect/supervisor/confg.d/ 目錄下新建一個配置文件,取名為 TestCore.conf (我取的是當前項目的名稱)
使用命令新建文件:
sodu touch TestCore.conf
打開TestCore.conf,寫入如下命令(如果沒有權限,請參照上面的方法):
[program:TestCore] command=dotnet TestCore.dll #要執行的命令 directory=/home/xx/TestCore #命令執行的目錄 environment=ASPNETCORE__ENVIRONMENT=Production #環境變量 user=www-data #進程執行的用戶身份 stopsignal=INT autostart=true #是否自動啟動 autorestart=true #是否自動重啟 startsecs=1 #自動重啟間隔 stderr_logfile=/var/log/TestCore.err.log #標准錯誤日志 stdout_logfile=/var/log/TestCore.out.log #標准輸出日志 //注:#內容為注釋,代碼中請刪除
配置好以后,需要重新加載一下配置
sudo service supervisor stop
sudo service supervisor start
接下來重啟機器,發現可以自動運行
參考文章:http://www.cnblogs.com/savorboard/p/dotnetcore-supervisor.html