前言html
nginx是一個開源的,支持高性能,高併發的www服務和代理服務軟件。它是一個俄羅斯人lgor sysoev開發的,做者將源代碼開源出來供全球使用。 nginx比它大哥apache性能改進許多,nginx佔用的系統資源更少,支持更高的併發鏈接,有更高的訪問效率。 nginx不可是一個優秀的web服務軟件,還能夠做爲反向代理,負載均衡,以及緩存服務使用。 安裝更爲簡單,方便,靈活。 nginx能夠說是很是nb了
Tenginepython
Tengine是由淘寶網發起的Web服務器項目。它在Nginx的基礎上,針對大訪問量網站的需求,添加了不少高級功能和特性。Tengine的性能和穩定性已經在大型的網站如淘寶網,天貓商城等獲得了很好的檢驗。它的最終目標是打造一個高效、穩定、安全、易用的Web平臺。nginx
安裝前須要安裝相關配置軟件算法
OpenSSL 是一個強大的安全套接字層密碼庫,囊括主要的密碼算法、經常使用的密鑰和證書封裝管理功能及 SSL 協議,並提供豐富的應用程序供測試或其它目的使用。
nginx 不只支持 http 協議,還支持 https(即在ssl協議上傳輸http),因此須要在 Centos 安裝 OpenSSL 庫。sql
yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y
下載源碼包,注意版本號,可先在官網查看apache
wget -c https://nginx.org/download/nginx-1.12.0.tar.gz
解壓源碼源vim
tar -zxvf nginx-1.12.0.tar.gz
ls查看解壓後的文件centos
ls # 進入該文件 cd niginx-1.12.0 # 查看是否有Makefile 這裏是沒有的,因此要進行編譯
編譯,開啓nginx狀態監測功能瀏覽器
./configure --prefix=/opt/nginx1-12/ --with-http_ssl_module --with-http_stub_status_module
編譯完後該目錄中會生成一個Makefile文件
安裝
make && make install
啓動
先查看安裝的位置,我是安裝在/opt/ tree /opt/nginx1-12 # 啓動 /opt/nginx1-12/sbin/nginx
關閉重啓
./nginx -s stop #關閉 ./nginx -s reload #平滑重啓 ,修改了nginx.conf以後,能夠不重啓服務,加載新的配置
加入到PATH變量中
vim /etc/profile # 在尾添加 PATH=$PATH:/opt/nginx1-12/sbin/ # 保存退出 # 讀取該文件 source /etc/profile
詳見博客:http://www.javashuo.com/article/p-dwgikfoj-gr.html
關鍵參數
機器1中內的均衡池
# 均衡池 upstream nginx_pools { server 192.168.11.37 weight=10; server 192.168.11.167 ; } # 反向代理 proxy_pass http://nginx_pools;
機器2內關鍵參數就直接鏈接網頁
nginx負載均衡的配置 1.實驗以下 準備三臺機器 機器1 nginx負載均衡器(發牌的荷官) 192.168.11.158 nginx.conf配置以下 #定義nginx負載均衡池,裏面默認是輪訓算法 #也能夠用weight 權重算法 #也能夠用ip_hash 算法 upstream nginx_pools { server 192.168.11.37 weight=10; server 192.168.11.167 ; } server { listen 80; server_name 192.168.11.158; #charset koi8-r; #access_log logs/host.access.log main; #在這裏進行反向代理配置 #192.168.11.158/ location / { proxy_pass http://nginx_pools; } } 機器2 準備nginx 返回頁面數據 192.168.11.37 nginx.conf配置以下 server { listen 80; server_name 192.168.11.37; location / { root /opt/jd; index index.html index.htm; } error_page 404 /40x.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } 機器3 也準備nginx 返回頁面數據 192.168.11.167 server { listen 80; server_name 192.168.11.167; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; }
遇到瀏覽器訪問失敗,而本地鏈接卻沒問題,檢查防火牆是否關閉
centos7默認已經使用firewall做爲防火牆了 1.關閉防火牆 systemctl status firewalld #查看防火牆狀態 systemctl stop firewalld #關閉防火牆 systemctl disable firewalld#關閉防火牆開機啓動 systemctl is-enabled firewalld.service#檢查防火牆是否啓動