前言:之前阿里雲打折,買了個Linux服務器來練一練,嘗試着在Linux使用Nginx部署.net core項目
在CentOs系統中安裝.Net Core Sdk、Nginx
1、打開命令行,輸出以下命令,註冊Microsoft需要的依賴環境
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl=https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc">/etc/yum.repos.d/dotnetdev.repo'
2、安裝.NET SDK
1、更新可用的安裝包
sudo yum update
2、安裝.NET需要的組件
sudo yum install libunwind libicu
3、安裝.NET SDK(dotnet –version查看開發環境的版本)
sudo yum install dotnet-sdk-2.1
4、安裝完成之後,檢測是否安裝成功:
dotnet --version
3、使用VS發佈ASP.NET Core MVC程序,這裏我的vs版本是2017
1、進入項目解決方案所在文件夾
2、按住shift+右鍵,打開命令窗口
3、執行dotnet publish自動發佈
4、發佈文件目錄:\bin\Debug\netcoreapp2.1\publish
4、使用WinSCP傳輸發佈文件到CentOS服務器 (root/publish) ;附WinSCP下載地址:https://winscp.net/eng/download.php
5、安裝配置Nginx進行反向代理
1、安裝CentOS的 EPEL倉庫
yum install epel-release
2、安裝Nginx
yum install nginx
3、啓動Nginx:
systemctl start nginx
4、設置系統默認啓動Nginx
systemctl enable nginx
5、查看防火牆狀態:
systemctl status firewalld
6、啓動防火牆
systemctl start firewalld
7、http通過:
firewall-cmd --permanent --zone=public --add-service=http
8、https通過:
firewall-cmd --permanent --zone=public --add-service=https
9、重啓Nginx:
firewall-cmd --reload
10、在瀏覽器地址欄輸入你服務器的IP地址, 如果出現圖形表示Nginx安裝配置成功;
11、如果無法訪問, 請查看firewall 是否開放80端口:
12、開放80端口:firewall-cmd --zone= public --add-port= 3306 /tcp --permanent
13、重啓防火牆:systemctl restart firewalld.service
6、修改Nginx的配置文件(root/)
1、把Nginx的默認配置文件 /etc/nginx/nginx.conf 裏 80 端口轉發配置 server 節點用 # 符註釋掉
2、重新創建一個自定義的Nginx配置文件用來代理Core程序, 名稱爲nginxforcore.conf(可自定義名稱)配置文件內容如下
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; } }
3、將創建好的自定義配置文件上傳到 /etc/nginx/conf.d目錄下
4、執行命令,重啓Nginx
nginx –s reload
在CentOs系統中運行.NET Core
1、cd到發佈目錄:cd \publish
2、運行.Net Core程序: dotnet LinuxCore.dll (LinuxCore.dll是你發佈出來編譯過的項目)
3、瀏覽器訪問服務器外網地址