系統:CentOS Linux release 7.2.1511 (Core)css
相關工具:VS2017 xftphtml
服務器軟件:.net core2.0,nginxlinux
.NET Core分爲兩種應用類型:Portable applications(便攜應用) Self-contained application(自宿主應用)nginx
咱們選擇便攜應用,這樣發佈的項目會小一點,也是微軟推薦的發佈方式。
數據庫
.NET Core SDK 下載地址:https://www.microsoft.com/net/download (還須要安裝server host,是否安裝成功 iis模塊與處理程序映射中查看)windows
確保這份發佈應用能夠在windows上運行,以減小後續的問題。centos
這個很少說了,網上好多教程。服務器
sudo yum install libunwind libicu(安裝libicu依賴) curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?LinkID=809131(下載sdk壓縮包,1.0)
curl -sSL -o dotnet.tar.gz https://download.microsoft.com/download/7/3/A/73A3E4DC-F019-47D1-9951-0453676E059B/dotnet-sdk-2.0.2-linux-x64.tar.gz (2.0)app
sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet(解壓縮) sudo ln -s /opt/dotnet/dotnet /usr/local/bin(建立連接)
官方教程:https://www.microsoft.com/net/download/linux-package-manager/centos/sdk-currentcurl
輸入 dotnet –info 來查看是否安裝成功
若是能夠執行則代表.NET Core SDK安裝成功
使用Xftp上傳到服務器,須要注意一點,配置xftp時,協議選擇sftp,不要選ftp,不然會出現連不上服務器的狀況。
項目上傳至服務 home/WebApp
命令:dotnet /home/WebApp/WebApp.dll
能夠看到端口號是5000:Now listening on: http://localhost:5000
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
輸入:systemctl start nginx 來啓動nginx。
輸入:systemctl enable nginx 來設置nginx的開機啓動(linux宕機、重啓會自動運行nginx不須要連上去輸入命令)。
修改 /etc/nginx/conf.d/default.conf 文件。
將文本內容替換爲上圖:
server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm; 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; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }
:wq 覆蓋保存。
執行:nginx –s reload 使其即時生效
CentOS 7.0默認使用的是firewall做爲防火牆,我參考了一些資料,改成iptables防火牆:
1.關閉firewall:
systemctl stop firewalld.service #中止firewall
systemctl disable firewalld.service #禁止firewall開機啓動
firewall-cmd --state #查看默認防火牆狀態(關閉後顯示notrunning,開啓後顯示running)
2.iptables防火牆安裝
#先檢查是否安裝了iptables service iptables status #安裝iptables yum install -y iptables #升級iptables yum update iptables #安裝iptables-services yum install iptables-services
3.開啓iptables
#註冊iptables服務 #至關於之前的chkconfig iptables on systemctl enable iptables.service #開啓服務 systemctl start iptables.service #查看狀態 systemctl status iptables.service
4.配置iptables,開放端口,輸入命令:# vi /etc/sysconfig/iptables
# Generated by iptables-save v1.4.21 on Wed Oct 18 11:53:01 2017 *mangle :PREROUTING ACCEPT [135197:27080837] :INPUT ACCEPT [63155:19657469] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [11793:12614289] :POSTROUTING ACCEPT [11891:12626324] -A POSTROUTING -o virbr0 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill COMMIT # Completed on Wed Oct 18 11:53:01 2017 # Generated by iptables-save v1.4.21 on Wed Oct 18 11:53:01 2017 *filter :INPUT ACCEPT [62:5588] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [29:2860] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 5000 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 5900 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 5901 -j ACCEPT #vnc遠程桌面鏈接 -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT # Completed on Wed Oct 18 11:53:01 2017
5.重啓iptables
# systemctl restart iptables.service
配置好守護服務(supervisor)後,本身手賤,reboot了一下服務器,結果服務器再起來後,不知道是否是我重啓了下nginx仍是什麼緣由,項目跑不起來了,提示已運行,我就按網上說的kill了幾個進程,kill完後,項目是起來了,但是全部靜態文件加載不了css,js,後來又按網上說的,配置nginx訪問js後仍不行,重裝了下nginx後還不行,最後從新安裝了dotnet core後問題解決了,因此感受出現問題後,最快的方法就是重裝以上軟件!
後來又出過一次問題,個人數據庫服務器IP地址變了,而後項目跑是能跑起來,只是涉及到鏈接數據的操做都掛了,我把項目更新後仍是跑不起來,重啓nginx、kill .net進程都不行,重裝.net core仍是不行,最後把supervisor停了再啓動
( supervisord -c /etc/supervisor/supervisord.conf) 就行了。
卸載SDK命令 sudo yum remove dotnet-sdk-* sudo yum remove libunwind libicu sudo yum remove /etc/yum.repos.d/dotnetdev.repo
或者
rm -rf /usr/share/dotnet 刪除舊版cli
一、配置dotnet產品Feed
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo sh -c 'echo -e "[packages-microsoft-com-prod] name=packages-microsoft-com-prod baseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod enabled=1 gpgcheck=1 gpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'
二、安裝SDK,注意版本!!!
sudo yum update sudo yum -y install libunwind libicu sudo yum install dotnet-sdk-2.1.4
*****************************************end**********************************************