Nginx架構安裝反向代理與負載均衡

Nginx架構

1、 什麼是 nginx

Nginx 是一款高性能的 http 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器。由俄羅斯的程序設計師 Igor Sysoev 所開發,官方測試 nginx 能夠支支撐 5 萬併發鏈接,並且 cpu、內存等資源消耗卻非常低,運行非常穩定。

2. 應用場景

A)http 服務器。Nginx 是一個 http 服務可以獨立提供 http 服務。可以做網頁靜態服務器。

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

C)反向代理,負載均衡。當網站的訪問量達到一定程度後,單臺服務器不能滿足用戶的請求時,需要用多臺服務器集羣可以使用 nginx 做反向代理。並且多臺服務器可以平均分擔負載,不會因爲某臺服務器負載高宕機而某臺服務器閒置的情況。

 

操作步驟:

1、         配置虛擬機

打開虛擬機克隆虛擬機如圖:

設置克隆虛擬機網卡

啓動克隆虛擬機

修改網卡地址及虛擬機IP地址:

vi/etc/sysconfig/network-scripts/ifcfg-eth0

清除原先網卡

vi /etc/udev/rules.d/70-persistent-net.rules

 

編輯完成,保存退出

然後重啓虛擬機 /etc/init.d/networkrestart

注意:連接工具連接不上,請查看虛擬機是否被禁用了,是的請開啓!

2 Nginx安裝

a) 要求的安裝環境

第一步:需要安裝 gcc 的環境。yum installgcc-c++

第二步:第三方的開發包。

l   PCRE

 PCRE(Perl Compatible Regular Expressions)是一個 Perl 庫,包括 perl 兼容的正則表達式

庫。nginx 的 http 模塊使用 pcre 來解析正則表達式,所以需要在 linux 上安裝 pcre 庫。

yum install -y pcre pcre-devel

注:pcre-devel 是使用 pcre 開發的一個二次開發庫。nginx 也需要此庫。

l   zlib

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

所以需要在 linux 上安裝 zlib 庫。

yum install -y zlib zlib-devel

 

l   openssl

 OpenSSL 是一個強大的安全套接字層密碼庫,囊括主要的密碼算法、常用的密鑰和證

書封裝管理功能及 SSL 協議,並提供豐富的應用程序供測試或其它目的使用。

 nginx 不僅支持 http 協議,還支持 https(即在 ssl 協議上傳輸 http),所以需要在 linux

安裝 openssl 庫。

yum install -y openssl openssl-devel

b) 安裝步驟

第一步:把 nginx 的源碼包上傳到 linux 系統

 

第二步:解壓縮

tar zxfnginx-1.8.0.tar.gz

 

 

第三步:進入 nginx 目錄使用 configure 命令創建makeFile安裝文件

 cdnginx-1.8.0

./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


 

第四步:注意:啓動 nginx之前,上邊將臨時文件目錄指定爲/var/temp/nginx,需要在/var 下創建 temp 及 nginx 目錄

 mkdir /var/temp/nginx/client -p

make

make install

 

啓動nginx如圖:

 

查看nginx是否啓動:

ps -ef | grep nginx

 

關閉防火牆:

service iptablesstop

 

測試登陸:

 

 

Nginx停止:

./nginx -s quit

 

 

3Linux系統文件在window系統操作設置如下:

打開notepad++,插件》nppftp》show nppftp window



 

 

 

 

 

 

4Nginx配置不同虛擬主機

第一種:通過不同端口配置配置不同虛擬主機:


./nginx -s reload

如果虛擬機訪問不到的原因:

 

第二種:通過不同域名配置不同虛擬主機:

修改hosts配置默認路徑C:\Windows\System32\drivers\etc


訪問www.igeekhome.com

注意:hosts配置設置不一定立即生效的,可能需要重啓

       Nginx.Conf設置如圖:

訪問網頁如圖:

圖1

 

 

 

圖2

 

5Nginx反向代理與配置負載均衡

注意:tomcat壓縮包需要純淨(用已經配置的tomcat可能有其他部分的設置影響)

創建多個服務器tomcat:

mkdir tomcats

cp -rapache-tomcat-7.0.57/ ./tomcats/tomcat8081

cp -rapache-tomcat-7.0.57/ ./tomcats/tomcat8082

cp -rapache-tomcat-7.0.57/ ./tomcats/tomcat8083

修改每個服務器tomcat的端口號:

Tomcat8081端口修改:


Tomcat8082端口修改:

Tomcat8083端口修改:

 

 

 

 

啓動服務器tomcat,配置批量服務器啓動文件

 


chmod u+xstart-all

./start-all.sh

 

訪問測試是否成功:





 

Nginx反向代理配置

       upstream tomcat0{

        server 192.168.243.137:8081;

       }

 

server {

        listen       80;

        server_name  www.igeekhome.com;

 

        location / {

           # root   html;

                     proxy_pass http://tomcat0;

            index  index.html index.htm;

        }

 

    }

 

 

 

 

Nginx負載均衡

upstream tomcat0{

        server 192.168.243.137:8081;

        server 192.168.243.137:8082;

        server 192.168.243.137:8083;

       }

 

server {

        listen       80;

        server_name  www.igeekhome.com;

 

        location / {

           # root   html;

                     proxy_pass http://tomcat0;

            index  index.html index.htm;

        }

 

    }

 

 

 

如果需要某臺服務器多承載點設置:

upstream tomcat0{

        server 192.168.243.137:8081;

        server 192.168.243.137:8082;

        server 192.168.243.137:8083 weight=3;

       }

測試:

第一次

刷新

刷新:

刷新:

注意:頁面訪問不了,請檢查是否啓動nginx以及是否啓動tomcat

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章