Nginx是一個高效能的HTTP和反向代理web伺服器,同時也提供了IMAP/POP3/SMTP服務。Nginx是由伊戈爾·賽索耶夫為俄羅斯存取量第二的Rambler.ru站點開發的,第一個公開版本0.1.0釋出於2004年10月4日。
其將原始碼以類BSD許可證的形式釋出,因它的穩定性、豐富的功能集、簡單的組態檔和低系統資源的消耗而聞名。
Nginx是一款輕量級的web伺服器及電子郵件(IMAP/POP3)代理伺服器,在BSD-like協定下發行。其特點是佔有記憶體少,並行能力強,事實上Nginx的並行能力在同型別的網頁伺服器中表現較好,中國大陸使用Nginx網站使用者有:阿里、百度、京東、新浪、網易、騰訊等。
Nginx可以作為靜態頁面的web伺服器,同時還提供CGI協定的動態語言,比如perl、php等。但是不支援java。Java只能通過與tomcat配合完成。Nginx專為效能優化而開發,效能是起最重要的考量,實現上非常注重效率,能經受高負載的考研,有報告表明能支援高達50000個並行連線數。
正向代理介紹
如果把區域網外的Internet想象成一個巨大的資源庫,則區域網中的使用者端要存取Internet,則需要通過代理伺服器來存取,這種代理服務就稱為正向代理。
使用者端對代理是無感知的,因為使用者端不需要任何設定就可以存取,我們只需要將請求傳送到反向代理伺服器,由反向代理伺服器去選擇目標伺服器獲取資料,再返回給使用者端,此時反向代理伺服器和目標伺服器對外就是一個伺服器,暴露的是代理伺服器地址,隱藏了真實伺服器IP地址。
單個伺服器解決不了,我們增加伺服器的數量,然後將請求分發到各個伺服器上,將原先請求集中到單個伺服器上的情況改為將請求分發到多個伺服器上,這就是負載均衡。
為了加快網站的解析速度,可以把動態頁面和靜態頁面由不同的伺服器來解析,加快解析速度,降低原來單個伺服器的壓力。
啟動程式碼格式:nginx安裝目錄地址 -c nginx組態檔地址
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
(1)檢視程序號
ps -ef|grep nginx
(2)殺死程序
kill -QUIT 2072
(1)檢視程序號
ps -ef|grep nginx
(2)殺死程序
kill -TERM 2132
pkill -9 nginx
(1)驗證nginx組態檔是否正確
方法一:進入nginx安裝目錄sbin下,輸入命令./nginx -t
看到如下顯示nginx.conf syntax is ok
nginx.conf test is successful
方法二:在啟動命令-c前加-t
/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
方法一:進入nginx可執行目錄sbin下,輸入命令./nginx -s reload 即可
方法二:查詢當前nginx程序號,然後輸入命令:kill -HUP 程序號 實現重新啟動nginx服務
cd /usr/local/nginx/conf/nginx.conf
開啟瀏覽器,在瀏覽器位址列輸入地址 www.123.com,跳轉到 liunx 系統 tomcat 主頁面中
(1)新增內容在 host 檔案中
192.168.17.129 www.123.com
第二步 在 nginx 進行請求轉發的設定(反向代理設定)
server{
listen:80;
server_name 192.168.100.1;
location / {
root html;
proxy pass http://127.0.0.1:8080;
index index.html index.htm;
}
}
worker 數和伺服器的 cpu 數相等是最為適宜的。
第一個:傳送請求,佔用了 woker 的幾個連線數? 答案:2 或者 4 個;
第二個:nginx 有一個 master,有四個 woker,每個 woker 支援最大的連線數 1024,支援的 最大並行數是多少?
普通的靜態存取最大並行數是: worker_connections * worker_processes /2;
而如果是 HTTP 作 為反向代理來說,
最大並行數量應該是 worker_connections * worker_processes/4;