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修改版本等信息
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版本号