【一、前言】
本文章主要講解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/