我是一個Android開發,但是一個應用端的工程師,勢必是需要學習一些前端和后端的知識。T字型人才的“一超多會多了解”本來就應該成為每一個工程師的標配。所以,加油吧,騷年!
本文會沿襲從Nginx在Linux云服務器上安裝,到我將一個簡單的前端項目布置到云服務器上面去的過程進行探索。
前置條件
騰訊云/阿里云 云服務器;
域名(可選)
(關于前置條件的設置可以自行查找官方文檔進行購買使用。由于我是使用騰訊云進行的操作,以下圖示均為騰訊云。)
在Linux云服務器上面安裝Nginx
Nginx 是什么?
Nginx 是一款輕量級的 HTTP 服務器,采用事件驅動的異步非阻塞處理方式框架,這讓其具有極好的 IO 性能,時常用于服務端的反向代理和負載均衡。
Nginx 是一個Web服務器,和 Apache 類似。和Tomcat 、JBoss 之類的Web 應用服務器略有不同。前者主要是強調Web 功能,例:HTTP/HTTPS 協議、處理靜態資源請求、反向代理等,后者主要強調對于動態資源的提供能力,計算能力。且后者大多具有前者的能力(但性能遠不如前者)。而Nginx 相比于Apache,是更加輕量級的Web 服務器。這也是非常多公司和個人的選擇。
而我之所以會學習Nginx,就是為之后的前后端分離的開發部署打下基礎。在我一個Android開發人員看來,JSP這種前后端耦合的開發方式實在是沒有任何工程思維可言。移動端項目的天然分離,讓我理所應當的認為前后端分離是一件再應該不過的事情。之后,我同樣會將后端項目單獨部署到Tomcat上面去。前后端只需要通過HTTP協議來交流數據即可。
在Linux云服務器上安裝最新的Nginx
基本環境
操作系統 CentOS 7.7 64位
Nginx 安裝版本
Nginx 的版本 nginx/1.18.0
通過yum命令來查看nginx已經安裝和可以安裝的程序包
yum list | grep nginx
(這里特別解釋一下這個命令,這個命令是 yum list 加 grep nginx 命令。yum list 是顯示所有已安裝和未安裝的程序包。grep 是文本搜索命令,grep nginx 就是搜索nginx這個文本。整個命令就是在yum list 的結果中搜索和nginx 相關的結果。)(注:1. yum 命令是RPM的軟件包管理工具,負責和rpm相關的軟件安裝、卸載、刪除、查看。2. 這里的| 是管道命令。| 的前者命令的結果是后者命令的輸入。)
由于此時我已經安裝好了nginx/1.18.0的版本,所以騰訊云自帶的1.16.1的版本我并沒有使用,所以可以看到有兩個版本的nginx的安裝包信息。這里可以看到,所有已經安裝好的1.18.0的版本都在最后一欄顯示了nginx。而1.16.1的版本顯示的是epel。epel的全稱是(Extra Packages for Enterprise Linux),意思是企業Linux的額外安裝包。這是一個為 RHEL 及衍生發行版如 CentOS、Scientific Linux 等提供高質量軟件包的項目。
還有一種情況會顯示repo。repo文件是Fedora中yum源(軟件倉庫)的配置文件,通常一個repo文件定義了一個或者多個軟件倉庫的細節內容,例如我們將從哪里下載需要安裝或者升級的軟件包,repo文件中的設置內容將被yum讀取和應用。
如果你的Linux上面沒有EPEL源的話,可以通過下面命令進行安裝
sudo yum install -y epel-release
sudo yum -y update
找到nginx的最新源,并安裝到云服務器上面
切換到你打算放置的文件夾下:cd /usr/local/nginx
去官網找到下載地址:http://nginx.org/en/download.html
如圖所示,當你指向下載鏈接的時候,左下方所顯示的地址就是該資源的下載地址。
下載目標資源:wget http://nginx.org/download/nginx-1.18.0.tar.gz
在當前目錄下解壓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
如果你只是希望希望使用當前Linux云服務器上已有的nginx進行安裝的話,直接執行以下命令即可
yum -y install nginx
將一個簡單的前端項目部署到云服務器上面去
- 查看nginx的配置文件
nginx -t
- 進入nginx的配置文件
vim /etc/nginx/nginx.conf
(注:Vim有三種模式。1.命令模式,即所有的輸入都視為命令,剛進入vim界面就視為命令模式。2.輸入模式,負責編輯文本內容的模式。3.底線命令模式,用于對于vim編輯之后對于文件保存狀態的處理。)
(1到2,i——進入輸入模式;2到1,按Esc退出;)
(1到3,:——進入底線命令模式;3到1,按Esc退出;)
- 上述內容的最后一行是一個詳細的配置文件,繼續打開它。
vim /etc/nginx/conf.d/*.conf
上圖中的第一個location /{} 中的root的值就是你要部署的前端項目的目錄地址;index的值就是你的首頁的文件名稱。類似的后面的error_page就是處理不同的錯誤碼的頁面。此時你只要將前端項目上傳到Linux云服務器上并修改上述這幾個值就可以了。
- FileZilla 上傳前端項目。
我這里新建了一個test文件夾。路徑地址為:/usr/etc/test。之后我會將一個前端項目移動到這個位置。進行演示。
鏈接新站點
image.png
如上圖所示我的Linux是使用SSH密鑰進行的登錄,所以你還需要使用puttygen將linux私鑰id_rsa轉換成ppk文件,之后就可以使用FileZilla進行鏈接了。
鏈接成功之后,就是下圖所示。
從本地站點拖動到遠程站點的test文件夾中即可。此時就上傳成功了,最后在之前的配置文件中進行設置。
- 重啟nginx
nginx -t (測試配置文件是否配置成功,顯示成功
test is successful
即可)
nginx
nginx -s reload (修改配置后重新加載生效)
nginx -s reopen (重新打開日志文件)