一、安裝CentOs
以前在大學學過linux,但是對命令行總是有一種深深的排斥感,幾年之后,還是又回來了。
1.下載
現在沒法翻牆,就算是翻牆網速也是蝸牛一樣慢,我使用阿里雲的鏡像站進行下載速度還是杠杠的。
我使用的鏡像地址是 https://mirrors.aliyun.com/centos/7.4.1708/isos/x86_64/CentOS-7-x86_64-DVD-1708.iso ,可以根據自己需要去下載,總目錄地址:https://mirrors.aliyun.com/centos/
2.安裝
安裝教程網上非常多,這里也不詳細解說,我是根據百度經驗的文章搭建的,教程地址是https://jingyan.baidu.com/article/eae0782787b4c01fec548535.html
二、部署.NET core
1.發布程序
首先,創建.NET CORE 2 MVC項目,確保能運行成功;然后,發布.NET程序。
.net core 分為兩種應用類型,分別是Portable application(便攜應用)和Self-contained application(自宿主應用); 需要詳細了解的請看 擁抱.NET Core,如何開發跨平台的應用並部署至Ubuntu運行 。
在生產環境中需要考慮服務器更好的性能,所以使用便攜式發布(簡單說就是服務器自帶core環境)。
在當前項目右鍵進行發布到文件夾即可,默認路徑為bin\Release\PublishOutput。
2.安裝.NET Core SDK
這里就是配置centos的core環境,讓我們的網站可以運行起來。
官方的安裝文檔:https://www.microsoft.com/net/learn/get-started/linuxcentos
在centos的右上角打開應用程序,找到終端並打開。
首先、Add the dotnet product feed(其實就是向微軟提交投名狀,表示我這台服務器要用core),注意:先檢測下是否能聯網;
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'
然后,才安裝 core SDK。
命令一:sudo yum update
需要一段時間,而且會提示是否繼續,輸入y然后回車。
如果遇到提示another app is currently holding the yum lock;waiting for it to exit,表示yum正在被使用,通過以下命令強制關閉: rm -f /var/run/yum.pid
命令二、sudo yum install libunwind libicu
命令三、sudo yum install dotnet-sdk-2.0.2
這一步也需要下載安裝包,耗時需要比較長時間。完成后使用命令 dotnet --help 查看下是否安裝成功。
3.部署網站
首先,創建文件夾core,命令為
mkdir core
cd core
我這里使用的是虛擬機,就直接將生成好的文件考到core目錄下,然后執行命令(dotnet 項目名稱.dll)
dotnet DotNetCoreWebDemo.dll
直接使用自帶的火狐瀏覽器就能訪問http://localhost:5000
終於部署完了,由於整個過程都是使用圖形界面,也沒有遇到不懂命令的難題。
其實還有很多問題存在:
如何使用nginx?
怎么配置守護服務supervisor?
怎么使用docker ?
三、使用nginx
1.安裝nginx
可以FQ的去看原文:https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-centos-7
1.添加 CentOS 7 EPEL 倉庫
sudo yum install epel-release
2.安裝nginx
sudo yum install nginx
3.啟動nginx
sudo systemctl start nginx
4.使用ip訪問,出現以下界面即成功安裝
2、配制環境
1)配置防火牆
命令:firewall-cmd --zone=public --add-port=80/tcp --permanent(開放80端口)
命令:systemctl restart firewalld(重啟防火牆以使配置即時生效)
2)關閉SELinux ,使用getenforce 查詢
臨時關閉(不用重啟機器):
setenforce 0 ##設置SELinux 成為permissive模式
##setenforce 1 設置SELinux 成為enforcing模式
修改配置文件需要重啟機器:
修改/etc/selinux/config 文件
將SELINUX=enforcing改為SELINUX=disabled
重啟機器即可
3) 修改Nginx 配制,保存
命令: vim /etc/nginx/nginx.conf
location / {
proxy_pass http://localhost:5000;
}
4) 重新加載Nginx配制文件
命令:nginx -t 測試配制文件是否正確
命令:nginx -s reload 重新加載nginx配制文件,不用重啟nginx
第三步補充: 通過反向代理將ip訪問指向到 http://localhost:5000
修改/etc/nginx/nginx.conf文件,在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; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
如果是多站點部署,在conf.d下創建一個core.conf,內容為 server{ ... }
注意:如果不修改第二步,會被selinux的安全設置拒絕,導致反向代理失敗
......
還需努力,只是邁出了半步。。。
最后說一句,盡量把虛擬機搞的性能高一點,真是卡死我也。
參考文章:
https://www.cnblogs.com/Leo_wl/p/5734988.html
https://www.cnblogs.com/ares-yang/p/7736842.html
https://www.cnblogs.com/hohoa/p/5691071.html
https://www.cnblogs.com/ants/p/5732337.html
https://www.cnblogs.com/Burt/p/6566642.html
https://www.cnblogs.com/rabbityi/p/7019662.html
http://blog.csdn.net/jollypigclub/article/details/46862371