1. 程式人生 > >Nginx安裝部署及代理配置

Nginx安裝部署及代理配置

一、Nginx

1、是什麼

Nginx是一款基於c語言的高效能的http伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器。由俄羅斯的程式設計師Igor Sysoev開發,官方測試Nginx能夠支撐5萬併發連結,並且cpu、記憶體等資源消耗非常低,執行非常穩定。

2、應用場景

(1)http伺服器。Nginx可以獨立提供http服務,可以做網頁靜態伺服器。

(2)虛擬主機。可以實現在一臺伺服器虛擬出多個網站,例如個人網站使用的虛擬主機。

(3)反向代理,負載均衡。當網站的訪問量達到一定程度,單臺伺服器不能滿足使用者的請求時,需要用多臺伺服器建立叢集,這時可以使用Nginx做反向代理。多臺伺服器可以平均分擔負載,不會因為某臺伺服器負載高宕機而某臺伺服器閒置的情況。

二、安裝

1、安裝Nginx依賴包

(1)yum install gcc-c++

安裝Nginx需要先將官網下載的原始碼進行編譯,編譯依賴gcc環境。

(2)yum install -y pcre pcre-devel

PCRE(Perl Compatible Regular Expressions)是一個Perl庫,包括perl相容的正則表示式庫。Nginx的http模組使用pcre來解析正則表示式。

(3)yum install -y zlib zlib-devel

zlib庫提供了很多種壓縮和解壓縮的方式,Nginx使用zlib對http包的內容進行gzip。

(4)yum install -y openssl openssl-devel

OpenSSL是一個強大的安全套接字層密碼庫,囊括主要的密碼演算法、常用的金鑰和證書封裝管理功能及SSL協議,並提供豐富的應用程式供測試或其它目的使用。Nginx不僅支援http協議,還支援https(在ssl協議上傳輸http),所以需要安裝openssl庫。

2、安裝JDK

3、安裝Nginx

(1)下載並解壓nginx-1.14.0.tar。

(2)進行configure:

./configure \
--prefix=/home/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目錄

(3)執行make

(4)執行make install

4、啟停

(1)啟動:

sbin目錄下:./nginx。如果訪問不到,首先檢視防火牆是否關閉。

(2)、關閉:

./nginx -s stop

(3)、重新整理配置:

./nginx -s reload

三、訪問配置

1、通過埠區分虛擬機器

在nginx.conf中新增一個server節點,修改埠號即可:

2、通過域名區分虛擬機器

(1)修改hosts檔案指定域名的ip地址(hosts檔案的位置:C:\Windows\System32\drivers\etc):

(2)配置基於域名的虛擬主機:

server {
    listen       80;
    server_name  www.wind.com;
    location / {
        root   html-test;
        index  index.html index.htm;
    }
}

修改配置後需要重新載入配置檔案。

四、反向代理

使用一臺虛擬機器,安裝一個nginx,多個Tomcat,來模擬。

upstream tomcats{
    server 127.0.0.1:8080  weight=1; 
    server 127.0.0.1:8081  weight=2;
    ip_hash;
}
//負載均衡:weight代表權重,權重越高,分配請求的數量就越多,預設是1,
ip_hash規定同一主機請求對映到同一伺服器。

server {
    listen    80;
    server_name  www.wind.com;
    location / {
        proxy_pass   http://tomcats;
        index  index.html index.htm;
    }
}