【一、前言】
本文章主要講解Nginx的基礎搭建(如果有不知道web伺服器的可以百度,或者我再做一篇圖解web)。
Nginx在網際網路中作為一個不可或缺的元件,我們看到LNMP整合環境。LNMP(Linux+Nginx+Mysql+Php);如果只知道這個不知道Nginx的搭建過程的話我們有Nginx的主要特性會錯過。比如Nginx的優點:
高可用(一個元件可以服務上千人)
熱部署(可以做到不停機就能升級基礎設施服務)
反向代理(通常可以,上游反向代理,下游負載均衡處理外部請求)
【二、Nginx搭建】
1、首先先下載一個版本。
- 1)Nginx社群版2)Nginx企業版 兩者沒有太大區別,都支援主要幾大功能。3)淘寶版本的Nginx對IO進行了最佳化,至今淘寶在使用的Tengine。
2、Nginx版本分支
3、版本如下:
1)MainLine Version(主線版本開發)
2)Stable(穩定版本)
3)Legacy Version(歷史版本)-- 如果專案需要上到選定版本可以選這個
4、下載(我們以Nginx Stable Version為例子)。我們能看到Stable Version底下有三個欄目:
1)CHANGE-1.16 是介紹這個版本和上個版本的區別
2)Nginx-1.16 pgp 這個是Linux版本下載選項,將會下載倒tar.gzNginx/Windows
3)1.16.1 這個是Windows系統下載的,將會下載window包
【三、Nginx檔案目錄(如下)】
1、檔案目錄如下所示:
2、檔案內容解析如下:
1)conf(存放配置檔案):Nginx.conf(主要的建站配置資料夾)
2)contrib(是一些Linux的Vim配置檔案):作用是將整個vim檔案移動到~/.vim/profile目錄底下,就會在vim下有高亮表現
3)doc (documentation 文件目錄):一些日誌改變以及readme文件還有License授權
4)html(預設的html,網站的入口):
- index.html 預設網頁
- 50x.html 常見的錯誤頁面
5)logs(預設的日誌資料夾)
6)temp(臨時檔案目錄)
【四、Windows下搭建】
首先需要解決如何對下一頁的網址進行請求的問題。可以點選下一頁的按鈕,觀察到網站的變化分別如下所示:
1、Windows下我們直接點選Nginx根目錄下的Nginx.exe即可立即使用了。閃退是正常現象,之後檢查埠檢視是否被佔用,第一次啟動推薦使用命令列啟用 :
.\nginxpath\nginx.exe(一直停留不變則說明開啟成功)2、 然後我們開啟網址:
http://localhost:803、這樣就是成功 如果失敗了看下面。使用Windows + R啟動命令列,擁有最高許可權,輸入命令:
netstart -ano | findstr 80 #找到佔用的pid號。4、然後將其kill掉,命令如下:
taskkill /F /pid5、之後在使用最開始的方法啟動即可。
【五、Linux環境下(Centos下)搭建】
1、Linux環境下使用最高許可權執行(不考慮使用者許可權)。2、首先先安裝被依賴的外掛,命令如下:
yum install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel -y3、之後依次如此下列的命令,記得看註釋噢~
tar -zxvf Nginx-1.16.1.tar.gzcd Nginx-1.16.1# 這下面幾步驟是進行載入vim外掛的,使其在修改conf的時候可以進行常亮cd contribmv contrib ~/.vimcd ..# path自己需要安裝的地方./configure -prefix=/path/Nginx# configure完成後即可,make && make install去# configure 是進行配置化操作# make 是進行編譯操作# make install 是進行編譯後文件的部署行為# 為了方便就將make && make install 一起進行4、之後執行Nginx,命令如下:
cd /nginxInStallPath./Nginx#沒有任何資訊則是執行成功了。Linux的沒有任何訊息就是最好的訊息curl http://localhost5、至此Nginx搭建完成。下列命令是一些常規的操作命令:
./Nginx -s reload #重新載入(Nginx能做到熱部署的一個原因)./Nginx -s stop #關閉伺服器./Nginx -t # 可以測試剛修改的Nginx.conf能否生效【六、Nginx.conf配置】
1、下面是進行Nginx.conf配置,命令如下:
# 下面是進行Nginx.conf配置cd confvim Nginx.conf2、修改檔案中的內容如下所示:
worker_processes number;# error_log path #錯誤日誌檔案位置# error_log path notice 提醒錯誤檔案位置# error_log path info 一些Logger::info的輸出位置events { work_connections 1024; #定義最大連線數量}# http 定義http的位置(高難度配置下章在講解)http { include mine.types; #定義包含型別,網頁請求request_type的地方屬性值設定地方在mine.types檔案裡賣你 default_type:application/ocet-stream #設定屬性流 sendfile on; #從一個 buffer到另一個 buffer的複製用於最佳化速度 #tcp_nopush on; keepalive_timeout 60; #設定請求超時時間 server { listen 80 # 設定監聽的埠 server_name localhost # 設定監聽的域名 charset koi8-r #設定字符集 #access_log logs/host.access.log main #設定主訪問日誌儲存 location / { #設定正則表示式匹配localhost/底下的目錄按照此位置進行處理, #下篇文章配置php會用到 root html; #設定網站根目錄為html路徑 index index.html index.htm; #設定沒有確定的資原始檔下,會自動訪問index.hmtl例如 # 例如訪問http://localhost會實際訪問http://localhost/index.html # 或者 http://localhost/index.htm } error_page 404 /404.html #自定義錯誤頁面程式碼下訪問的頁面 error_page 500 502 503 504 /50x.html location = /50.html { #訪問路徑為50x.html 無論是500, 502, 503, 504, 505這些頁面 root html; } # location ~\.php$ { # proxy_pass http://127.0.0.1; # } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} #location ~/\.ht { # deny all;拒絕所有使用者訪問 # } }# 底下是配置https,https是現在還在比較流行的一種安全web伺服器的基本要求 https { }}【七、總結】
1、Nginx是現代網際網路企業中不可缺少的一門技術,在微服務中也極為重要,尤其反向代理所帶來的抗風險能力極為重要,熱部署能力。
2、本文主要講述了Nginx在windows和Linux系統下的搭建過程,希望對搭建的學習有幫助。
想學習更多Python網路爬蟲與資料探勘知識,可前往專業網站:http://pdcfighting.com/