首页 > 代码库 > nginx的优化

nginx的优化

           Nginx反向代理服务器优化

Nginx是一款轻量级的网页服务器、反向代理器以及电子邮件代理服务器

优点:稳定性好,功能集多,资源消耗少

特点跨平台,配置异常简单,非阻塞、高并发连接,事件驱动,Master/Worker结构:一个master进程,生成一个或多个worker进程,内存消耗小,内置的健康检查功能,节省带宽,稳定性高

正向代理: 用于代理内部网络对Internet的连接请求(如VPN/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修改版本等信息
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版本号


本文出自 “youyou” 博客,转载请与作者联系!

nginx的优化