.Net Core最大的亮點就是跨平台了,下面介紹下在Windows下和Liunx下的部署。
首先發布項目文件,點擊網站項目右鍵 發布:
從下圖發布的文件圖片可以看出,不像以前bin目錄下有很多dll,現在總體文件大小比以前小了很多
一.Windows下部署(較比之前部署多了下載一個模塊和選擇無托管)
(1)安裝AspNetCoreModule托管模塊(已安裝則跳過),點擊我下載
(2)安裝之后在模塊里可以找到AspNetCoreModule就說明成功了
(3) 在IIS中添加網站:
最后選擇 無托管代碼 即可
(4)運行效果:
二.Liunx部署
(1)這里以迷你版的CentOs(CentOS-7-x86_64-Minimal-1708)為示例,運行CentOS
1.修改 ifcfg-ens33 文件
修改之后按ESC鍵,再輸入:wq保存退出,最后輸入 service network restart 重啟網卡
2.安裝net-tools
輸入sudo yum install net-tools,最后根據提示輸入Y即可
3.輸入ifconfig,查看當前系統ip地址
4.第三步我們知道了IP地址,下面就使用windows下的一個工具來操作centOS(畢竟在CentOs中操作比較麻煩),工具:點擊下載putty
復制好文字右鍵就是粘貼
5.Nginx的安裝(重啟Nginx命令: systemctl restart nginx)
輸入命令( 根據提示輸入Y 即可):
sudo yum install epel-release
sudo yum install nginx
sudo systemctl start nginx
還需要輸入關閉防火牆命令:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
完成之后可以在Windows的瀏覽器中輸入上面的IP訪問了
6.在CentOs中下載.Net Core
具體操作:https://www.microsoft.com/net/learn/get-started/linuxcentos
安裝成功之后輸入dotnet --version會出現版本則說明成功了
7.將我們在 Visual Studio 2017 中的網站發布文件復制到CentOs中,我們需要用到FTP傳輸工具,這里使用FlashFXP
首先在FlashFXP菜單中找到 站點-站點管理器-新建站點
連接成功之后,在home文件夾下新建netcore文件夾,然后把發布文件通過FTP傳輸進去
如果輸入dotnet CoreDemo.dll出現報錯,運行命令: sudo yum install dotnet-sdk-2.1.3(或者在上面第6步操作的時候直接安裝這個)
安裝之后再次輸入dotnet CoreDemo.dll:
在CentOS中使用命令: curl http://localhost:5000沒有出現錯誤則成功
最后修改Nginx配置來實現局域網訪問:
使用FlashFXP進入/etc/nginx/ 修改其中的nginx.conf文件(也可以使用命令來編輯)
將其中的server段替換成下面的配置
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; } }
最后使用命令: systemctl restart nginx 重啟Nginx
輸入之后發現出現502 Bad GateWay.....
這個問題找了我好久...結果發現是因為Linux保護機制所導致,我們需要將nginx添加至Linux的白名單
輸入以下命令:
yum install policycoreutils-python
sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx
sudo semodule -i mynginx.pp
再嘗試訪問:
到現在基本部署完成了。
問題:我們會發現重啟CentOs之后Nginx需要手動啟動,下面配置將Nginx改為自啟動:
使用命令: systemctl enable nginx.service 或者 systemctl enable nginx
使用命令: systemctl is-enabled nginx 來確認是否設置成功
可能出現的問題:
1.如果在Windows下出現訪問不了的情況(FlashFXP/Putty連接不上),可以重啟下CentOs虛擬機