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
3、Linux系統文件在window系統操作設置如下:
打開notepad++,插件》nppftp》show nppftp window
4、Nginx配置不同虛擬主機
第一種:通過不同端口配置配置不同虛擬主機:
./nginx -s reload
如果虛擬機訪問不到的原因:
第二種:通過不同域名配置不同虛擬主機:
修改hosts配置默認路徑C:\Windows\System32\drivers\etc
注意:hosts配置設置不一定立即生效的,可能需要重啓
Nginx.Conf設置如圖:
訪問網頁如圖:
圖1
圖2
5、Nginx反向代理與配置負載均衡
注意: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