nginx负载均衡的配置。把请求通过nginx的反向代理分发到多台服务器处理,可以减轻单台服务器的处理压力,提高访问速度。
1、增加nginx负载均衡代码
#服务器分发池列表(注意server只填IP+端口,要写入http里面,名字可以随便取,分发配置对应上即可)
upstream myUrl{
server 127.0.0.1:81 weight=1; #服务器1 weight权重(权重越大,表示访问几率越大)
server 192.168.2.108:80 weight=5;#服务器2
}
2、请求反向代理分发
server {
listen 80;
#多域名用空格隔开
server_name baidu.com baidu2.com baidu3.com;
#设置默认访问首页
index index.html index.php;
location / {
#所有请求反向代理到服务器池中的服务器
proxy_pass http://myUrl;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
下面是本人完整的nginx.conf文件内容,可以参考一下
#定义nginx运行的用户和用户组
user www www;
#设置nginx进程数,一般设置为cpu核心数,auto为自动检测
worker_processes auto;
#全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]
error_log logs/error.log;
#error_log logs/error.log warn;
#error_log logs/error.log info;
#error_log logs/error.log debug;
#error_log logs/error.log notice;
#error_log logs/error.log crit;
#守护进程pid文件
pid logs/nginx.pid;
#events模块中包含nginx中所有处理连接的设置
events {
#单个进程最大连接数(最大连接数=连接数*进程数)
worker_connections 1024;
#设置nginx收到一个新链接通知后接受尽可能多的链接
multi_accept on;
#设置用于复用客户端线程的轮训方法
use epoll;
}
#http模块控制着nginx http处理的所有核心特性
http {
#文件扩展名与文件类型映射表
include mime.types;
#默认文件类型
default_type application/octet-stream;
#打开或关闭错误页面中的nginx版本号deng
server_tokens on;
#客户请求头缓冲大小
large_client_header_buffers 4 64k;
#设定通过nginx上传文件的大小
client_max_body_size 1024M;
client_body_buffer_size 2048k;
#开启高效文件传输模式,优化磁盘IO设置
sendfile on;
gzip on;
#允许或禁止压缩基于请求和相应的响应流,any代表压缩所有请求
gzip_proxied any;
#==设置数据压缩等级,1-9之间,9最慢压缩比最大
gzip_comp_level 9;
#设置需要压缩的数据格式
gzip_types text/plain text/css text/xml text/javascript application/json application/x-javascript application/xml application/xml+rss;
#服务器分发池列表(注意server只填IP+端口,要写入http里面,名字可以随便取,分发配置对应上即可)
upstream myUrl{
server 127.0.0.1:81 weight=1; #服务器1 weight权重(权重越大,表示访问几率越大)
server 192.168.2.108:80 weight=5;#服务器2
}
#负载均衡请求分发
server {
listen 80;
#多域名用空格隔开
server_name baidu.com baidu2.com baidu3.com;
#设置默认访问首页
index index.html index.php;
location / {
#所有请求反向代理到服务器池中的服务器
proxy_pass http://myUrl;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
#服务器分发池可以不用写到nginx.conf文件,可以另起一个conf文件,然后用下列代码引入即可
include /etc/nginx/conf.d/*.conf;
}
}