.Net Core最大的亮點就是跨平臺了,下面介紹下在Windows下和Liunx下的部署。python
首先發布項目文件,點擊網站項目右鍵 發佈:linux
從下圖發佈的文件圖片能夠看出,不像之前bin目錄下有不少dll,如今整體文件大小比之前小了不少nginx
一.Windows下部署(較比以前部署多了下載一個模塊和選擇無託管)windows
(1)安裝AspNetCoreModule託管模塊(已安裝則跳過),點擊我下載centos
(2)安裝以後在模塊裏能夠找到AspNetCoreModule就說明成功了瀏覽器
(3) 在IIS中添加網站:curl
最後選擇 無託管代碼 便可工具
(4)運行效果:網站
二.Liunx部署url
(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虛擬機