本文主要教会大家如何部署上线你的网站?大半夜的数据库又崩了,老板夺命连环call来了,整个人都疯掉了,大半夜去公司维护?
本文以实用为主,跟我学如何选择服务器?CPU核数、内存、带宽、硬盘这么多选项,那钱该花在哪些地方?网站上线老是这里崩了那里挂了,怎么搞?部署一个不让它崩溃的网站,不然难道崩了的时候打车去公司维护不成?
大家总会经常做一个网站吧?如果你自己做一个网站的话,没人给你维护,一切都得靠自己学,自己研究,而且上线后随着网站运行的时间越久,很多问题都会暴露出来,一会这里不对了,那里又无法访问了,这都很正常,要不然为什么要维护呢?
首先呢,你的网站做好了,要部署到服务器上去,网站一般来说,多采用PHP技术来做,主要的部署方式为LAMP,就是linux下使用apache、mysql、php的模式部署。
那么首先你需要一个服务器,这个东西你没有你部署到哪里去呢?现在大家一般都是用的云服务器,国内的话主要以阿里云做的最大,我买的最多的也是阿里云的,有十几台。如果腾讯云便宜的话,我也买,大概现在有三四台。优先选阿里云吧!领个红包还能便宜些。
阿里云限量红包,速领。
云小站_专享特惠_云产品推荐-阿里云上云优惠聚集地,新人专享优惠价格,可叠加专享代金券购买价格更低。https://www.aliyun.com/minisite/goods?userCode=v6vhcyn8 腾讯云新客户专属福利
腾讯云优惠券_代金券_云服务器折扣券-腾讯云腾讯云优惠券,腾讯云代金券,腾讯云服务器折扣券https://cloud.tencent.com/act/vouchers/list?fromSource=gwzcw.2477393.2477393.2477393&utm_medium=cpc&utm_id=gwzcw.2477393.2477393.2477393&cps_key=b0c7af9380d6324294316347ba2c8a49 阿里云最新活动
最新活动_阿里云最新活动,阿里云最全的优惠聚集地https://www.aliyun.com/activity?userCode=v6vhcyn8 腾讯云最新活动
腾讯云11.11大促_腾讯云11.11优惠活动-腾讯云腾讯云推出11.11智惠云集活动:爆品秒杀,企业专享优惠,低至1折起;企业抽奖活动,100%中奖;免费领取11000元代金券!https://cloud.tencent.com/act/double11?spread_hash_key=3d5d628c89ca2247f5f05604d3ae5c3a&from=pre-2021double11 阿里云腾讯云所有优惠汇总
浅谈VPS云服务器(内含神秘大额专属特惠)_zhumengyisheng的博客-CSDN博客怎么做一个网站?都需要什么?要个服务器?要个域名?去哪里买?哪个好啊?有优惠吗?所有的优惠都在这里了,给自己建个网站吧,毕竟要学以致用啊!https://blog.csdn.net/zhumengyisheng/article/details/121391896 云服务器买回来了,接下来就是兴奋的部署我们的网站,网站这个东西的来源你有技术可以自己搞,没技术也有很多现成的东西,甚至阿里云本身也有很多做好的,你直接买一个回来改改就成, 那么下一步我们要把网站部署到服务器上去。
服务器该如何选?
服务器主要分四个方面嘛,和你的电脑是一样的,第一是CPU,第二是内存,第三是硬盘,第四是带宽。CPU决定的是运算性能,就是程序处理的速度,内存这个东西,你应该知道的,就是程序上班的办公室,办公室越大,那就能招更多人来干活,那就能运行更多的程序,硬盘就是程序睡觉的地方,就是你的卧室,卧室越大,能睡下的人就越多,带宽就更不用解释了,带宽越大,网速就越好,你的服务器大家访问起来就越快。
所以我们很快遇到第一个问题,这东西买高配的价格贵啊,买低配的性能又差,那钱花在哪些上呢?对于网站这种需求的话,对速度要求很高,你不能让用户等久了,最多30秒浏览器都停了,对吧?所以速度得快些,那带宽得花点钱,下一个硬盘就是放网站代码的地方嘛,用不了太大的,一般有个40G就够了,顶多是你的图片上传的那些资源啥的,这些东西我们可以放出去,先不用考虑,或者用OSS都成,主要拿来放资源文件嘛。
上云仅33元/年https://promotion.aliyun.com/ntms/act/oss-discount.html?spm=5176.11533447.1097531.21.72e35cfav8eIRI&userCode=v6vhcyn8 所以硬盘无需太大,大部分个人的网站负载量也不会很高,所以CPU也无需太好的,因此如果是个人站的话,初步选择单核2G内存40G硬盘即可满足日用,剩下的钱可以选择花在带宽上,如果静态的话还可以选择CDN服务加速,所谓CDN就是全国各大地方都有服务器,然后你的那些资源文件啥的缓存到它们那些服务器上,然后客户访问的时候静态资源就近选择,就不从你自己的服务器上去取了,这样加速了客户的访问,不然全上你服务器,扛不住不是?就算扛住了也很慢。
秒懂CDN-免费试用,产品代金券领取阿里云CDN,为你加速!CDN、全站加速、视频、点播流量加速包5.5折起!https://yqh.aliyun.com/live/cdncarnival?userCode=v6vhcyn8
服务器优化
我们个人用户,服务器这种东西一般不会买的太贵,配置大都不高,毕竟高配的要价贵,我们上面说了为了速度,我们尽可能把带宽预算留多一点,那留给CPU和内存的就不是很多,CPU我们自然优化不了,硬盘也只有那么大,那我们能优化的就是内存了,对的,你用windows的时候也听说过虚拟内存这种东西,那我们的云服务器就2G内存,自然要加上虚拟内存,物理内存是要花钱买的,虚拟内存的话是把硬盘的一部分作为内存来用,虽然这种虚拟的内存速度慢,但是毕竟不花钱嘛,也能扩大内存,不然你有些东西一装,服务器内存占满了,都连接不上,那还玩个蛋子。所以,我们一般肯定要加虚拟内存。
服务器系统多以centos为主,以下命令基于centos7操作系统。
加虚拟内存
首先看一下最终效果。
如果你没设置虚拟内存,那么swap那里必然是0,就像这样。
如图所示,SWAP里面的12287就是我加的12G虚拟内存,我的屋里内存只有1837M,也就是2G的机器,你可以看到,我的机器的虚拟内存都已经used使用了5071M了,真实的物理内存仅剩下19M,不加虚拟内存,这个机器早死机了,内存早爆了,这个机器我一开始虚拟内存设置的是4G,但是4G依然满足不了现在的需求了,你看现在都已经占用了5G了,所以之后我有加了8G虚拟内存,所以,你不要担心一开始设置的小了,虚拟内存这个东西是可以后面继续加的,我就加了2个,在我没加后面这8G内存的时候,这个机器的服务都起不来,我连接都困难,加了之后改善了很多。如图,虚拟内存文件我是放在了根目录下面,这个你可以放到其他目录也行,如home目录。
可以看一下我的文件,命令是:
du -sh 你的虚拟内存文件,如:
du -sh ./swapfile
结果如图:可以看到我的swapfile2是加了8G的虚拟内存,同样的那个swapfile是之前加的,那个是4G虚拟内存,两个一共加起来是12G虚拟内存。
好了,下面我们看一下怎么加:
第一步:
[root@localhost ~] dd if=/dev/zero of=/root/swapfile bs=1M count=8192解释:这就是在/root目录下面创建了一个swapfile文件,(bs)每块1M大小,(count)一共是8192块,也就是8192M,那就是8G.这个创建需要点时间,并且你创建的越大,时间就越长。第二步: 上面我们创建的那只是一个文件,现在我们要把那个文件变成内存文件,构建swap格式到swapfile
[root@localhost ~] mkswap /root/swapfile正在设置交换空间版本 1,大小 = 8388604 KiB
无标签,UUID=c13a3fc1-0a0b-4c73-963e-c383df554dff第三步: 激活我们设置的虚拟内存swap
[root@localhost ~] swapon /root/swapfile
swapon: /root/swapfile:不安全的权限 0664,建议使用 0600。如果你需要的话,把这个权限可以改一下。第四步:检测成绩,我们上面已经设置好了虚拟内存,那么到底有没有生效呢?你需要去看一下。那自然就是执行free -m去查看内存变化。第五步:你要明白上面我们的操作仅针对服务器当前有效,这当然是不行的,服务器一关机活重启,我们做的那些东西就没了,我们要的是让它永远生效,所以我们需要配置永久生效。
我们需要去改/etc/fstab文件,详情可以看后续配图。
[root@localhost ~] vim /etc/fstab
# 将/swap none swap sw 0 0 如果有这一行这行注释掉,新增一行#这是配置我的第一个4G的那个虚拟内存文件永久生效,你根据你的文件配置,后面的都一样
/swapfile swap swap sw 0 0
#这是在配置我的第二个虚拟内存文件,你根据你的文件情况配置即可。
/swapfile2 swap swap sw 0 0第六步:我们上面看起来已经做完了一切,似乎已经完事了,但实际上还没完,因为我们设置了虚拟内存,我们还有买的物理内存,那这两个内存如何用又是一个新的问题,软件到底要去用虚拟的那个内存还是真实的物理内存?它怎么用?怎么调配?比例是什么就是我们新的问题了。
所以我们要配置以下虚拟内存和实际的物理内存的分工比例,它们哪个占多少。这需要去改etc/sysctl.conf这个文件,可以看后续配图。#swap和真实内存占比 0表示只用物理内存,100表示全用虚拟内存,我现在设置为50.表示50%使用物理内存,50%使用虚拟内存vm.swappiness = 50
配置永久生效的文件如果还不懂,可以看我这个/ect/fatab文件,注意,我这是配置了2个虚拟内容文件,我总共配置了12G虚拟内存,我这个配置这么大是因为机器内存已经严重不足了,一般默认配置的话虚拟内存是你实际物理内存的1-2倍,比如你物理内存是2G的,那你虚拟内存一般配置4G,就是我之前的配置。
之后这是优化虚拟内存和实际内存的使用关系,比如我现在设置为50,就是有一半使用物理内存,一半使用虚拟内存,为什么不设置100?全部用虚拟内存?那不能,因为那样太慢了,虚拟内存是硬盘虚拟出来的,硬盘和内存的速度自然内存快的多,你全用虚拟的那太慢超时了,当然我们要尽可能用物理内存,那个快啊,但是物理内存得加钱,所以我们才加上虚拟内存,满足程序运行需求,但是就慢嘛,你设置为0就是全部使用物理内存。
通过以上这些骚操作,我们总算是完成了服务器的配置,虽然我们买的服务器配置可能不高,但是我们业务也不是很大,我们也对服务器进行了优化,怎么样在不花钱的情况下优化我们当前的配置。
今天太晚了,暂时先写到这里了,后续内容预告:
一定要关注我,这样我修改完第一时间你就能知道了。
服务器配置好了,如何部署上线我们的网站?我们配置了很多服务,比如经典的LAMP,难道每次关机重启都需要配置一遍?那多么吓人?重启后如何让它们自行启动?
网站上线了,突然某一天网站页面都报错了,数据库也连不上了,数据库崩了,老板夺命连环call一个接一个的打,让你火速前往公司维护,这样的事情一次两次还行,十天半个月来一回可怎么搞?如何能在崩溃的时候让它自行恢复?
网站上线后,随着东西越上越多,mysql的连接也越来越多,尽管你可能修改了mysql的最大连接数,你可能配置了3000或者5000,但是你依然还是收到了1040的错误,经查是mysql连接数过多导致的,你明明已经配置过了,却为何还是连接过多?去mysql查询,居然神奇的发现最大的连接数才是214,不是你配置的3000或者5000,这背后到底是为什么?
其他更多内容,未完待续。
最关键的是,关注我。