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用戶直接登錄系統
解壓包
編譯安裝nginx
優化nginx程序的執行路徑
出現報錯信息(提示沒有那個文件 ,需手動創建)
再一次執行就會成功
編寫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服務
查看nginx加載的模塊
在apache上安裝http服務,並創建測試頁
客戶端訪問 第一次不是緩存
刷新訪問 查看一下就是緩存了
若只有一臺客戶端要驗證負載均衡和健康檢查可以先關掉緩存功能和保持session會話
#proxy_bufferingoff;
#sticky
訪問第一次出現的是第一臺apache
第二次就是第二臺apache
擴展知識1:
nginx修改版本等信息
1、vi /usr/local/src/nginx-1.0.12/src/core/nginx.h #編譯前編輯
#define nginx_version
#define NGINX_VERSION
#define NGINX_VER
#define NGINX_VAR
修改上面的信息,即可更改nginx顯示版本。
2、vi/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[] =
修改上面的信息爲你自己的。
3、vi/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.conf、fastcgi.conf.default、fastcgi_params、fastcgi_params.default
這四個文件裏面的版本名稱
/usr/local/nginx/sbin/nginx -V #查看nginx版本號