首页 > 代码库 > nginx负载均衡,读写分离
nginx负载均衡,读写分离
负载均衡
安装nginx
配置conf文件
设置虚拟主机
在keepalive后面/server(虚拟主机)前面加上upstream
upstream jf1 {
server 192.168.1.25:80;
server 192.168.1.26:80;
server 192.168.1.27:80;
server 192.168.1.28:80;
server 192.168.1.29:80;
server 192.168.1.30:80;
server 192.168.1.31:80;
server 192.168.1.32:80;
}
然后location后面加上
proxy_pass http://jf1;
可以在后端均衡的apache上把index.html分别写成自己的ip,方便测试时验证
nginx均衡lamp,搭建两个lamp环境,分别是discuz和wordpress,用nginx均衡
注意,php环境会把负载均衡模块proxy_pass http://当成主机,必须在proxy_pass前面加
proxy_set_header Host $host; ($host把上面的server_name www.jf.com加到请求头里面)
(防止请求的头网址变成模块jfedu_web)
proxy_set_header X-Real-IP $remote_addr; (这一行是带上用户IP)
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; (这一行是防止模块变成主机)
动静分离
多location
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://jf1;
}
location ~.*\.(php|jsp|cg|asp|do)$
{
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://jf1;
}
location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
{
root /usr/local/nginx/html/discuz;
}
.* 代表一个或多个字符 | 或的意思 $结尾
静态文件走本地,动态文件走后端apache
location里的正则匹配
‘=‘ > ‘完整路径‘ > ‘^~‘ > ~* > ‘/‘ = /还是/,优先级最低 =加绝对路径,优先级最高
有的网站是把图片文件专门放在一个发布目录,音乐文件放在一个发布目录,视频文件放在一个发布目录。也有的综合性网站是把文件全部放在一个目录,比如discuz
nginx负载均衡,读写分离