title: nginx配置負載均衡
date: 2016-04-19
categories: nginx
tags: ngixn
---html
nginx是一種提供負載均衡和反向代理的服務器,另外一種服務器Apache也提供了這個功能。tomcat jetty是叫作應用服務,負責應用程序的部署,而nginx和apache 主要做爲網絡服務器,負責負載均衡和反向代理。java
負載均衡 :同時有n個用戶訪問服務器時,爲了減輕服務器壓力,將用戶分別引入到分佈式集羣中的各個服務器,從而分擔各個服務器的壓力。nginx
反向代理 :介紹反向代理以前先說一下正向代理c++
正向代理 : 用戶a向服務器A訪問資源,但因爲某種緣由用戶a不能直接訪問服務器A,且剛好a能夠訪問的服務器B,且B能夠訪問服務器A,則用戶a能夠經過服務器B訪問服務器A,這就是正向代理,其中B就是代理服務器。apache
反向代理 : 經過第三方服務器(好比nginx)訪問服務器集羣中的內容(爲了保證狀態一致性,服務器中的各個機器上內容同樣),這個第三方服務器就叫作反向代理。ubuntu
在正向代理中,用戶明確知道數據在哪裏,即有一條明確的到達資源的路徑,而在反向代理中,用戶不肯定所要得到的資源到底來自那一臺服務器,只知道到達第三方的路徑。centos
nginx就是一款經過反向代理 實現負載均衡服務器(Apache服務器提供了相似的功能),用戶首先訪問nginx,而後nginx從服務器集羣中選擇一臺壓力較小的服務器,而後將訪問指向該機器。若服務器集羣中某臺機器宕機,則將該服務器從待選列表中刪除。tomcat
爲保證負載均衡內容的一致性,集羣中各個機器上的內容是同樣的,故Api能夠部署在多個不一樣的機器上,一般後臺會有多個tomcat做爲應用服務器,而將nginx做爲反向代理來實現負載均衡。安全
與Apach相比,nginx支持高併發,內存消耗低,部署簡單。服務器
以在centos/ubuntu 上安裝nginx爲例 :
cd /home mkdir nginx # nginx安裝目錄 tar -zxvf nginx-x.x.x.tar.gz ./configure 這裏可能會報找不到 pcre zlibdeng 建議先安裝 gcc zlib pcre sudo apt-get install -y pcre pcre-devel openssl openssl-devel sudo apt-get install -y gcc gcc-c++ autoconf automake sudo apt-get install -y zlib zlib-devel 安裝完上面的包後 而後configure make make install
安裝完測試 :
cd /usr/local ls 在該目錄下發現多了一個nginx目錄則說明安裝成功 進入該目錄 ,下面有4個目錄 : conf : 配置文件 html :首頁 logs :日誌 sbin :命令行工具 ,該目錄下的 nginx命令能夠啓動nginx
啓動 nginx
/usr/local/nginx/sbin/nginx -t # 驗證配置文件是否正確 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf # 啓動並加載配置文件 加載這個默認的配置文件也能夠 也能夠直接運行nginx命令 ./nginx 當修改l這個默認的配置文件後 不用重啓,只須要 : ./nginx -t ./nginx -s reload
啓動格式
./nginx -c nginx配置文件地址 (默認在conf/nginx.conf)
方式1 從容中止 : 安全地中止
kill -QUIT nginx進程號
查看nginx進程號 :ps -ef |grep nginx
master process:主進程號,只須要中止該進程號便可。
方式2 :快速中止
kill -TERM nginx進程號 或者 kill -INT nginx進程號
方式3 :強制中止
killall -9 nginx 或者 pkill -9 nginx
當修改了配置文件時,須要重啓nginx才能生效。
驗證配置文件
./nginx -t 或者 ./nginx -t -c nginx配置文件地址
重啓:
./nginx -s reload 或者 kill -HUP nginx主進程號
-HUP : 發送信號重啓
在nginx服務器中,一般都是通多對其發送一些控制信號進行控制,下面是一些常見的控制信號 :
HUP :重啓 QUIT/INT : 從容關閉 TERM:快速關閉 USRI:切換日誌文件 USR2:平滑升級(在不影響舊進程的狀況下升級nginx) WINCH:從容關閉工做進程