在前一個章節裡:
Part 2 一個方便作業的Fedora 29 Server對於一個網頁伺服器,你應該要有的認識:
- 預設的情形下 HTTP執行在埠80,而更安全的HTTPS執行在443
- HTTP/HTTPS 可以執行在別的埠號上,不是硬性在80或443上
- 可以以服務形式存在系統,也可以讓使用者以普通應用程式的方式執行服務
- Linux上,網頁伺服器通常都會有自己獨立的執行帳號,有些是系統安裝好時便預先建立,有些是安裝了網頁伺服器,才會建立,使用者也可以規定其他執行帳號。
改用Nginx 的理由是什麼 ?
Linux 上最為原先的網頁伺服器是由NCSA HTTPd衍生而來的Apache,也是目前最常用的Web Server 之一,改用Nginx 的理由是什麼 ?Nginx 的當初寫出來的設計目的就是超越Apache HTTP Server 的執行效能,就以服務靜態HTML來說,Nginx 使用了比Apache 還要少非常多的記憶體,就達成了每秒鐘能處理比Apache 多四倍的要求,但Nginx 為了高效能而設計的架構便犧牲了像Apache 的高靈活性 (例如Apache可以只要透過Web Folder 裡面個別的.htxx檔案來達成靈活的存取與網站執行特性設定,但Nginx 不行)。不過就一般網站的需求而言(像是限制特定目錄存取(IP或帳號密碼),開GZip壓縮等等),Nginx都能勝任,故相對於Apache,Nginx 是一個更好的選擇。
Nginx 的執行在Fedora 29 Server上的重要資訊:
- 預設的執行帳號: nginx
- 設定檔案位置: /etc/nginx/
- Log檔案位置: /var/log/nginx/
- 預設的網頁檔案置放位置: /usr/share/nginx/html/
- 服務預設狀態: 不開機啟動,停止
來亂的軼事:
其實依照官網的說明,Nginx 不念 En-jinx 是念Engine-X
安裝Nginx:
Nginx 在Fedora 上倒是意外的安穩,沒有出什麼大亂子,所以基本上只要按照正常程序: 安裝、開防火牆、開機啟動、啟動服務,就可以了。安裝Nginx:
# dnf install nginx
讓nginx 能夠通過防火牆:
# firewall-cmd --zone=FedoraServer --add-service=http --permanent
# firewall-cmd --zone=FedoraServer --add-service=https --permanent
由於http和https 是防火牆中預設的Service Profile,這樣打等同於以下:
# firewall-cmd --zone=FedoraServer --add-port=80/tcp --permanent
# firewall-cmd --zone=FedoraServer --add-port=443/tcp –permanent
有人也許會對Service Profile的管理方式感到好奇,但我們可以這樣理解:
FTP服務需要20 和 21兩個TCP埠,而如果又使用了PASV,那還要額外規定一部份的埠給FTP使用,(假定60000 ~ 60020)。這代表要讓FTP正常運作,光只有Add Port 的方式就要三次,也容易造成事後不清楚這些規則的作用是什麼。我們可以把這些東西統整為一個稱為FTP的Service Profile,所以當防火牆執行 add-service=ftp時 實際上已經完成了add-port 20, 21 60000~60020),而在規則清單上也較容易理解。
而zone (領域) 你可以理解為防火牆的Profile,正如你的電腦在不同的網路下需要不同的Profile 來提供不同的安全程度。
而Fedora 29 Server 預設的Profile 是 FedoraServer。
而當新增或減少防火牆的規則清單時,請務必讓防火牆做重新整理:
# firewall-cmd --reload
讓Nginx開機啟動:
# systemctl enable nginx
啟動Nginx服務:
# systemctl start nginx
測試Nginx 服務:
隨便找一台電腦,網址輸入http://[主機IP],就可以看到Nginx 的歡迎畫面:如果能看到這個畫面的話,請給自己一個掌聲吧 ?
留言
張貼留言