一、Centos7.3的安裝
打開VirtualBox,點擊新建,如下圖所示:


點擊“下一步”,彈出下面的對話框,調整內存大小,建議設置為2G,這樣操作更流暢點







設置好,點擊“OK”,再點擊“啟動”,就進入到Centos的安裝界面,

點擊“軟件選擇”,彈出下面的界面,選擇下面圖中所標注的,測試環境沒必要最小化安裝,這樣對於我這樣的菜鳥來說,操作方便點。

點擊“網絡和主機名”,彈出下面的提示框,點擊“開啟”:
選擇好之后,就等待安裝,安裝的到最后會讓你設置root賬號的密碼,建議設置一下,右邊的創建用戶暫時先不設置,到此已經安裝成功了,重啟一下即可。這里我就一筆帶過,因為網上都有安裝的教程我就不啰嗦太多。

二、Nginx的安裝
(1)環境調試確認
- 確認系統網絡
- 確認yum可用
- 確認關閉IPtables規則
- 確認停用selinux
1)確認網絡可用

2)確認yum可用



yum list|grep gcc #列出所有的gcc信息

3)關閉IPTable
如果你熟悉的話可以不用關,但對於我這樣的菜鳥,我還是先關閉它。
iptables -L
iptables -F
iptables -t nat -L
iptables -t nat -F
4)關閉SeLinux
getenforce 查看SeLinux的狀態,如果不為Disabled則,修改為該狀態

1、臨時關閉(不用重啟機器):
setenforce 0 ##設置SELinux 成為permissive模式
2、修改配置文件需要重啟機器:
修改/etc/selinux/config 文件
將SELINUX=enforcing改為SELINUX=disabled
重啟機器即可

這里我已經修改為了disabled
創建屬於自己工作的目錄,我的個人習慣:
cd /opt
mkdir app download logs work backup
(2)快速安裝Nginx
- 新建一個nginx.repo文件,
- 把官網中對應的yum源復制到新建的nginx.repo文件中,並做一下修改:
注意:OS改為:centos OSRELEASE改為:7
- 修改完 :wq保存並退出。
- 使用:yum list | grep nginx 列出相關版本信息
- 使用:yum install nginx 安裝
安裝完之后,執行下面的命令,可以查看對應的版本信息

關於Nginx更多的知識以后有機會再給大家介紹,目前只要成功安裝Nginx就OK了。
systemctl start nginx #啟動nginx
systemctl enable nginx #設置nginx的開機啟動
然后在 CentOs系統 打開瀏覽器 輸入 :192.168.0.109 (使用ifconfig查看IP)
看到下面 的頁面說明安裝成功,並啟動成功了:

(3)安裝.Net Core SDK(目前是2.0.2版本)
可以參考微軟的文檔,非常詳細:https://www.microsoft.com/net/learn/get-started/linuxcentos
(4)配置防火牆
- 查看firewall服務狀態
systemctl status firewalld

- 查看firewall的狀態
firewall-cmd --state

- 開啟、重啟、關閉、firewalld.service服務(如果關閉了請打開)
# 開啟
service firewalld start
# 重啟
service firewalld restart
# 關閉
service firewalld stop
-
# 查詢端口是否開放
firewall-cmd --query-port=8080/tcp
# 開放80端口(如果想在外面可以訪問到,要開啟80端口)
firewall-cmd --permanent --add-port=80/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp -
#重啟防火牆(修改配置后要重啟防火牆)
firewall-cmd --reload -
# 參數解釋
1、firwall-cmd:是Linux提供的操作firewall的一個工具;
2、--permanent:表示設置為持久;
3、--add-port:標識添加的端口;
三、項目發布並部署
- 把發布好的項目,上傳到Centos的/opt/app/demo1/目錄下面:

注意:上面的項目一定要在Startup.cs文件的Configure方法中添加下面的代碼:(標紅的部分)
app.UseForwardedHeaders(new ForwardedHeadersOptions { ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto }); app.UseAuthentication();//注意添加這段代碼就是想說明,如果有該段代碼,則添加的代碼一定要在該代碼的前面添加,如果沒有需求則可以去掉,上面的項目中是沒有改段代碼的
- Nginx的配置
修改下面目錄中的default.conf文件:

內容替換為:

- 配置守護服務(supervisor)
yum install python-setuptools easy_install supervisor mkdir /etc/supervisor echo_supervisord_conf > /etc/supervisor/supervisord.conf
修改:supervisord.conf

修改內容為最后面的部分:

其中files= conf.d/*.conf修改為:files = supervisord.d/*.ini
在再改目錄下面創建一個目錄,如下圖所示:

進入上面創建的目錄里面,新建一個文件:MiaoSha.ini

內容為:

修改完之后,執行下面的命令:
supervisord -c /etc/supervisor/supervisord.conf
supervisorctl reload
好了,現在可以在瀏覽器中輸入:192.168.0.109:80,即可訪問,但是我想開機的時候,就啟動,需要做一下的配置:
- 配置Supervisor開機啟動
打開目錄 /etc/systemd/system/ 新建文件 miaosha.service

內容:

然后執行:
systemctl enable miaosha.service
systemctl start miaosha.service
systemctl status miaosha.service

如果上圖中出現同樣的結果,說明已經配置成功,我們重啟電腦,不用dotnet MiaoSha.Admin.dll了,即可在虛擬機中訪問:192.168.0.109而且也可以在外面的瀏覽器中訪問,下面展示這兩種訪問結果:
在虛擬機中訪問:

本地訪問:

四、總結
在部署的時候,也參考了 “ 農碼一生” 的相關文章,但怎么也配置不成功,一直報502錯誤,后來參考了官網的配置,和自己摸索,終於部署成功,遇到很多坑,建議大家不要只看,動起手來,你就會知道其中的酸爽!好了,分享到這里吧,希望對你有幫助!
五、問題
后面會把寫好的項目部署到阿里雲上,如果遇到問題,會第一時間更新。
(1)首先感謝那些幫助我的人,很感謝!沒有你們的幫助可能我會消耗更多的時間。
狀態:已解決
時間:2017年11月14日晚
問題:站點可以訪問,js css jpg加載不出來報404
解決辦法:
1)首先我們看看發布的這個項目代碼 Program.cs和Startup.cs文件的代碼:
public class Program { public static void Main(string[] args) { BuildWebHost(args).Run(); } public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory()) .UseIISIntegration() .UseStartup<Startup>() .UseUrls("http://localhost:5000") .Build(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env) { app.UseForwardedHeaders(new ForwardedHeadersOptions { ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto }); app.UseStaticFiles(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Login}/{action=Login}/{id?}"); }); }
2)Nginx的配置

3)訪問結果:(圖片、js、css、json文件404,即使你再路徑前面加上wwwroot還是報404)

出現問題的原因是很多的,在保證你代碼總的圖片路徑是正確的前提下,可能的原因是:反向代理的路徑下找不到文件,需要單獨指定js css文件的訪問路徑。
修改Nginx的配置如下(重啟Nginx):

注意:root后面的路徑,之前我的路徑沒有加上wwwroot/ 還是報404,加上之后再訪問就沒有問題了,可以在上面的()里面添加你的靜態資源文件的后綴名,這樣Nginx就可以直接轉發請求的靜態資源文件。
expires 1d 表示緩存的時間,如果這些靜態資源基本上沒有變化的話,可以把該值設置大點。

(2)
狀態:已解決
時間:2017年11月15日晚
問題:在配置supervisor時,配置完成,啟動時遇到:cannot unlink stable.sock什么之類是問題
解決辦法:重新安裝supervisor,具體可以參考:
- 配置守護服務(supervisor)配置節
(3)
狀態:已解決
時間:2017年11月26日11:56:12
問題:Centos7.3手欠更新一下最新的.Net Core SDK 2.0.3,使用dotnet -version 發現:bash dotnet 未找到命令
原因:微軟的pkg包居然沒有添加環境變量, 也沒有軟連接dotnet
解決辦法:更新了是不是還需要再安裝一下,於是就重新安裝了一遍,但是還報上面的錯誤。最后添加了一下軟連接
step1:

step2:

step3:

注意:是把第二個:usr/share/dotnet/dotnet 掛到 /usr/local/bin/dotnet
作者:郭崢
出處:http://www.cnblogs.com/runningsmallguo/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接。
