什麼是nginx
Nginx是一款高性能的http 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器。官方測試nginx能夠支支撐5萬併發鏈接,並且cpu、內存等資源消耗卻非常低,運行非常穩定。
-
nginx安裝
-
下載
-
進入http://nginx.org/en/download.html 下載nginx1.8.0版本(當前最新穩定版本)。
-
編譯安裝
將nginx-1.8.0.tar.gz拷貝至linux服務器。
解壓:
tar -zxvf nginx-1.8.0.tar.gz
cd nginx-1.8.0
-
configure
./configure --help查詢詳細參數(參考本教程附錄部分:nginx編譯參數)
參數設置如下:
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
注意:上邊將臨時文件目錄指定爲/var/temp/nginx,需要在/var下創建temp及nginx目錄
mkdir -p /var/temp/nginx
-
編譯安裝
make
make install
安裝成功查看安裝目錄 :
-
-
啓動nginx
-
cd /usr/local/nginx/sbin/
./nginx
查詢nginx進程:
15098是nginx主進程的進程id,15099是nginx工作進程的進程id
注意:執行./nginx啓動nginx,這裏可以-c指定加載的nginx配置文件,如下:
./nginx -c /usr/local/nginx/conf/nginx.conf
如果不指定-c,nginx在啓動時默認加載conf/nginx.conf文件,此文件的地址也可以在編譯安裝nginx時指定./configure的參數(--conf-path= 指向配置文件(nginx.conf))
-
停止nginx
方式1,快速停止:
cd /usr/local/nginx/sbin
./nginx -s stop
此方式相當於先查出nginx進程id再使用kill命令強制殺掉進程。
方式2,完整停止(建議使用):
cd /usr/local/nginx/sbin
./nginx -s quit
此方式停止步驟是待nginx進程處理任務完畢進行停止。
-
重啓nginx
方式1,先停止再啓動(建議使用):
對nginx進行重啓相當於先停止nginx再啓動nginx,即先執行停止命令再執行啓動命令。
如下:
./nginx -s quit
./nginx
方式2,重新加載配置文件:
當nginx的配置文件nginx.conf修改後,要想讓配置生效需要重啓nginx,使用-s reload不用先停止nginx再啓動nginx即可將配置信息在nginx中生效,如下:
./nginx -s reload
-
安裝測試
nginx安裝成功,啓動nginx,即可訪問虛擬機上的nginx:
-
什麼是反向代理
通常的代理服務器,只用於代理內部網絡對Internet的連接請求,客戶機必須指定代理服務器,並將本來要直接發送到Web服務器上的http請求發送到代理服務器中由代理服務器向Internet上的web服務器發起請求,最終達到客戶機上網的目的。
而反向代理(Reverse Proxy)方式是指以代理服務器來接受internet上的連接請求,然後將請求轉發給內部網絡上的服務器,並將從服務器上得到的結果返回給internet上請求連接的客戶端,此時代理服務器對外就表現爲一個反向代理服務器。
-
nginx+tomcat反向代理
-
需求
-
兩個tomcat服務通過nginx反向代理,本例子使用三臺虛擬機進行測試,
nginx服務器:192.168.101.3
tomcat1服務器:192.168.101.5
tomcat2服務器:192.168.101.6
如下圖:
啓動tomcat
tomcat使用apache-tomcat-7.0.57版本,在192.168.101.5和192.168.101.6虛擬機上啓動tomcat。
nginx反向代理配置
根據上邊的需求在nginx.conf文件中配置反向代理,如下:
#配置一個代理即tomcat1服務器
upstream tomcat_server1 {
server 192.168.101.5:8080;
}
#配置一個代理即tomcat2服務器
upstream tomcat_server2 {
server 192.168.101.6:8080;
}
#配置一個虛擬主機
server {
listen 80;
server_name aaa.test.com;
location / {
#域名aaa.test.com的請求全部轉發到tomcat_server1即tomcat1服務上
proxy_pass http://tomcat_server1;
#歡迎頁面,按照從左到右的順序查找頁面
index index.jsp index.html index.htm;
}
}
server {
listen 80;
server_name bbb.test.com;
location / {
#域名bbb.test.com的請求全部轉發到tomcat_server2即tomcat2服務上
proxy_pass http://tomcat_server2;
index index.jsp index.html index.htm;
}
}
分別訪問aaa.test.com、bbb.test.com測試反向代理。
請求訪問aaa.test.com通過nginx代理訪問tomcat1,請求訪問bbb.test.com通過nginx代理訪問tomcat2。
-
負載均衡
-
什麼是負載均衡
-
負載均衡 建立在現有網絡結構之上,它提供了一種廉價有效透明的方法擴展網絡設備和服務器的帶寬、增加吞吐量、加強網絡數據處理能力、提高網絡的靈活性和可用性。
負載均衡,英文名稱爲Load Balance,其意思就是分攤到多個操作單元上進行執行,例如Web服務器、FTP服務器、企業關鍵應用服務器和其它關鍵任務服務器等,從而共同完成工作任務。
-
nginx實現負載均衡
-
需求
-
nginx作爲負載均衡服務器,用戶請求先到達nginx,再由nginx根據負載配置將請求轉發至 tomcat服務器。
nginx負載均衡服務器:192.168.101.3
tomcat1服務器:192.168.101.5
tomcat2服務器:192.168.101.6
配置
根據上邊的需求在nginx.conf文件中配置負載均衡,如下:
upstream tomcat_server_pool{
server 192.168.101.5:8080 weight=10;
server 192.168.101.6:8080 weight=10;
}
server {
listen 80;
server_name aaa.test.com;
location / {
proxy_pass http://tomcat_server_pool;
index index.jsp index.html index.htm;
}
}
測試
請求aaa.test.com,通過nginx負載均衡,將請求轉發到tomcat服務器。
通過觀察tomcat的訪問日誌或tomcat訪問頁面即可知道當前請求由哪個tomcat服務器受理。
-
nginx負載均衡高可用
-
什麼是負載均衡高可用
-
nginx作爲負載均衡器,所有請求都到了nginx,可見nginx處於非常重點的位置,如果nginx服務器宕機後端web服務將無法提供服務,影響嚴重。
爲了屏蔽負載均衡服務器的宕機,需要建立一個備份機。主服務器和備份機上都運行高可用(High Availability)監控程序,通過傳送諸如“I am alive”這樣的信息來監控對方的運行狀況。當備份機不能在一定的時間內收到這樣的信息時,它就接管主服務器的服務IP並繼續提供負載均衡服務;當備份管理器又從主管理器收到“I am alive”這樣的信息時,它就釋放服務IP地址,這樣的主服務器就開始再次提供負載均衡服務。
-
keepalived+nginx實現主備
-
什麼是keepalived