前言:Vue服務(wù)器采用nginx?Vue為服務(wù)器;
一:安裝Nginx
請(qǐng)確保你是以擁有 sudo 權(quán)限的用戶來登錄的服務(wù)器
請(qǐng)按照下面的步驟锄贷,在 CentOS 中安裝 Nginx障般。
EPEL 倉庫中有 Nginx 的安裝包宣鄙。如果你還沒有安裝過 EPEL碉渡,可以通過運(yùn)行下面的命令來完成安裝:
sudo yum install epel-release
上面代碼的意思是以 sudo 權(quán)限運(yùn)行安裝 epel-release乍恐,如果你當(dāng)前登錄的用戶不是 root评疗,則會(huì)提示你輸入密碼來運(yùn)行,輸入密碼時(shí)是看不到輸入的內(nèi)容的茵烈,所以不用擔(dān)心百匆,繼續(xù)輸入就行。然后回車?yán)^續(xù)運(yùn)行呜投,后面的命令中如果包含 sudo 則都表明是剛提到的意思加匈,不再重復(fù)解釋。輸入以下命令來安裝 Nginx:
sudo yum install nginx
如果這是您第一次從 EPEL 倉庫中安裝軟件仑荐,yum 可能會(huì)提示您導(dǎo)入 EPEL GPG key:
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Importing GPG key 0x352C64E5:
Userid : "Fedora EPEL (7) <epel@fedoraproject.org>"
Fingerprint: 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5
Package : epel-release-7-9.noarch (@extras)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Is this ok [y/N]:
類似于上面的內(nèi)容雕拼,遇到這種情況,輸入 y粘招,然后 Enter(回車) 即可繼續(xù)安裝啥寇。
- 等到安裝完成以后,可以通過以下命令來設(shè)置開機(jī)啟動(dòng)和運(yùn)行 Nginx 服務(wù):
設(shè)置 Nginx 開機(jī)啟動(dòng):
sudo systemctl enable nginx
運(yùn)行以上命令以后洒扎,會(huì)輸出類似以下的內(nèi)容辑甜,表示創(chuàng)建了一個(gè)軟連接來關(guān)聯(lián) Nginx,不用擔(dān)心袍冷,并不是報(bào)錯(cuò)了磷醋,下一步就可以啟動(dòng) Nginx 了。
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
啟動(dòng) Nginx:
sudo systemctl start nginx
通過運(yùn)行以下命令胡诗,來檢查 Nginx 的運(yùn)行狀態(tài):
sudo systemctl status nginx
然后會(huì)輸出類型下面的內(nèi)容: 其中Active:active代表運(yùn)行邓线, failed代表暫停
● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2018-03-12 16:12:48 UTC; 2s ago
Process: 1677 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 1675 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Process: 1673 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
Main PID: 1680 (nginx)
CGroup: /system.slice/nginx.service
├─1680 nginx: master process /usr/sbin/nginx
└─1681 nginx: worker process
- 如果你的服務(wù)器開啟了防火墻淌友,則需要同時(shí)打開 80(HTTP)和 443(HTTPS)端口
通過下面的命令來打開這兩個(gè)端口:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
國內(nèi)的服務(wù)器廠商,安全組也可能會(huì)默認(rèn)屏蔽這兩個(gè)端口褂痰,比如 阿里云 和 騰訊云亩进,如果在 第 5 步 時(shí)發(fā)現(xiàn)無法訪問,可以自行百度一下如何放開這兩個(gè)端口缩歪。
- 驗(yàn)證 Nginx 是否成功啟動(dòng)归薛,可以在瀏覽器中打開 http://YOUR_IP,您將看到默認(rèn)的 Nginx 歡迎頁面匪蝙,類似于下圖所示:
image.png
注:Nginx 的默認(rèn)歡迎頁有好幾種樣式主籍,和你安裝的版本有關(guān),所以大家只用關(guān)注這個(gè)頁面的大標(biāo)題就行了 Welcome to nginx逛球!
通過 systemctl 管理 Nginx
你可以像管理其他服務(wù)那樣管理 Nginx千元。
啟動(dòng) Nginx
sudo systemctl start nginx
停止 Nginx
sudo systemctl stop nginx
重啟 Nginx
sudo systemctl restart nginx
修改 Nginx 配置后,重新加載
sudo systemctl reload nginx
設(shè)置開機(jī)啟動(dòng) Nginx
sudo systemctl enable nginx
關(guān)閉開機(jī)啟動(dòng) Nginx
sudo systemctl disable nginx
Nginx 的配置文件和最佳實(shí)踐
- 通過以上方式安裝的 Nginx颤绕,所有相關(guān)的配置文件都在 /etc/nginx/ 目錄中幸海。
- Nginx 的主配置文件是 /etc/nginx/nginx.conf。
- 為了使 Nginx 配置更易于維護(hù)奥务,建議為每個(gè)服務(wù)(域名)創(chuàng)建一個(gè)單獨(dú)的配置文件物独。
- 每一個(gè)獨(dú)立的 Nginx 服務(wù)配置文件都必須以 .conf 結(jié)尾,并存儲(chǔ)在 /etc/nginx/conf.d 目錄中氯葬。您可以根據(jù)需求挡篓,創(chuàng)建任意多個(gè)獨(dú)立的配置文件。
- 獨(dú)立的配置文件帚称,建議遵循以下命名約定官研,比如你的域名是 kaifazhinan.com,那么你的配置文件的應(yīng)該是這樣的 /etc/nginx/conf.d/kaifazhinan.com.conf闯睹,如果你在一個(gè)服務(wù)器中部署多個(gè)服務(wù)戏羽,當(dāng)然你也可以在文件名中加上 Nginx 轉(zhuǎn)發(fā)的端口號(hào),比如 kaifazhinan.com.3000.conf楼吃,這樣做看起來會(huì)更加友好始花。
- 如果你的配置中有很多重復(fù)的代碼,那么建議你創(chuàng)建一個(gè) /etc/nginx/snippets 文件夾所刀,在這里面存放所有會(huì)被復(fù)用的代碼塊,然后在各個(gè)需要用到的 Nginx 的配置文件中引用進(jìn)去捞挥,這樣可以更方便管理和修改浮创。
- Nginx 日志文件(access.log 和 error.log )位于 /var/log/nginx/ 目錄中。建議為每個(gè)獨(dú)立的服務(wù)配置不同的訪問權(quán)限和錯(cuò)誤日志文件砌函,這樣查找錯(cuò)誤時(shí)斩披,會(huì)更加方便快捷溜族。
- 你可以將要部署的代碼文件,存儲(chǔ)在任何你想的位置垦沉,但是一般推薦存放在下列位置中的其中一個(gè):
- /home/<user_name>/<site_name>
- /var/www/<site_name>
- /var/www/html/<site_name>
- /opt/<site_name>
- /usr/share/nginx/html
本文引用:# 2019 年如何在 CentOS 7 上安裝最新版 Nginx
二:Nginx配置
- 轉(zhuǎn)到nginx配置文件目錄下煌抒,執(zhí)行語句
cd /etc/nginx/conf.d/
- 創(chuàng)建配置文件****.conf
vim ****.conf
server {
listen 80;
server_name localhost;
#root /home/system_vue/lims_vue;
location /cz { # 子域名
alias /home/system_vue/lims_changzheng_vue;
try_files $uri $uri/ /cz/index.html;
index index.html;
}
location /test { # 子域名
alias /home/system_vue/lims_vue;
#alias /home/system_vue/lims_slz_vue;
try_files $uri $uri/ /test/index.html;
index index.html;
}
location / {
root /home/system_vue/lims_slz_vue;
#root /home/system_vue/lims_vue;
try_files $uri $uri/ @router;
index index.html;
}
location @router {
rewrite ^.*$ /index.html last;
}
}
- 關(guān)于root與alias的區(qū)別:https://foofish.net/nginx-root-different-with-alias.html
- root后面的地址是項(xiàng)目上傳的路徑。try_files是添加到index的映射厕倍。
- 對(duì)應(yīng)上面的@router寡壮,主要原因是路由的路徑資源并不是一個(gè)真實(shí)的路徑,所以無法找到具體的文件讹弯。因此需要rewrite到index.html中况既,然后交給路由在處理請(qǐng)求資源
- 重啟nginx
systemctl restart nginx
-
訪問驗(yàn)證
輸入ip
image.png
注意:有可能會(huì)出現(xiàn)403 Forbidden,執(zhí)行 setenforce 0
設(shè)置SELinux 成為permissive模式