目錄結構如下:
a. 支援高并發:能支援幾萬并發連接配接(特别是靜态小檔案業務環境)
b. 資源消耗少:在3萬并發連接配接下,開啟10個Nginx線程消耗的記憶體不到200MB
c. 可以做HTTP反向代理及加速緩存,即負載均衡功能,内置對RS節點伺服器健康檢查功能,這相當于專業的Haproxy軟體或LVS的功能
d. 具備Squid等專業緩存軟體等的緩存功能
e. 支援異步網絡I/O事件模型epoll
a. 使用Nginx運作HTML,JS,CSS,小圖檔等靜态資料(此功能類似Lighttpd軟體)
b. Nginx結合FastCGI運作php等動态程式(例如使用fastcgi_pass方式)
c. Nginx結合Tomcat/Resin等支援Java動态程式(常用的proxy_pass)
一般情況下普通php引擎支援的并發連接配接參考為300-1000,Java引擎和資料庫的并發連接配接參考值為300-1500.當然架構不同可能會有浮動
a. 檢視目前系統cat /etc/redhat-release
[root@nginx /]# cat /etc/redhat-release
CentOS release 6.7 (Final)
[root@nginx /]#
b. 檢視系統核心uname –r
[root@nginx /]# uname -r
2.6.32-573.el6.x86_64
快速安裝指令集合:
View Code
a. 安裝前需要安裝pcre庫(相容正規表達式)
yum install pcre pcre-devel –y
b. 還需要安裝openssl
yum install openssl openssl-devel –y
c. 編譯之前還需要建立一個使用者
useradd nginx -M -s /sbin/nologin
d. 編譯安裝:
./configure --user=nginx --group=nginx --prefix=/application/nginx1.6.2 --with-http_stub_status_module --with-http_ssl_module
make&&make install
e. 安裝完成後的檢查與啟動
/application/nginx/sbin/nginx –t
/application/nginx/sbin/nginx
a. 同樣的可以通過腳本實作整體的安裝(腳本如下)
a. 如果是學習,需要關閉防火牆和selinux,關閉方法如下:
/etc/init.d/iptables stop
setenforce 0臨時關閉)
b. 如果想要永久關閉selinux
vi編輯/etc/selinux/config進行下面更改
SELINUX=disabled
c. 也可以通過指令sed直接對指令進行修改
sed -i 's#SELINUX=enable#SELINUX=disabled#g' /etc/selinux/config
按照上述操作啟動成功後,通過浏覽器打開通路:
會提示如下錯誤:
Nginx http功能子產品
子產品說明
Ngx_http_core_module
包括一些核心的http參數配置,對應Nginx的配合為HTTP區塊部分
Ngx_http_access_module
通路控制子產品,用來控制網站使用者對Nginx的通路
Ngx_http_gzip_module
壓縮子產品,對Nginx傳回的資料壓縮,屬于性能優化子產品
Ngx_http_fastcgi_module
FastCGI子產品,和動态應用相關的子產品,例如PHP
Ngx_http_proxy_module
Proxy 代理子產品
Ngx_http_upstream_module
負載均衡子產品,可以實作網站的負載均衡功能及節點的健康檢查
Ngx_http_rewrite_module
URL位址重寫子產品
Ngx_http_limit_conn_module
限制使用者并發連接配接數及請求數子產品
Ngx_http_limit_req_module
根據定義的key限制Nginx請求過程的速率
Ngx_http_log_module
通路日志子產品,以指定的格式記錄Nginx客戶通路日志等資訊
Ngx_http_auth_basic_module
web認證子產品,設定web使用者通過賬号,密碼通路Nginx
Ngx_http_ssl_module
ssl子產品,用于加密的http連接配接如https
Ngx_http_stub_status_module
記錄Nginx基本通路狀态資訊等的子產品
|-- client_body_temp
|-- conf #這是Nginx所有配置檔案的目錄
| |-- fastcgi.conf #fastcgi相關參數的配置檔案
| |-- fastcgi.conf.default
| |-- fastcgi_params #fastcgi的參數檔案
| |-- fastcgi_params.default
| |-- koi-utf
| |-- koi-win
| |-- mime.types #媒體類型
| |-- mime.types.default
| |-- nginx.conf #nginx預設的主配置檔案
| |-- nginx.conf.default
| |-- scgi_params #scgi相關參數
| |-- scgi_params.default
| |-- uwsgi_params #uwsgi相關參數
| |-- uwsgi_params.default
| `-- win-utf
|-- fastcgi_temp #fastcgi臨時資料目錄
|-- html #編譯安裝Nginx的預設站點目錄
| |-- 50x.html #錯誤頁面優雅替代顯示檔案
| `-- index.html #預設的首頁檔案
|-- logs #預設的日志路徑包括錯誤日志和通路日志
| |-- access.log
| |-- error.log
| `-- nginx.pid
|-- proxy_temp #臨時目錄
|-- sbin Nginx指令目錄
| `-- nginx 啟動指令
|-- scgi_temp #臨時目錄
`-- uwsgi_temp #臨時目錄
通過指令将nginx配置檔案精簡化顯示(去掉#注釋和空行的内容):
egrep -v "#|^$" nginx.conf.default >nginx.conf
worker_processes 1; #worker程序的數量
events { #事件區塊的開始
worker_connections 1024; #每個worker程序支援的最大連接配接數
} #事件區塊的結束
http { #http區塊的開始
include mime.types; #nginx支援的媒體類型庫檔案
default_type application/octet-stream; #預設的媒體類型
sendfile on; #開啟高效傳輸模式
keepalive_timeout 65; #連接配接逾時
server { #第一個server區塊開始,表示一個獨虛拟主機站點
listen 80; #服務端口,預設80
server_name localhost; #提供服務的域名主機名
location / { #第一個location區塊開始
root html; #站點的根目錄,相當于Nginx的安裝目錄
index index.html index.htm; #預設的首頁檔案,如果多個用空格分開
} #第一個location區塊結束
error_page 500 502 503 504 /50x.html; #出現對象http狀态碼時使用50x.html回應使用者
location = /50x.html {
root html;
}
}
} #http區塊結束
狀态碼
較長的描述說明
200-OK
伺服器成功傳回網頁,這是成功的狀态碼
301-Moved Permanently
永久跳轉,所請求的網頁将永久跳轉到被設定的新位置
403-Forbidden
禁止通路,雖然這個請求時合法的,但是伺服器端因為比對了預先設定的規則而拒絕相應用戶端的請求,此類問題一般為伺服器或伺服器權限配置不當所緻
404-Not Found
伺服器找不到用戶端請求的指定頁面,可能是用戶端請求了伺服器上不存在的資源所導緻
500-Internal Server Error
内部伺服器錯誤,伺服器遇到了意料不到的情況,不能完成客戶的請求,這是一個較為籠統的報錯,一般為伺服器的設定或内部程式問題導緻
502-Bad Gateway
壞的網關,一般是代理伺服器請求後端服務時,後端服務不可用或沒有完成相應網關伺服器,這通常為反向代理伺服器下面的節點出問題導緻
503-Service Unavailable
服務目前不可用,可能是伺服器超載或停機維護導緻的,或者是反向代理沒有可以提供的服務節點
504-Gateway Timeout
網關逾時,一般是網關代理伺服器請求後端服務時,後端服務沒有在特定的時間内完成處理請求,多數是伺服器過載導緻沒有在指定的時間内傳回資料給前端代理伺服器
所有的努力都值得期許,每一份夢想都應該灌溉!