nginx的優化

           Nginx反向代理服務器優化

Nginx是一款輕量級的網頁服務器、反向代理器以及電子郵件代理服務器

優點:穩定性好,功能集多,資源消耗少

特點跨平臺,配置異常簡單,非阻塞、高併發連接,事件驅動,Master/Worker結構:一個master進程,生成一個或多個worker進程,內存消耗小,內置的健康檢查功能,節省帶寬,穩定性高

正向代理: 用於代理內部網絡對Internet的連接請求(如***/NAT)

反向代理: 與正向代理相反,如果局域網向Internet提供資源,並讓Internet上的其他用戶可以訪問局域網內資源, 也可以設置一個代理服務器, 它提供的服務就是反向代理.

 

nginx反向代理:Web服務器的調度器

1.反向代理(ReverseProxy)方式是指以代理服務器來接受客戶端的連接請求,然後將請求轉發給網絡上的web服務器

2.反向代理的作用:

保護網站安全:任何來自Internet的請求都必須先經過代理服務器

通過配置緩存功能加速Web請求:可以緩存真實Web服務器上的某些靜態資源,減輕真實Web服務器的負載壓力

實現負載均衡:充當負載均衡服務器均衡地分發請求,平衡集羣中各個服務器的負載壓力

 

Nginx+apache構築Web服務器集羣的負載均衡

安裝zlib-devel、pcre-devel等依賴包

yum -y install gcc gcc-c++  make   libtoolzlib zlib-devel pcre pcre-devel openssl openssl-devel

安裝nginx

添加www組   創建nginx運行賬戶www並加入到www組,不允許www用戶直接登錄系統


wKiom1jwiSLzqnELAAAQailPgGI194.png-wh_50

解壓包

wKioL1jwiTji_ySVAAAWFmS1nHE475.png-wh_50

編譯安裝nginx

wKioL1jwiVTwk7LvAABJZMHRQ-U749.png-wh_50

優化nginx程序的執行路徑

wKiom1jwiXKjG6L8AAA8htZQIOo550.png-wh_50

出現報錯信息(提示沒有那個文件 ,需手動創建)

再一次執行就會成功

wKioL1jwiYejgCwnAAAvvzOkeMk252.png-wh_50

編寫nginx服務腳本:

vi /etc/init.d/nginx

#!/bin/bash

# chkconfig: 2345 99 20

# description: Nginx Service ControlScript

PROG="/usr/local/nginx1.10/sbin/nginx"

PIDF="/usr/local/nginx1.10/logs/nginx.pid"

case "$1" in

start)

netstat -anplt |grep ":80"&> /dev/null &&pgrep "nginx" &> /dev/null

if [ $? -eq0 ]

then

echo "Nginx service alreadyrunning."

else

    $PROG -t &> /dev/null

if [ $? -eq0 ] ; then

      $PROG

echo "Nginx service startsuccess."

else

    $PROG -t

fi

fi

  ;;

stop)

netstat -anplt |grep ":80"&> /dev/null &&pgrep "nginx" &> /dev/null

if [ $? -eq0 ]

then

kill -s QUIT $(cat $PIDF)

echo "Nginx service stopsuccess."

else

echo "Nginx service alreadystop"

fi

  ;;

restart)

   $0 stop

   $0 start

   ;;

status)

netstat -anplt |grep ":80"&> /dev/null &&pgrep "nginx" &> /dev/null

if [ $? -eq0 ]

then

echo "Nginx service isrunning."

else

echo "Nginx is stop."

fi

 ;;

reload)

netstat -anplt |grep ":80"&> /dev/null &&pgrep "nginx" &> /dev/null

if [ $? -eq0 ]

then

   $PROG -t &> /dev/null

if [ $? -eq0 ] ; then

kill -s HUP $(cat $PIDF)

echo "reload Nginx configsuccess."

else

     $PROG -t

fi

else

echo "Nginx service is notrun."

fi

   ;;

 *)

echo "Usage: $0{start|stop|restart|reload}"

exit 1

esac

給執行權限並啓動nginx服務

wKiom1jwifLBB4wuAABJfQ6iA0o485.png-wh_50

查看nginx加載的模塊

wKioL1jwihXCRmslAABgen7E5Eo583.png-wh_50

在apache上安裝http服務,並創建測試頁

客戶端訪問 第一次不是緩存

wKioL1jwijPS8K_RAAGr3JNFdJE585.png-wh_50

刷新訪問 查看一下就是緩存了

wKioL1jwilnBBrBTAAEY9boPi4k878.png-wh_50

若只有一臺客戶端要驗證負載均衡和健康檢查可以先關掉緩存功能和保持session會話

#proxy_bufferingoff;

#sticky

訪問第一次出現的是第一臺apache

wKiom1jwipTw9MxxAAAqls7fSVQ298.png-wh_50

第二次就是第二臺apache

wKioL1jwiquBSWDEAAAgBflVOb8754.png-wh_50

擴展知識1
nginx修改版本等信息
1vi /usr/local/src/nginx-1.0.12/src/core/nginx.h   #編譯前編輯
#define nginx_version
#define NGINX_VERSION
#define NGINX_VER
#define NGINX_VAR
修改上面的信息,即可更改nginx顯示版本。
2vi/usr/local/src/nginx-1.0.12/src/http/ngx_http_special_response.c   #編譯前編輯
static u_charngx_http_error_full_tail[] =
static u_charngx_http_error_tail[] =
修改上面的信息爲你自己的。
3vi/usr/local/src/nginx-1.0.12/src/http/ngx_http_header_filter_module.c   #編譯前編輯
static char ngx_http_server_string[]=
修改上面的信息爲你自己的。
4、編譯完成之後,修改/usr/local/nginx/conf目錄下面
fastcgi.conffastcgi.conf.defaultfastcgi_paramsfastcgi_params.default
這四個文件裏面的版本名稱
/usr/local/nginx/sbin/nginx -V  #查看nginx版本號


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