nginx proxy作为Nginx的重要功能,使用nginx proxy基本可以实现一个完整的7层负载均衡。
其特色如下:
1、功能强大,性能卓越,运行稳定。
2、配置简单灵活。
3、能够自动剔除工作不正常的后端服务器。
4、上传文件使用异步模式。
5、支持多种分配策略,可以分配权重,分配方式灵活
项目拓扑结构:
配置环境:
三台centos6.2X86
一台做Nginx Proxy
二台apache做页面测试服务器
配置步骤:
安装前要先解决包的依赖问题:pcre-devel openssl zlib-devel
一、安装nginx服务器
1、后台的web服务使用Apache,有关apache 配置的文章这里不多说,本文重点在配置nginx反向代理。
2、安装Nginx服务
3、修改nginx主配置文件,主配置文件路径:/usr/local/site/nginx/conf/nginx.conf,最好配置文件作下备份;
user www; 指定nginx的运行用户,
worker_processes 1; 指定线程,默认情况下Nginx是单线程运行,
#error_log logs/error.log; 日志模块
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid; //inx主进程ID
events {
use epoll; //inx的高效模式;
worker_connections 65535; //文件最大的连接数;
}
http {
include mime.types; //置文件模块;
default_type application/octet-stream; //核心配置文件模块;
sendfile on; //开启高效传输模式;
tcp_nopush on; //防止网络端口阻塞;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on; //开启压缩模块,需要注意的是在配置文件中开启之后是不生效的,还需要加载gzip模块
server {
listen 80; //监听的80端口
server_name proxy.rsyslog.net; //指定代理服务器的域名
location / {
root html; //配置文件所在的目录,这里是相对路径
index index.html index.htm; //页面文件的类型;
}
error_page 404 /404.html; //相关错误提示页面
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
重启服务,测试是否正常,links proxy.rsyslog.net 域名需要在dns服务器上配置正确。
Nginx支持不间断运行:
查看Nginx服务状态,确定正常之后我们来配置Nginx Proxy,查看Nginx端口
二、配置Nginx 反向代理服务器,反向代理服务器的配置如下;需要修改两个两个地方,在HTTP字段里面修改和Server字段中修改,在下图中只把需要添加的文件列出来即可。
如下是HTTP负载均衡模块upstream 指定设置一群服务器,服务器可以指定不同的权重,默认为1。Nginx支持5种方式的查询,
1、轮询 Nginx默认的查询方式
2、Weight 指定分配的轮询方式,根据后端服务器的性能来做权重,在此案例中我们使用这种方式来轮询的
3、Ip_hash 每个请求按照ip的hash结果分配,这样每个IP地址就可以固定的访问后端的一台服务器,解决了session的问题
4、Fair 第三方模块,这个原理是按照响应时间的优先来分配的,
5、url_hash 按照url的hash结果来分配请求,使每个url定向到同一个后端的服务器;
配置完成,平滑重启Nginx服务:
三、测试,刷新测试能正常进行负载,可以根据自己的环境来对nginx proxy的设置轮询模式;
附:
Nginx反向代理的原理优点:
反向代理可以简单的理解为:代理服务器来接收internet上的服务器请求,然后将请求转发给内部的服务器上,然后将结果返回给internet上请求的客户端,所以代理服务器对外表现出来的只是一台服务器。反向代理服务器也称为Web服务器加速,针对web服务器提供加速功能。他作为代理服务器,并不针对浏览器用户,而是针对一台或者多台特定的web服务器。可以缓存web的页面,降低web服务器的访问量,从而来降低web服务器的负载,实施反向代理,只要将反向代理设备放置在一台或多台Web服务器前端即可。
当互联网用户访问某个WEB服务器时,通过DNS服务器解析后的IP地址是代理服务器的IP地址,而非原始Web服务器的IP地址,这时代理服务器设备充当Web服务器,浏览器可以与它连接,无需再直接与Web服务器相连。因此,大量Web服务工作量被转载到反向代理服务上。不但能够很大程度上减轻web服务器的负担,提高访问速度,而且能够防止外部网主机直接和web服务器直接通信带来的安全隐患。
您可能感兴趣的文章:
Nginx负载均衡与反向代理的例子(图文)
Nginx Proxy 代理配置图片缓存的实例参考
nginx正向代理配置简单一例
nginx反向代理配置简单示例
nginx缓存html静态文件 解析php及反向代理IIS的配置
nginx1.0.0配置ngx_cache_purge实现高效反向代理的方法
nginx中配置proxy正向代理
nginx创建反向代理和虚拟主机的例子
nginx的反向代理配置与优化
nginx反向代理与varnish缓存配置
nginx反向代理与负载均衡
Nginx 反向代理的小例子
nginx反向代理与缓存详解
nginx反向代理配置一例
Nginx反向代理Nginx
nginx反向代理配置和优化
Nginx Proxy代理和图片缓存配置
nginx配置反向代理的简单示例