欢迎您来到腾讯云!积分商城

腾讯云腾讯云论坛

 找回密码
 立即注册
忘了密码?

扫一扫,访问微社区

快捷导航
搜索
查看: 1676|回复: 5

[经验分享] 两云服务器CVM+云数据库CDB+负载均衡CLB搭建Apache+Mysql+PHP开..

[复制链接]

4

主题

0

好友

205

积分

腾讯云论坛管理组

Rank: 20Rank: 20

云币
437
威望
205
发表于 2016-7-27 20:15:01 |显示全部楼层
相比于本地的开发环境,在腾讯云上的产品,无论是云数据库、云服务器还是负载均衡,都具有更强的性能,配置也更为便捷。接下来我们就一起看一下怎样连接负载均衡+云服务器+云数据库,并搭建一个简单的Apache+Mysql+PHP开发环境把!
首先可以看一下,我们希望搭建完成后的效果图:
image.jpg

由图可见,客户访问时我们的网站/ip时,可以经过负载均衡的转发,分发到不同的云服务器上,并将两个服务器中所输入的信息传递到后端的云数据库中去。确定了架构,我们可以开始购买云服务器和云数据库,进行配置了!

1. 云服务器、云数据库的购买和初始化

首先需要购买两台腾讯云主机CVM,系统选用的centos6 64位,购买的1核2G,在安全组的设置中我选择了开放了全部端口,便于访问。具体配置如下,大家可以根据需要自行调整。
im1.png

购买成功后,我们可以在控制台的云服务器页面得到云服务器公网ip登录密码
之后,可以购买一台云数据库for mysql,这里可以根据自己网站和数据的规模选取硬盘大小。购买成功后,可以在云数据库控制台中进行登录(腾讯云内置了phpmyadmin),点击登录后在如下页面输入用户名密码。
im3.png

登录后,我们可以为自己的网站建一个数据库实例,比如我建的实例名为my_db,其中用户信息表为userinfo,里面的两个字段分别为用户名username和密码password,我们可以设为varchar类型,长度15。(因为后面的网页是要传递用户名和密码到数据库中去)——当然,我们也可以直接通过云服务器连接mysql并通过命令行创建数据库表,只是这种方式比较直观。
im4.png

购买并初始化数据库和云服务器后,可以进入到第二阶段了

2. 云服务器的环境配置和数据库连接

登录云服务器可以使用secureCRT(网上有破解版,用起来比较方便。不想下载用腾讯云自带的控制台也可以),使用云服务器的公网ip和用户名密码,新建一个连接,端口默认22。
im5.png

之后输入用户名密码(购买云主机时定义的)进行登录
之后可以通过复制粘贴如下命令,进行环境的配置:
a 安装Apache、PHP、Mysql、连接Mysql数据库的包:
  1. yum -y install httpd php mysql mysql-server php-mysql  
复制代码
b 安装Apache常用拓展包:
  1. yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql
复制代码
c 安装Mysql常用的拓展包:
  1. yum -y install php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc php-devel
复制代码
d 配置Apache、Mysql开机启动:
  1. chkconfig httpd on  
  2. chkconfig mysqld on
复制代码
e 重启Apache、Mysql
  1. service httpd restart  
  2. service mysqld restart
复制代码
一般看到complete! 这种提示就证明安装完成了~
im6.png

安装好环境之后,可以在云服务器上配置一个简单的php页面进行测试,一方面可以测试开发环境是否搭建成功,一方面可以建立和云数据库之间的连接。这就涉及到服务器中文件的编辑了。

服务器的文件编辑可以使用winSCP,可以方便的即时编辑上传。输入腾讯云host,Linux系统选择22端口,然后输入用户名和密码就可以,直接登录,如图
im7.png


登录成功之后,我们在/var/www/html文件夹里,直接从我们的电脑创建文件,部分html代码如下
  1. <blockquote><h2>User Register</h2>
复制代码
上面这段代码用于展示用户登录的页面,下面的代码用于将我们填写的用户名密码传入数据库并保存为test.php。
mysql_connect()中的三个参数分别填写云数据库的内网ip地址,用户名和密码。
  1. <?php
  2. $con = mysql_connect(<b>"your_cdb_ip","root","yourpassword"</b>);
  3. if (!$con)
  4.   {
  5.   die('Could not connect: ' . mysql_error());
  6.   }
  7. mysql_select_db("my_db", $con);
  8. if($_GET["act"]=="reg")
  9. {
  10.         $username=$_POST["username"];
  11.         $password=$_POST["password"];
  12.         mysql_query("INSERT INTO userinfo(username,password)  VALUES('$username','$password')");
  13.           echo "register success!";
  14. }
  15. mysql_close($con);
  16. ?>
复制代码
配置完成之后,可以得到相应的访问结果,输入公网ip/test.php可以得到如下页面:
im8.png

输入某用户名密码,点击register,这时我们切换到刚才登录的云数据库管理页面,可以看到phpMyAdmin的数据库中多了几个字段,这就代表云服务器和云数据库的连接成功了~
im9.png


3. 流量大?--建立负载均衡

负载均衡建立时,至少需要两台RS,因此我们可以如法炮制第二天RS。
我们对第二个RS也建立和CDB相同的连接,可以将test.php中的title或者题目进行修改,用于区分。
配置好后得到如下页面
im10.png

配置成功后,可以在user register中输入用户名密码,提交后查看后台数据库是否传入数据。
如果传入,代表两台云服务器已经可以共享一个云数据库的数据了。

现在,我们拥有两台云服务器的公网ip地址,用户名密码以及云数据库的内网ip及用户名密码,我们希望用户请求量很大的时候,可以通过负载均衡器均匀的分配请求到两天服务器中去,这时候我们可以添加一台负载均衡器,对RS进行流量分发。

首先在负载均衡购买页面进行购买,推荐使用公网有日租型负载均衡(首个实例免费哦)由于有固定的公网IP,并且支持HTTP/TCP/UDP 三种监听模式。

购买成功后,点击负载均衡实例的详情页,创建一个负载均衡监听器,其配置信息如下。(均衡方式选择最基础的加权轮询方式。另外此处不需要开启会话保持,因为会话保持会根据客户的请求将访问分配到同一台RS上,影响演示效果)
im11.png

创建好监听器后,我们可以绑定刚才配置的两台云主机,并为其设置相应的权重。(比如我买了一台1核1G的主机,一台1核2G的主机,可以根据其性能设置内存大的RS权重为20,另一台权重为10,这样LB分发时会按比例将请求分发到RS上去。)
im12.png

绑定成功后,我们可以通过访问LB的VIP/test.php对RS进行分发。由于我们的权重设置为1:2,因此可以看到,在刷新VIP/test.php的时候,访问RS1的频率和访问RS2的频率比值为1:2,即刷新三次时有一次请求落在RS1上,两次落在RS2上(加权轮询的方式)。

为了检测服务的正常性,可以在网页中输入用户名密码,进行注册,查看后台服务器中是否存储了该信息。
im13.png

至此,我们文章开始的架构就实现了。虽然是非常简单的页面,但是可以通过逐步的扩展使其更加稳定和安全。除此之外,云数据库还有备份和导出等功能,可以很好的保证数据的一致性和可用性。

如果大家觉得使用VIP+test.php的方式不好记,可以购买域名并对LB的VIP进行CNAME绑定(只限于公网有日租类型的CLB),这样就可以通过访问好记的域名来访问服务啦。具体教程可以见官方文档https://www.qcloud.com/doc/product/214/5355

附件中附有test.txt文件,手动更改后缀为test.php就可以使用,大家也可以自己动手写一些更有趣的页面。

test.txt

1.81 KB, 下载次数: 2

售价: 1 云币  [记录]

21

主题

12

好友

1万

积分

版主

Rank: 7Rank: 7Rank: 7Rank: 7

云币
22428
威望
11961
发表于 2016-7-27 20:34:51 |显示全部楼层
感谢楼主的分享、!~~~~
回复

使用道具 举报

0

主题

0

好友

32

积分

小白[LV1]

Rank: 1

云币
15
威望
15
发表于 2016-7-28 15:44:14 |显示全部楼层
可以的,照着教程试了一下,真的成了!感觉日活1w 不是梦
回复

使用道具 举报

0

主题

0

好友

22

积分

小白[LV1]

Rank: 1

云币
10
威望
10
发表于 2016-7-28 19:42:31 |显示全部楼层
怎么这么详细! 感谢楼主!!!!!
回复

使用道具 举报

5

主题

0

好友

2673

积分

腾讯云产品经理

Rank: 10Rank: 10Rank: 10Rank: 10

云币
7133
威望
2673
发表于 2016-7-29 12:08:48 |显示全部楼层
感谢楼主的分享!!
回复

使用道具 举报

0

主题

0

好友

230

积分

小白[LV1]

Rank: 1

云币
550
威望
230
发表于 2017-10-21 13:21:49 |显示全部楼层
大概知道了。。。~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册
您需要登录后才可以发帖 QQ登录

联系我们|腾讯云平台|积分商城|腾讯云官方论坛    

GMT+8, 2018-2-25 23:52 , Processed in 1.182262 second(s), 32 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部