修改nginx的核心配置文件nginx.conf
1> 进程数与每个进程的最大连接数
a) nginx进程数,建议设置为等于CPU的总核心数
// worker_processes 1;
b) 单个进程最大连接数,服务器最大连接数=连接数*进程数
events {
worker_connections 1024;
}
2> nginx的基本配置;
a) 监听端口:80;
b) 域名可以有多个,用空格隔开;
server {
listen 80;
server_name localhost www.test.com;
}
3> 反向代理配置
a) location ~ .php(.*)$ {} :对php后缀结尾的文件进行负载均衡
b) proxy_pass:请求转向自定义的服务器列表;
location ~.php(.*)$ {
# 设置主机头和客户端真实地址,以便服务器获取客户端真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarkded_fpr;
# 禁用缓存
# proxy_buffering off;
# 设置反向代理的地址(代理地址根据自己的实际情况修改)
proxy_pass http://192.168.1.1;
}
4> 负载均衡列表基本配置
a) 轮循:nginx系统默认是以轮循的方式实现负载均衡(若后端服务器宕机,自动剔除)
b) 权重:weight 是指轮循的几率,权重和访问率成正比(解决服务器性能不均匀的情况)
c) ip_hash:每个请求按照ip的hash结果分配(每个访客固定一个后端服务器)
d) url_hash:按照url的hash结果分配,每个url定向到一个服务器;
e) fair:按照服务器的响应时间来分配请求。响应时间短的优先分配;
参考链接:http://blog.chinaunix.net/uid-20662363-id-3049712.html
upstream test.com{
#ip_hash;
server 192.168.1.100;
server 192.168.1.123;
server 192.168.1.200;
server 192.168.1.234;
}
server {
listen 80;
server_name www.abc.com;
location / {
# 反向代理服务器地址
proxy_pass http://test.com;
# 设置主机头和客户端真实地址,以便服务器获取客户端真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarkded_fpr;
}
}
5> nginx的完整的配置如下:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream test.com{
#ip_hash;
server 192.168.1.251;
server 192.168.1.252;
server 192.168.1.247;
}
server {
listen 80;
server_name www.abc.com;
location / {
# 设置主机头和客户端真实地址,以便服务器获取客户端真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarkded_fpr;
# 禁用缓存
# proxy_buffering off;
# 设置反向代理的地址(代理地址根据自己的实际情况修改)
proxy_pass http://test.com;
}
}
include vhosts.conf;
}