asp.net core 2.1 部署 centos7 Kestrel 非常適合從 ASP.NET Core 提供動態內容。 但是,Web 服務功能不像伺服器(如 IIS、Apache 或 Nginx)那樣功能豐富。 反向代理伺服器可以從 HTTP 伺服器卸載服務靜態內容、緩存請求、壓縮請求和 SS ...
asp.net core 2.1 部署 centos7
Kestrel 非常適合從 ASP.NET Core 提供動態內容。 但是,Web 服務功能不像伺服器(如 IIS、Apache 或 Nginx)那樣功能豐富。 反向代理伺服器可以從 HTTP 伺服器卸載服務靜態內容、緩存請求、壓縮請求和 SSL 終端等工作。 反向代理伺服器可能駐留在專用電腦上,也可能與 HTTP 伺服器一起部署。
鑒於此指南的目的,使用 Nginx 的單個實例。 它與 HTTP 伺服器一起運行在同一伺服器上。
- 參考文檔
- 64位安裝SDK所需依賴
- yum update
- yum -y install libunwind
- yum -y install libicu
- 註冊微軟產品密鑰
- 安裝SDK/runtime
- yum -y install dotnet-sdk-2.1 或 yum -y install aspnetcore-runtime-2.1
- 檢測安裝
執行 dotnet --info,驗證安裝結果,如下:
.NET Core SDK (reflecting any global.json):
Version: 2.1.401
Commit: 91b1c13032
Runtime Environment:
OS Name: centos
OS Version: 7
OS Platform: Linux
RID: centos.7-x64
Base Path: /usr/share/dotnet/sdk/2.1.401/
...
- 創建並允許實例
- 創建MVC應用程式 X:\mvcApp2 dotnet new mvc
- 本地運行(win10) dotnet run
- 瀏覽器訪問
發佈linux程式 dotnet publish -c Release -o "XX:\Web_IIS\mvcApp2" -r centos.7-x64
- xftp上傳文件到指定目錄 /home/doetnetcore/mvcApp2
- 運行程式 cd /home/dotnetcore/mvcApp2 dotnet mvcApp2.dll 如圖:預設啟用5000埠
- centos7 外部電腦若無法訪問,請檢查網路防火牆(即使關閉防火牆埠預設只開放22)
檢查站點運行情況 curl http://localhost:5000
查看防火牆狀態 firewall-cmd --state //running 表示運行
附防火牆相關命令
啟動: systemctl start firewalld
查看狀態:systemctl status firewalld
停止:systemctl disable firewalld
禁用:systemctl stop firewalld
啟動服務:systemctl start firewalld.service
關閉服務:systemctl stop firewalld.service
重啟服務:systemctl restart firewalld.service
服務的狀態:systemctl status firewalld.service
在開機時啟用一個服務:systemctl enable firewalld.service
在開機時禁用一個服務:systemctl disable firewalld.service
查看服務是否開機啟動:systemctl is-enabled firewalld.service
查看已啟動的服務列表:systemctl list-unit-files|grep enabled
查看啟動失敗的服務列表:systemctl --failed
查看版本: firewall-cmd --version
查看幫助: firewall-cmd --help
顯示狀態: firewall-cmd --state
查看所有打開的埠: firewall-cmd --zone=public --list-ports
更新防火牆規則: firewall-cmd --reload
查看區域信息: firewall-cmd --get-active-zones
查看指定介面所屬區域: firewall-cmd --get-zone-of-interface=eth0
拒絕所有包:firewall-cmd --panic-on
取消拒絕狀態: firewall-cmd --panic-off
查看是否拒絕: firewall-cmd --query-panic
- 配置Nginx轉發
安裝Nginx
命令 curl -o nginx.rpm http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
rpm -ivh nginx.rpm
yum install nginx- 檢查埠占用情況 yum install net-tools netstat -a //埠列表
啟動 nginx
命令:systemctl start nginx
設置開機啟動 systemctl enable nginx
firewall-cmd --zone=public --add-port=80/tcp --permanent(永久啟用80埠)
重啟防火牆 systemctl restart firewalld
瀏覽器測試nginx能否正常訪問修改nginx配置文件
yum -y install vim 可用預設vi替代
修改 /etc/nginx/conf.d/default.conf 文件。
通過 vim /etc/nginx/conf.d/default.conf 打開,編輯裡面的內容,保存時按 Esc 再輸入 :wq! 命令保存退出
修改為如下腳本:
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;
}
}
- 啟動站點 瀏覽器正常訪問asp.netcore 應用程式
Nginx參考文獻
http://nginx.org/en/docs/
http://tengine.taobao.org/book/index.html
配置守護服務(Supervisor)
- 配置Apache轉發