1.使用2台阿里云服务器,做了负载均衡
2.使用1台阿里云redis服务器,作为session存储,以及cache缓存,保证了2台服务器获取一致
redis服务器的相关配置,涉及到的文件:
config/database.php - redis的配置文件
.env - 'session驱动配置' 和 '缓存驱动配置入口' (设置为redis)
config/cache.php - 所有的缓存驱动(我们需配置里面的redis驱动,指向到 config/database.php 中的redis配置)
config/session.php - 配置session驱动,也使用redis
参考文档:
http://laravelacademy.org/post/228.html - redis
http://laravelacademy.org/post/1839.html - redis
http://laravelacademy.org/post/3128.html - cache
http://laravelacademy.org/post/3261.html - session
3.代码部署:
当前整个项目的假设,大体上分3部分:
1>线上2台nginx服务器代码
2>coding.net上的代码
3>开发团队中,每个人的本地环境代码
核心,都是通过git来控制!所以,必需熟悉下git(有时间需要看看git相关书籍,需要一个好的git开发模式)
简述下,目前3部分的整个流程:
1>日常的团队开发:
coding.net上的master分支,为稳定版本。主要用于开发团队共享的代码,团队中的每个人pull&push都在这里交互,一旦有人本地开发测试完毕,直接推送到远程master上,另一个人拉去最新代码,接着开发,有冲突则解决冲突,完毕后重新提交!
2>项目组的部分用户,具有2台nginx服务器的git的授权!本地从coding上拉取的,就是最新的代码,也就是可以同步上线的代码!直接将本地的代码push到线上的2台服务器!从而完成了线上代码部署!
4.代码部署,涉及到的git相关的知识:
1>线上2台nginx服务器,1.需搭建git环境;2.对项目组某些人,需要推送权限。
搭建git环境:
参考文章:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770360579bc4b458f044ce7afed3df579123eca000
我这里简述下文章内容:
1)安装git
yum -y install git
2)创建 'git' 用户,来运行git
adduser git
3)创建git用户的ssh授权:
这个也是完整的一块知识。这里先简述下具体操作:
1.项目组成员,在自己本机,输入:ssh-keygen -t rsa,会在 '~/.ssh/' 下生成一个 'id_rsa' 和 'id_rsa.pub' 2个文件,分别代表 '私钥' 和 '公钥'
2.每个人将自己的 'id_rsa.pub' 文件,发送给nginx服务器管理员
1>mkdir /home/git/.ssh
2>vim /home/git/.ssh/authorized_keys
3>将项目组的每个成员的 'id_rsa.pub' 里的内容,复制进来,每行一个!
4>:wq,保存退出
4)初始化git仓库
在服务器的www目录下
mkdir pinxuejianyou
cd pinxuejianyou
git init --bare // '--bare' 表示创建一个裸仓库,没有工作区,纯粹是为了共享,不让用户直接登录到服务器上去改工作区。
5)修改git仓库的权限
chown -R git:www pinxuejianyou
6)禁用git用户的shell登录
vim /etc/password
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell // git用户修改shell
2>具有推送给线上nginx服务器的用户本机(最初,应该是本地已经测试好了项目,然后往服务器上、coding上推送)
1)本地安装好了git客户端,项目刚开始,就使用了git版本控制(假设目录是 'pinxuejianyou')
cd pinxuejianyou
git init // 初始化了git仓库
2)因为本地已经有了项目,需要同 'nginx线上服务器' 的git,进行远程关联:
git remote add server git@xxx // 这里我们将 'nginx线上服务器' 仓库命名为 'server'
3)将本地库的内容,推送到线上!
git push -u server master // 由于远程库是空的,第一次推送时,加上 '-u'
注意:
有个前提是:已经将该用户的 'id_rsa.pub' 内容添加到 'authorized_keys' 文件中,有推送权限了
4)同样的,对于coding.net来说,是另一个远程库。
1.注册coding帐号,账户里,设置 ssh认证!
2.在coding上创建一个项目
3.git remote add origin git@xxx // 将coding上的远程库命名为 'origin'
4.git push -u origin master // 首次加 '-u'
5.之后一旦修改了文件,测试好后,执行:git push origin master
3>对于新加入项目的成员:
mkdir pinxuejianyou
cd pinxuejianyou
git clone git@xxx // coding上的仓库地址
修改文件后,执行 git push origin master
4>coding服务器,上面其实提到了:
登录、创建一个项目即可,大家以后在这块共享代码!
5.git管理的相关软件:
1>管理公钥:
Gitosis
2>管理权限:
Gitolite
3>git客户端:
TortoiseGit
sourceTree - mac下也有
6.关于ssh,就不介绍了,我自己也需要更多学习,这有几篇文章不错:
https://segmentfault.com/a/1190000002627706
https://www.chenyudong.com/tag/ssh
https://www.cyberciti.biz/faq/force-ssh-client-to-use-given-private-key-identity-file/ - 当公钥认证通过不了,直接指定私钥来认证
7.线上部署,还没研究:
http://www.walle-web.io/