Nginx反向代理及简单负载均衡配置
nginx配置文件主要分为六个区域:main section、events section、http section、sever section、location section、upstream section。
以下为Nginx的主要配置
#main module配置
use nobody; #设置运行用户
worker_processes 1; #设置启动进程,通常设置成cpu数量相当
error_log logs/error.log; #全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]
pid logs/nginx.pid; #进程文件
#event module配置
events{
use epoll; #epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于Linux2.6以上内核,可以大大提高nginx的性能
worker_connections 1024 #单个worker process进程最大并发连接数
}
#http module配置
http{
include mine.types; #设置mime类型
default_type application/octet-stream;
access_log logs/access.log; #设置访问日志
sendfile on; #表示调用sendfile函数输出文件,对于普通应用必须设置为on,若用来进行下载等高IO负荷的应用则设置为off,
平衡以平衡磁盘与网络I/O处理速度,降低系统的uptime.
Keepalive_timeout 65; #设置连接超时65s
gzip on; #开启gzip压缩输出
gzip_types text/plain application/x-javascript text/css application/xml; #压缩类型,默认包含text/html
#server module配置
#做为服务器时虚拟主机相关配置
Server{
listen 80; #监听端口
server_name www.xxx.com; #主机名
access_log logs/xxx.com.access.log; #此虚拟主机访问日志
#设置默认请求
location ~ {
root /wwwroot; #定义站点根目录地址
index index.php index index.aspx index.html #站点默认文档名
}
#定义错误提示页面
error_page 400 /400.html;
error_page 500 502 503 /50x.html;
}
#做为反向代理服务器时,且实现负载均衡配置
#负载均衡配置,其中weight是权重,至越大,被分配的几率越大
#upstream module配置
upstream backserver {
#说明:若配置为以下方式,一定要保证网站可以通过IP地址方式能正常访问,如 http://192.168.1.10/
server 192.168.1.10:80 weight=1;
server 192.168.1.11:80 weight=2;
server 192.168.1.12:80 weight=2;
}
#代理服务器配置
Server{
listen 80; #监听端口
server_name www.xxx.com; #主机名
access_log logs/xxx.com.access.log; #此虚拟主机访问日志
#设置默认请求
location ~ {
proxy_pass backserver http://backserver;
proxy_set_header Host
$host;
proxy_set_header X-Real-IP
$remote_addr;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
}
}
在浏览器中访问www.xxx.com时,Nginx会根据upstream中的服务列表进行再次请求,并将最终的数据返回给浏览器。