我是一個Android開發(fā)得问,但是一個應(yīng)用端的工程師软免,勢必是需要學(xué)習(xí)一些前端和后端的知識。T字型人才的“一超多會多了解”本來就應(yīng)該成為每一個工程師的標(biāo)配漓骚。所以蝌蹂,加油吧曹锨,騷年沛简!
本文會沿襲從Nginx在Linux云服務(wù)器上安裝,到我將一個簡單的前端項目布置到云服務(wù)器上面去的過程進(jìn)行探索给郊。
前置條件
騰訊云/阿里云 云服務(wù)器丑罪;
域名(可選)
(關(guān)于前置條件的設(shè)置可以自行查找官方文檔進(jìn)行購買使用。由于我是使用騰訊云進(jìn)行的操作跪另,以下圖示均為騰訊云免绿。)
在Linux云服務(wù)器上面安裝Nginx
Nginx 是什么擦盾?
Nginx 是一款輕量級的 HTTP 服務(wù)器,采用事件驅(qū)動的異步非阻塞處理方式框架辽故,這讓其具有極好的 IO 性能誊垢,時常用于服務(wù)端的反向代理和負(fù)載均衡症见。
Nginx 是一個Web服務(wù)器,和 Apache 類似芋肠。和Tomcat 帖池、JBoss 之類的Web 應(yīng)用服務(wù)器略有不同谬晕。前者主要是強(qiáng)調(diào)Web 功能攒钳,例:HTTP/HTTPS 協(xié)議不撑、處理靜態(tài)資源請求晤斩、反向代理等,后者主要強(qiáng)調(diào)對于動態(tài)資源的提供能力实愚,計算能力腊敲。且后者大多具有前者的能力(但性能遠(yuǎn)不如前者)。而Nginx 相比于Apache懂昂,是更加輕量級的Web 服務(wù)器凌彬。這也是非常多公司和個人的選擇。
而我之所以會學(xué)習(xí)Nginx铲敛,就是為之后的前后端分離的開發(fā)部署打下基礎(chǔ)伐蒋。在我一個Android開發(fā)人員看來顽素,JSP這種前后端耦合的開發(fā)方式實在是沒有任何工程思維可言。移動端項目的天然分離型型,讓我理所應(yīng)當(dāng)?shù)恼J(rèn)為前后端分離是一件再應(yīng)該不過的事情全蝶。之后抑淫,我同樣會將后端項目單獨部署到Tomcat上面去。前后端只需要通過HTTP協(xié)議來交流數(shù)據(jù)即可始苇。
在Linux云服務(wù)器上安裝最新的Nginx
基本環(huán)境
操作系統(tǒng) CentOS 7.7 64位
Nginx 安裝版本
Nginx 的版本 nginx/1.18.0
通過yum命令來查看nginx已經(jīng)安裝和可以安裝的程序包
yum list | grep nginx
(這里特別解釋一下這個命令函喉,這個命令是 yum list 加 grep nginx 命令荣月。yum list 是顯示所有已安裝和未安裝的程序包。grep 是文本搜索命令捐下,grep nginx 就是搜索nginx這個文本。整個命令就是在yum list 的結(jié)果中搜索和nginx 相關(guān)的結(jié)果奸柬。)(注:1. yum 命令是RPM的軟件包管理工具啤握,負(fù)責(zé)和rpm相關(guān)的軟件安裝、卸載排抬、刪除蹲蒲、查看。2. 這里的| 是管道命令缘薛。| 的前者命令的結(jié)果是后者命令的輸入宴胧。)
由于此時我已經(jīng)安裝好了nginx/1.18.0的版本,所以騰訊云自帶的1.16.1的版本我并沒有使用恕齐,所以可以看到有兩個版本的nginx的安裝包信息显歧。這里可以看到确镊,所有已經(jīng)安裝好的1.18.0的版本都在最后一欄顯示了nginx。而1.16.1的版本顯示的是epel蕾域。epel的全稱是(Extra Packages for Enterprise Linux)拷肌,意思是企業(yè)Linux的額外安裝包。這是一個為 RHEL 及衍生發(fā)行版如 CentOS旨巷、Scientific Linux 等提供高質(zhì)量軟件包的項目廓块。
還有一種情況會顯示repo。repo文件是Fedora中yum源(軟件倉庫)的配置文件契沫,通常一個repo文件定義了一個或者多個軟件倉庫的細(xì)節(jié)內(nèi)容,例如我們將從哪里下載需要安裝或者升級的軟件包昔汉,repo文件中的設(shè)置內(nèi)容將被yum讀取和應(yīng)用懈万。
如果你的Linux上面沒有EPEL源的話拴清,可以通過下面命令進(jìn)行安裝
sudo yum install -y epel-release
sudo yum -y update
找到nginx的最新源会通,并安裝到云服務(wù)器上面
切換到你打算放置的文件夾下:cd /usr/local/nginx
去官網(wǎng)找到下載地址:http://nginx.org/en/download.html
如圖所示沪停,當(dāng)你指向下載鏈接的時候裳涛,左下方所顯示的地址就是該資源的下載地址端三。
下載目標(biāo)資源:wget http://nginx.org/download/nginx-1.18.0.tar.gz
在當(dāng)前目錄下解壓nginx安裝包: tar -zxvf nginx-1.18.0.tar.gz
安裝nginx:
cd nginx-1.17.6
./configure
make
make install
啟動nginx:
cd usr/local/nginx/sbin
./nginx
停止nginx的命令
/usr/local/nginx/sbin/nginx -s stop
重啟nginx的命令
/usr/local/nginx/sbin/nginx -s reload
如果你只是希望希望使用當(dāng)前Linux云服務(wù)器上已有的nginx進(jìn)行安裝的話,直接執(zhí)行以下命令即可
yum -y install nginx
將一個簡單的前端項目部署到云服務(wù)器上面去
- 查看nginx的配置文件
nginx -t
- 進(jìn)入nginx的配置文件
vim /etc/nginx/nginx.conf
(注:Vim有三種模式。1.命令模式团赁,即所有的輸入都視為命令,剛進(jìn)入vim界面就視為命令模式熬丧。2.輸入模式剧浸,負(fù)責(zé)編輯文本內(nèi)容的模式。3.底線命令模式嫌变,用于對于vim編輯之后對于文件保存狀態(tài)的處理躬它。)
(1到2,i——進(jìn)入輸入模式倘待;2到1组贺,按Esc退出;)
(1到3啊奄,:——進(jìn)入底線命令模式;3到1琼富,按Esc退出庄新;)
- 上述內(nèi)容的最后一行是一個詳細(xì)的配置文件择诈,繼續(xù)打開它。
vim /etc/nginx/conf.d/*.conf
上圖中的第一個location /{} 中的root的值就是你要部署的前端項目的目錄地址;index的值就是你的首頁的文件名稱涩金。類似的后面的error_page就是處理不同的錯誤碼的頁面。此時你只要將前端項目上傳到Linux云服務(wù)器上并修改上述這幾個值就可以了副渴。
- FileZilla 上傳前端項目煮剧。
我這里新建了一個test文件夾将鸵。路徑地址為:/usr/etc/test。之后我會將一個前端項目移動到這個位置草娜。進(jìn)行演示宰闰。
鏈接新站點
image.png
如上圖所示我的Linux是使用SSH密鑰進(jìn)行的登錄移袍,所以你還需要使用puttygen將linux私鑰id_rsa轉(zhuǎn)換成ppk文件老充,之后就可以使用FileZilla進(jìn)行鏈接了啡浊。
鏈接成功之后路狮,就是下圖所示。
從本地站點拖動到遠(yuǎn)程站點的test文件夾中即可苹祟。此時就上傳成功了评雌,最后在之前的配置文件中進(jìn)行設(shè)置。
- 重啟nginx
nginx -t (測試配置文件是否配置成功砂轻,顯示成功
test is successful
即可)
nginx
nginx -s reload (修改配置后重新加載生效)
nginx -s reopen (重新打開日志文件)