在Linux系統中安裝Nginx
- 進入Nginx官網下載Nginx的壓縮包
官網地址:http://nginx.org
- 安裝Nginx所需的pcre依賴
#第一步:聯網下載pcre壓縮文件依賴
wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz
#第二步:解壓壓縮文件
tar –xvf pcre-8.37.tar.gz
#第三步:進入pcre目錄,執行下面的命令
./configure
#第四步:在pcre目錄下執行下面的命令
make && make install
相關操作截圖如下:
注:進行第三步的時候可能會出現下面這個錯
解決方法:執行下面的命令
yum install -y gcc gcc-c++
第三步執行完出現如下結果纔是成功的:
- 安裝Nginx所需的其他依賴(openssl 、zlib 、 gcc)
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
- 安裝Nginx
#第一步:把下載好的Nginx壓縮包上傳到Linux上
#第二步:解壓壓縮包
tar -xvf nginx-1.12.2.tar.gz
#第三步:進入Nginx目錄,執行下面的命令
./configure
#第四步:在Nginx目錄下執行下面的命令
make && make install
#第五步:進入/usr/local/nginx/sbin/nginx目錄
cd /usr/local/nginx/sbin/nginx
#第六步:啓動Nginx
./nginx
相關操作截圖如下:
- 用瀏覽器訪問Nginx
在瀏覽器裏輸入Linux系統的IP地址,可看到如下圖所示的內容:
Nginx的常用命令
注:執行以下命令都要先進入到/usr/local/nginx/sbin目錄下
#查看Nginx的版本號
./nginx -v
#啓動Nginx
./nginx
#停止Nginx
./nginx -s stop
#重新加載Nginx的配置文件
./nginx -s reload
#檢查Nginx的配置文件是否有誤
./nginx -t
Nginx的配置文件
Nginx安裝目錄下,其默認的配置文件都放在這個目錄的conf目錄下,而主配置文件nginx.conf也在其中,後續對Nginx的使用基本上都是對此配置文件進行相應的修改,Nginx主配置文件所在位置:/usr/local/nginx/conf/nginx.conf
該配置文件中有很多#開頭的內容,表示註釋內容,我們去掉所有以#開頭的段落,精簡之後的內容如下:
根據上述截圖,我們可以很明顯的將nginx.conf配置文件分爲三部分:
第一部分:全局塊
從配置文件的開始到events塊之間的內容,主要是設置一些影響Nginx服務器整體運行的配置指令,主要包括配置運行Nginx服務器的用戶(組)、允許生成的worker process數,進程PID存放路徑、日誌存放路徑和類型以及配置文件的引入等
比如上面第一行配置的:
worker_processes 1;
這是Nginx服務器併發處理服務的關鍵配置,worker_processes值越大,可以支持的併發處理量也越多,但是會受到硬件、軟件等設備的制約
第二部分:events塊
比如上面的配置:
events {
worker_connections 1024;
}
events塊涉及的指令主要影響Nginx服務器與用戶的網絡連接,常用的設置包括是否開啓對多work process下的網絡連接進行序列化,是否允許同時接收多個網絡連接,選取哪種事件驅動模型來處理連接請求,每個word process可以同時支持的最大連接數等。上述例子就表示每個work process支持的最大連接數爲1024,這部分的配置對Nginx的性能影響較大,在實際中應該靈活配置
第三部分:http塊
比如上面的配置:
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
這算是Nginx服務器配置中最頻繁的部分,代理、緩存和日誌定義等絕大多數功能和第三方模塊的配置都在這裏。需要注意的是http塊又包括http全局塊、server塊
①http全局塊
http全局塊配置的指令包括文件引入、MIME-TYPE定義、日誌自定義、連接超時時間、單鏈接請求數上限等
②server塊
這塊和虛擬主機有密切關係,虛擬主機從用戶角度看和一臺獨立的硬件主機是完全一樣的,該技術的產生是爲了節省互聯網服務器硬件成本,每個http塊可以包括多個server塊,而每個server塊就相當於一個虛擬主機,而每個server塊也分爲全局server塊,以及可以同時包含多個locaton塊
全局server塊:最常見的配置是本虛擬機主機的監聽配置和本虛擬主機的名稱或IP配置
location塊:一個server塊可以配置多個location塊。這塊的主要作用是基於Nginx服務器接收到的請求字符串(例如 server_name/uri-string),對虛擬主機名稱(也可以是 IP 別名)之外的字符串(例如 前面的 /uri-string)進行匹配,對特定的請求進行處理。地址定向、數據緩存和應答控制等功能,還有許多第三方模塊的配置也在這裏進行