Vue爬坑之路三:Nginx部署

上回我們披荊斬棘用Vue終于開發(fā)了一個(gè)小系統(tǒng)
現(xiàn)在來爬最后一個(gè)坑——項(xiàng)目打包部署測試環(huán)境
從來沒部署過項(xiàng)目的小白在一臉懵逼的努力嘗試
虛擬機(jī)配了一遍測試環(huán)境配了一遍坑也踩了一遍

一. 連接主機(jī)

我們的目的是在測試環(huán)境的主機(jī)上先配置一個(gè)Nginx服務(wù)器。
先在本地安裝Xshell與Xftp。


準(zhǔn)備.png

打開Xshell,輸入主機(jī)名,用戶名,密碼,點(diǎn)擊OK登錄。

Note1:主機(jī)名一般管運(yùn)維的小哥哥要地址就可以,如果沒有可以在虛擬機(jī)vmware中裝個(gè)linux系統(tǒng)(centOS之類的)作測試服務(wù)器使用。安裝vmware和centOS不再詳述。
需要注意的是,裝完centOS之后啟動(dòng)系統(tǒng)可能會提示VT-x禁用。這時(shí)需要進(jìn)入bios設(shè)置Intel Virtualization Technology為Enabled。重啟方可正確進(jìn)入系統(tǒng)。

連接成功后,黑咕隆咚什么也看不懂。傳說中的Linux shell界面,下面的命令行都是在這里敲啦。


xshell.png

二. 安裝Nginx

安裝Ngixn需要下面幾個(gè)工具。
gzip模塊需要zlib庫 (下載: http://www.zlib.net/)
rewrite模塊需要pcre庫 (下載: http://www.pcre.org/)
ssl功能需要openssl庫 (下載: http://www.openssl.org/)
Nginx包 (下載: http://nginx.org/en/download.html
全部下載下來。然后使用Xftp上傳到Linux系統(tǒng)中。

準(zhǔn)備.png

xftp上傳.png

然后依次安裝openssl、zlib、pcre,Nginx包。
Step1:安裝openssl
依次執(zhí)行以下命令:

tar -zxvf openssl-1.0.2n.tar.gz
cd openssl-1.0.2n
./config
make
make install

運(yùn)氣好的話一口氣執(zhí)行完沒有報(bào)錯(cuò)就是安裝成功。運(yùn)氣不好的話,執(zhí)行過程中有可能提示需要裝perl5,gcc,g++,依據(jù)提示安裝后,重新執(zhí)行即可。


提示需要gcc.png

Note2:這里需要注意的是,如果是外網(wǎng)環(huán)境,直接用yum -y install gccyum -y install gcc-c++即可安裝。但如果系統(tǒng)只有內(nèi)網(wǎng)無法連接外網(wǎng),則需要通過rpm包離線進(jìn)行安裝。
一般來講下載以下包。

好多rpm包.png

上傳到系統(tǒng)中,然后使用命令

rpm -Uvh *.rpm --nodeps --force

進(jìn)行安裝。安裝完畢后可以用gcc -vg++ -v查看成功與否。

Step2:安裝zlib
和上述步驟基本一樣,依次執(zhí)行以下命令:

tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure
make
make install

Step3:安裝pcre

tar -zxvf pcre-8.42.tar.gz
cd pcre-8.42
./configure
make
make install

Step4:安裝Nginx
這里只有./configure需要設(shè)置清楚。

tar -zxvf nginx-1.10.3.tar.gz
cd nginx-1.10.3
./configure --with-pcre=../pcre-8.42 --with-zlib=../zlib-1.2.11 --with-openssl=../openssl-fips-1.0.2
make
make install

完成之后,執(zhí)行命令啟動(dòng)Nginx。

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

此時(shí)瀏覽器打開主機(jī)ip所在地址,看到以下頁面,則說明Nginx配置成功啦。


Nginx啟動(dòng).png

Note3:如果是虛擬機(jī)裝完Nginx后可能發(fā)現(xiàn)訪問不到Nginx主頁,至少我第一次沒成功,這是因?yàn)榉阑饓ε渲玫膯栴}。
我測試的時(shí)候裝的是CentOS7,需要進(jìn)入sysconfig目錄下執(zhí)行以下命令打開80端口。

firewall-cmd --zone=public --add-port=80/tcp --permanent

三. 打包上傳Vue

接下來,將vue工程用npm run build打包,打包完畢會在工程目錄下出現(xiàn)一個(gè)dist文件夾,這個(gè)就是我們需要上傳到服務(wù)器的靜態(tài)頁面。


Dist文件夾.png

把dist文件夾中的項(xiàng)目上傳到系統(tǒng)中。記好上傳的路徑。
此時(shí)修改/usr/local/nginx/conf/下面的nginx.conf,這個(gè)是Nginx配置文件。

cd /usr/local/nginx/conf/
vim nginx.conf

修改配置文件主要做兩件事:

  1. 把Nginx服務(wù)器的默認(rèn)路徑改成我們項(xiàng)目所在的路徑。
  2. 如果你的vue工程用的路由是history模式,需要將客戶端發(fā)來的url重定向到默認(rèn)的index.html,才能正常訪問。否則只能看到主頁。刷新或點(diǎn)擊其他頁面都會404。
    在配置文件中的server里如下修改。
location / {
  root /home/CRExpress/www;
  try_files $uri $uri/ /index.html last;
  index index.html;
}

root后面的地址是項(xiàng)目上傳的路徑。try_files是添加到index的映射。


修改Nginx.conf.png

此后,測試nginx.conf文件并重啟Nginx服務(wù)。

/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
cd /usr/local/nginx/sbin/
./nginx -s reload

這是打開瀏覽器訪問主機(jī)地址,就能看到我們的項(xiàng)目啦。并且刷新首頁也不會404了。


大功告成.png

Note4:配置完畢Nginx時(shí)還有可能出現(xiàn)403錯(cuò)誤。如果ip地址沒有錯(cuò),權(quán)限也正常,那么很可能是SELinux設(shè)置為開啟狀態(tài)(enabled)的原因。
此時(shí)先查看selinux的狀態(tài)。

 /usr/sbin/sestatus

如果為enforcing,需要修改config配置文件,SELINUX改成disabled并且重啟服務(wù)器才能生效。

#SELINUX=enforcing
SELINUX=disabled

Note5:在用虛擬機(jī)CentOS測試時(shí),有一次突然發(fā)現(xiàn)xshell鏈接不上虛擬機(jī)了。
檢查發(fā)現(xiàn)是虛擬機(jī)的SSH沒有正常啟動(dòng)。
運(yùn)行service sshd status
發(fā)現(xiàn)Active:activating(auto-restart) 一直在啟動(dòng)中。
然后提示Failed to start OpenSSH Server daemon感覺是啟動(dòng)時(shí)卡住了。
這時(shí)輸入sshd -t查看一下,提示說有好幾個(gè)key沒有加載。錯(cuò)誤大概是下面這樣。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0777 for '/etc/ssh/ssh_host_ecdsa_key' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /etc/ssh/ssh_host_ecdsa_key
Could not load host key: /etc/ssh/ssh_host_ecdsa_key
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0777 for '/etc/ssh/ssh_host_rsa_key' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_rsa_key

百度發(fā)現(xiàn)需要修改key的模式。

#chmod 600 sshd_config ssh_host_ecdsa_key ssh_host_rsa_key
#chmod 620 moduli
#chmod 644 ssh_config ssh_host_ecdsa_key.pub ssh_host_rsa_key.pu

之后重新啟動(dòng)SSH。

service sshd start

成功,xshell可以連接。

Note6:上述步驟把Vue項(xiàng)目部署到了Nginx根目錄。突發(fā)奇想想改成子目錄,以為5分鐘改好結(jié)果折騰了兩天。。
目的是希望通過瀏覽器輸入 http://ip地址:8090/CRExpress 來訪問項(xiàng)目。
上最終配置。
第一步:Nginx的nginx.conf里的server這樣設(shè)置:

nginx.conf.png

第二步:vue工程中,config中的index.js修改如下:

config.png

主要是assetsPublicPath: './', ./表示相對路徑,默認(rèn)是/。當(dāng)用/的時(shí)候你會發(fā)現(xiàn)瀏覽器找不到打包后的文件。改成相對路徑才可以。

控制臺.png

第三步:router中的index.js修改如下:


router.png

這步需要在路由中加上base路徑。如果不改路由配置,會發(fā)現(xiàn)即使靜態(tài)文件都找到了,頁面還是一片空白。原因是現(xiàn)在路由無法找到頁面上的組件,需要將base設(shè)定為項(xiàng)目所在位置。


這樣vue從搭建開發(fā)環(huán)境到開發(fā)到部署基本搞定。
開發(fā)環(huán)境和開發(fā)過程見爬坑之路一和二。
前兩天看見一個(gè)博主說前端就是出了html css的新手村,開始打jquery,angular,vue,react等一個(gè)個(gè)boss。
整理一下接下來要挑戰(zhàn)react啦~(。???)ノ

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,333評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,491評論 3 416
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,263評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,946評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,708評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,186評論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,255評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,409評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,939評論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,774評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,976評論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,518評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,209評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,641評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,872評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,650評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,958評論 2 373

推薦閱讀更多精彩內(nèi)容

  • Page 1:nginx 服務(wù)器安裝及配置文件詳解 CentOS 6.2 x86_64 安裝 nginx 1.1 ...
    xiaojianxu閱讀 8,559評論 1 41
  • nginx在工作中已經(jīng)有好幾個(gè)環(huán)境在使用了,每次都是重新去網(wǎng)上扒博客,各種編譯配置,今天自己也整理一份安裝文檔和n...
    AndyChin閱讀 2,312評論 0 4
  • 一、Linux下安裝配置nginx 第一次安裝nginx,中間出現(xiàn)的問題一步步解決。 用到的工具secureCRT...
    yljava閱讀 1,685評論 0 0
  • 已到四十不惑的年齡,少了許多的迷茫,少了許多的敬畏,也少了許多的顧忌,許多事許多人都能去看清了。少了童年的天真,少...
    綠塬閱讀 365評論 0 1
  • 我曾向所有人宣揚(yáng),我要的愛,是死心塌地、矢志不渝的。 可是后來我卻開始見異思遷、朝秦暮楚。惜白,我不想說,這全...
    北方不見北閱讀 376評論 0 0