1.打包專案,開啟visual studio
專案是ChenShiBao.AspNetCore7.0,釋出成功並上傳服務,啟動服務以這個ChenShiBao.AspNetCore7.0.dll為準
1.1 生成釋出包
1.2 選擇釋出形式
2.在終端利用scp指令將本地已釋出的應用傳到linux服務上,【或透過第三方工具xshell上傳發布包】
終端命令:scp -r 本地已釋出的專案地址 目標伺服器的專案地址
示例:scp -r e:\定時服務\chenshibao.aspnetcore7.0\publish 伺服器使用者@伺服器名稱或伺服器ip地址:/root/project/release/webapi/aspnetcore7.0
3.linux伺服器上安裝net7.0的執行時環境【環境已有就不用再安裝】:
示例:sudo yum install dotnet-runtime-7.0
示例:sudo yum install dotnet-sdk-7.0
4.啟動webapi服務
dotnet 伺服器上的專案路徑/chenshibao.aspnetcore7.0.dll
示例:dotnet project/release/webapi/aspnetcore7.0/publish/ChenShiBao.AspNetCore7.0.dll
5.成功啟動專案,終端開啟
出現以下標誌說明服務已經正常啟動
6.關閉終端:
直接鍵盤ctrl + C;
7.要想服務在程序中執行,即使你退出終端或斷開 SSH 連線,程序仍然會繼續執行,可執行以下命令:
命令:nohup dotnet ChenShiBao.AspNetCore7.0.dll &
8.關閉服務,可以找到服務對應的程序id,透過程序id關閉:
查詢dotnet相關的程序命令:ps -ef | grep dotnet 或 ps aux | grep dotnet
執行關閉命令:kill -9 2303540
9.CentOS上配置nginx代理
第一步:安裝nginx:
sudo yum install nginx
第二步:啟動和管理nginx:
sudo systemctl start nginx
設定開機自動啟動:
sudo systemctl enable nginx
第三步:檢查nginx狀態
sudo systemctl status nginx
10.使用https【不是一定要配置,如果配置ssl安全證書,繫結到域名,需要先做DNS域名解析,使得域名和伺服器公網的ip地址繫結,具體配置可以參考阿里雲或騰訊雲域名解析流程】
第一步:首先安裝 Certbot:
sudo yum install certbot python3-certbot-nginx
第二步:然後使用 Certbot 獲取 SSL 證書並配置 Nginx:
sudo certbot --nginx -d your_domain_or_ip
第三步:更新nginx配置
Certbot 會自動更新你的 Nginx 配置檔案以使用生成的 SSL 證書。如果你手動配置,可以在 Nginx 配置檔案中新增類似以下內容:
11.配置nginx作為反向代理
第一步:可以建一個配置檔案來設定反向代理
sudo nano /etc/nginx/conf.d/ChenShiBao.AspNetCore7.0.conf
在新建的配置檔案ChenShiBao.AspNetCore7.0.conf配置以下內容:
server {
listen 5000;
server_name your_domain_or_ip;
#listen 443 ssl; #有安全ssl安全認證才設定
#server_name xxx; # 將此處替換為你的域名或伺服器的 IP 地址
##SSL 證書和金鑰檔案的位置
#ssl_certificate /etc/letsencrypt/live/csbneter.club/fullchain.pem; #有安全ssl安全認證才設定
#ssl_certificate_key /etc/letsencrypt/live/csbneter.club/privkey.pem; #有安全ssl安全認證才設定
location / {
proxy_pass http://localhost:5000; # 轉發到你的ASP.NET Core應用程式
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;
}
}
將 your_domain_or_ip 替換為你的域名或伺服器的 IP 地址。
第二步:測試nginx配置
sudo nginx -t
如果配置檔案沒有錯誤,你會看到 syntax is ok 和 test is successful 的資訊。
第三步:重新載入nginx:
sudo systemctl reload nginx
第四步:編輯nginx配置檔案
開啟 Nginx 主配置檔案 /etc/nginx/nginx.conf 或你正在使用的虛擬主機配置檔案:
sudo vim /etc/nginx/nginx.conf
在nginx.conf配置下面內容:
http {
# 增加這些指令
client_max_body_size 10M;
large_client_header_buffers 4 16k;
}
儲存完後,再次執行第二,三步;
第五步:伺服器上設定安全組和防火牆,允許埠訪問;
這裡的埠設定,需要與nginx監聽的埠一致才可以,只有這樣才能從外部的請求訪問,這個地址和埠,透過nginx代理轉發到伺服器本地的應用程式上;
伺服器上的應用程式的埠與nginx的監聽埠是不一致的;
例如:nginx監聽埠是1000,那應用程式的埠就得設定為其他埠;
常用命令:
檢視哪些程序使用哪個埠:sudo lsof -i :5000
殺死某個程序:kill -9 程序id;
確認應用程式在哪個埠上執行:sudo netstat -tulnp | grep dotnet
檢視nginx的error.log:sudo tail -f /var/log/nginx/error.log
開啟nginx:sudo systemctl start nginx
停止nginx:sudo systemctl stop nginx
重新載入配置:sudo systemctl reload nginx或sudo service nginx reload