首页 > 代码库 > 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负载均衡,读写分离