Nginx

        Nginx是一款輕量級的Web服務器/反向代理服務器,相比於傳統的Web服務器Apache,Nginx佔用的內存和資源更少,配置更簡單,同時由於Nginx是異步非阻塞型的(多個鏈接(萬級別)能夠對應一個進程),在高併發下,它能保持低資源低消耗高性能,能支持高達50,000個併發鏈接數的響應。html

        Nginx的一個強大特性是它提供負載均衡策略,Nginx的負載策略能夠分爲內置策略和擴展策略,內置策略就是默認編譯到Nginx內核中如:加權輪詢和ip hash ;擴展策略就是須要在編譯內核時添加的策略如:fair,通用hash,consistent hash等。linux

        Nginx做爲負載均衡使用,由於是直接工做在網絡的7層——應用層上,因此它的正則規則更爲的強大和靈活,同時它對網絡穩定性依賴性不像Lvs那麼高,理論上只要能ping的通就可以進行負載功能。並且Nginx的安裝和配置也比較簡單,它基本上能把錯誤以日誌的形式顯示出來,這一點不像Lvs那樣配置和檢測都比較麻煩。nginx

        Nginx能夠經過端口檢測到服務器內部的故障,好比根據服務器處理網頁返回的狀態碼、超時等等,而且會把返回錯誤的請求從新提交到另外一個節點,不過其中缺點就是不支持url來檢測。好比用戶正在上傳一個文件,而處理該上傳的節點恰好在上傳過程當中出現故障,Nginx會把上傳切到另外一臺服務器從新處理。web

        此外Nginx做爲Web的反向代理緩存也愈來愈成熟了,速度比傳統的Squid服務器更加快速,同時Nginx也可做爲靜態網頁和圖片服務器,這方面的性能也無對手。還有Nginx社區很是活躍,第三方模塊也不少。vim

下面是Nginx的一些簡單配置。
後端

解壓nginx源碼包緩存

tar zxf nginx-1.9.14.tar.gz 
cd nginx-1.9.14

解決依賴性:bash

yum install pcre-devel openssl-devel -y

編譯:指定源碼包和加入ssl加密模塊和監控模塊服務器

./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module
make && make install

添加nginx用戶網絡

useradd -s /sbin/nologin  nginx
usermod -d /usr/local/lnmp/nginx/ nginx

修改.bash_profile 文件改變nginx的PATH變量的值

vim ~/.bash_profile 
    PATH=$PATH:$HOME/bin:/usr/local/lnmp/nginx/sbin
source ~/.bash_profile

更改nginx配置文件

vim /usr/local/lnmp/nginx/conf/nginx.conf
  user  nginx;   
  worker_processes  4; #要開啓的工做進程數,
  events {
        use epoll;   #設定事件處理機制
    worker_connections  4096; #設定併發數,數值越大則併發數越高
  }
nginx -t  #監測配置文件正確與否

wKiom1dr5GTTbthLAABbJVUlAEM282.png-wh_50

配置正常就能夠輸入nginx命令來開啓nginx了

開啓nginx以後就能夠用web訪問了它的端口和Apache同樣也是80

wKioL1dr5KPSkWwZAACD2qxDMU8886.png-wh_50

添加ssl加密證書:

vim /usr/local/lnmp/nginx/conf/nginx.conf
    server {
        listen       443 ssl;
        server_name  server2.example.com;

        ssl_certificate      cert.pem;
        ssl_certificate_key  cert.pem;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            root   html;
            index  index.html index.htm;
        }
     }

生成本身的證書:

cd /etc/pki/tls/certs
make cert.pem
cp cert.pem /usr/local/lnmp/nginx/conf/
nginx -t
nginx -s reload

製做證書的過程:

wKioL1dr5NuyPUTeAAGVq-Ps5GQ024.png-wh_50

能夠登陸網站測試一下了:

wKiom1dr5NzRVpPpAADP3PDb4XE510.png-wh_50

wKiom1dr5NzyPgo4AAD8z-zgPRQ590.png-wh_50

添加虛擬主機:

vim /usr/local/lnmp/nginx/conf/nginx.conf

在http{}之間添加

server {
         listen 80;
         server_name www.westos.com; #虛擬主機的域名訪問時要有解析
         location / {
         root  /westos;    #虛擬主機的Web目錄  
        index index.html;
}
}
server {
    listen 80;
    server_name www.linux.com;
    location / {
    root  /linux;         
    index index.html;
}
}

nginx  -t

nginx -s reload

能夠經過訪問虛擬主機的域名來瀏覽虛擬主機的網頁了:


wKioL1dr5lPyIAOSAAAwOGnfbsM641.png-wh_50

wKiom1dr5w6DZWeAAAAtoHv7TgI090.png-wh_50


nginx的負載均衡:

vim /usr/local/lnmp/nginx/conf/nginx.conf

在http{}之間添加

 server {
    listen 80;
    server_name www.example.com;
    location / {
          proxy_pass http://example; #設置轉發路徑當訪問www.example.com時將訪問到後端另外兩臺服務器
     }

  }
        upstream  example {   #實現負載均衡默認爲輪詢 
         server 172.25.9.3:80; 
        server 172.25.9.4:80;
}

經過訪問www.example.com能夠訪問到後端兩臺web服務器的網頁了:

wKioL1dr50iyXgl9AAA2uGsPd9w789.png-wh_50

wKiom1dr50igwAAfAAA8IzWesHw441.png-wh_50

相關文章
相關標籤/搜索