# 前言
> * 想做这个Nginx负载均衡已经很久了,从13年毕业开始到今天2017-01-16 11:36:06
>
>
> * 期间经过的过程是坎坷的,有很多不确定的因素存在
>
>
> * 前期的沉淀也是一个问题,毕竟刚出学校,对于互联网这个世界来讲,我还是小牛犊,或许也是因为自己懒而已,有些东西实战过才知道
## [](http://blog.0796z.com/post/101.html#知识的珍贵程度)知识的珍贵程度
~~~
听过 -> demo过 -> 实际工作用过 -> 实际工作被坑过 -> 实际工作中被坑过很多次或深入研究总结过
~~~
# [](http://blog.0796z.com/post/101.html#正题)正题
~~~
问:如何搭建集群测试环境
答:请百度了解docker,基于docker可以快速构建出众多服务集群环境
~~~
有了测试环境,其实配置很简单 配置如下:
```
# 06.zxzc.co.conf 配置文件
# Nginx负载均衡配置
upstream phpfastcgi{
server phpfpm_server_01:9000 weight=1;
server phpfpm_server_02:9000 weight=1;
server phpfpm_server_03:9000 weight=1;
}
server { # 监听端口
listen 80; # 域名
server_name 06.zxzc.co; # 主目录
root /disk_data/www/06.zxzc.co; # 默认页面
index index.php index.html index.htm; # ETag模式开启 提高访问速度
etag on; # PHP脚本运行支持
location ~ \.php$ { # 监听路径
fastcgi_pass phpfastcgi; # 默认页面
fastcgi_index index.php; # 参数
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # 脚本参数
include fastcgi_params; # Nginx开放跨域访问
proxy_set_header Access-Control-Allow-Origin $http_origin;
add_header 'Access-Control-Allow-Origin' $http_origin;
add_header 'Access-Control-Allow-Headers' 'X-Requested-With, Content-Type';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'POST, GET, OPTIONS';
}
}
```
#### [](http://blog.0796z.com/post/101.html#重新运行下docker-composeyml)重新运行下docker-compose.yml
#### [](http://blog.0796z.com/post/101.html#这是docker环境启动配置文件可以把你想启动的服务都在这里写好配置)(这是docker环境启动配置文件,可以把你想启动的服务都在这里写好配置)
然后我们看下docker环境中容器的ID,再在php文件中我们打印出$_SERVER,观察hostname的信息 ![image](http://chuantu.biz/t5/46/1484539186x1901811940.png)![image](http://chuantu.biz/t5/46/1484539338x1901811940.png)![image](http://chuantu.biz/t5/46/1484539376x1901811940.png)![image](http://chuantu.biz/t5/46/1484539390x1901811940.png)
#### [](http://blog.0796z.com/post/101.html#刷新了3次依次命中后端服务器当然如果有其中一台挂了也会跳过这台)刷新了3次,依次命中后端服务器,当然如果有其中一台挂了,也会跳过这台
当前Nginx的负载均衡算法是根据weight来优先计算的,还有等等很多算法具体可以参考官方网站的documents
- 前端
- 技巧汇总
- 构建 Node + Webpack + React 热加载开发环境
- React
- Redux
- Webpack
- ES6
- HTML5+CSS3
- Javascript
- JS超简洁拖动代码
- jQuery
- 后端
- 技巧汇总
- 代码中特殊的注释技术——TODO、FIXME和XXX的用处
- PHP
- Xdebug不解之谜
- PHP时间获取
- PHP递归优化 使用匿名函数进行递归
- PHP 发起POST请求
- PHP获得数组的交集与差集
- PHP递归获取下级数组,可指定ID,一维数组
- PHP 判断是否为Get/Post/Ajax提交
- PHP实现分流队列平均显示信息
- PHP多维数组 指定列排序
- PHP 类Class详解 笔记记录
- PHP取整函数详解
- Node
- Elasticsearch
- 数据库
- 技巧汇总
- Mysql
- Mysql分区表实现
- Mysql union与union all 查询
- Mysql 表中表查询
- Mysql 分组查询 与 分组条件查询
- MySQL 添加列,修改列,删除列
- Mysql优化之:构建海量表,定位慢查询
- Mysql优化之:表的设计满足3NF
- Mysql优化常见方法
- Mysql存储过程详解
- 运维
- 技巧汇总
- Linux
- Linux Centos系统下 设置代理服务器上网
- Centos7增加开机启动脚本
- centos 挂载windows共享目录
- CentOS设置SSH Key登录
- Linux/CentOS单网卡绑定多个IP
- Windows
- Win10开机启动项设置全解攻略
- PuTTY连接Linux服务器经常断线解决方案
- Docker
- Docke启动文件 docker-compose.yml
- Docker命令简介(未完)
- Docker闲杂笔记
- Apache
- Nginx
- Nginx配置upstream实现负载均衡
- Nginx负载均衡学习
- IDE
- 技巧汇总
- WebStorm
- PHPStorm
- 协作
- 技巧汇总
- Git
- git 放弃本地修改 强制更新
- git编译安装与常用命令
- Svn