基礎環境配置
域名和服務器請先自行購買
基於 雲服務器ECS 創建一個應用實例,選擇系統鏡像為 Ubuntu 16.04,在本機通過 SSH 進行遠程連接,並進行相關配置
ssh root@http://39.108.48.203/
sudo apt-get update
sudp apt-get upgrade
sudo apt-get autoremove
sudo apt-get clean
Nginx 配置
sudo apt-get install nginx
sudo service nginx start
# 備份原始配置文件
sudo cp /etc/nginx/sites-available/default etc/nginx/sites-available/default.bak
sudo vim /etc/nginx/sites-available/default
配置 default 文件,如下所示
server {
listen 80;
server_name example.com *.example.com;
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;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
檢測配置並更新
sudo nginx -t
sudo nginx -s reload
sudo service nginx stop
sudo service nginx start
安裝 DotNetCore
wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo add-apt-repository universe
sudo apt-get update
sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install dotnet-sdk-3.1
請參考官網最新安裝說明:.NetCore Download
程序打包
打開 VisualStudio2017 右鍵要發布的項目,點擊 publish,並參考下圖進行相關配置。


點擊 Save 按鈕並執行發布操作。然后將 publish 文件夾上傳至服務器相應位置,上傳成功后執行
dotnet run app.dll
或者通過命令行打包發布
dotnet publish -c release
dotnet publish -c release -r ubuntu.18.04-x64
如果不出意外的,這個時候,你就可以通過 IP 或者 你的網站域名來進行訪問了。
創建守護進程
執行上述操作之后,我們的程序還是不能正在長時間運行,因此我們需要通過守護進程來管理我們的網站
sudo apt-get install supervisor
sudo vim /ect/supervisor/conf.d/helloworld.conf
配置 website.conf 文件
[program:HelloWebApp]
command=/usr/bin/dotnet helloworld.dll ;要執行的命令
directory=/home/hippie/helloworld/bin/release/netcoreapp3.1/publish ;命令執行的目錄
environment=ASPNETCORE__ENVIRONMENT=Production ;環境變量
user=root ;進程執行的用戶身份
stopsignal=INT
autostart=true ;是否自動啟動
autorestart=true ;是否自動重啟
startsecs=1 ;自動重啟間隔
stderr_logfile=/var/log/helloworld.err.log ;標准錯誤日志
stdout_logfile=/var/log/helloworld.out.log ;標准輸出日志
這個時候,我們執行下述命令啟動守護進程
sudo supervisorctl shutdown && sudo supervisord -c /etc/supervisor/supervisord.conf
# 關閉所有服務
sudo supervisorctl shutdown
# 查看狀態
sudo supervisorctl status
sudo service supervisor start/stop
# 查看指定端口對應程序
netstat -ap | grep 5000
# 關閉指定端口對應程序
kill -9 PID
好了,這個時候你可以嘗試關閉遠程連接進行網站訪問,如果能正常訪問的話,說明你的配置已經起作用了.
配置 HTTPS
配置 HTTPS 需要使用證書,對應的有免費和收費版,我這里使用的是 免費版本 Certbot,直接執行下述命令即可:
sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install certbot python-certbot-nginx
sudo certbot --nginx
# sudo certbot renew --dry-run
sudo ufw allow https
sudo systemctl restart nginx
最后
安利一個我的個人圖片網站,圖片資源來自於必應,感興趣的小伙伴歡迎體驗: