现在的服务器越来越便宜,但是带宽却限得很死,以前阿里云搞活动都只有1M带宽,现在腾讯云加入竟争就好多了,可以有3M甚至5M。
一旦发现网站变慢,很大可能就是带宽不足影响的。因为带宽卡住了。虽然云服务器可以随时加带宽,但是费用算下来,比新买一台服务器还贵。
要解决这个办法,就是把网站程序与附件分离,比如把 /public/ 目录移到新的服务器去。
注意是手工定时的移过去,比如每个月移一次。然后配置服务器,让他智能的选择访问,如果网站所在服务器没有附件的话,就去备用服务器读取。
第一步,先删除 /public/.htaccess 此文件, 再修改网站根目录的文件 .htaccess 代码类似如下
<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On RewriteBase / RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301] RewriteCond %{REQUEST_URI} !\.html$ RewriteRule ^(.*)public\/static\/(.*)$ https://x1.soyixia.net/bak/static/$2 [R,L] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)public\/uploads\/(.*)$ https://x1.soyixia.net/bak/uploads/$2 [R,L] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f # RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1] </IfModule>
其中下面这条代码的意思就是强制把static目录,访问备用服务器的文件,即使本机有,也不访问。但.html结尾的文件就不要访问备用服务器的,因为单页路由要用到,不能跳来跳去。如果还有其它特殊的文件不要使用远程服务器的话,就把!\.html$ 改成 !(\.html|\.js|\.css)$
RewriteCond %{REQUEST_URI} !\.html$ RewriteRule ^(.*)public\/static\/(.*)$ https://x1.soyixia.net/bak/static/$2 [R,L]
下面这个就是代表如果本地文件不存在,才访问备用服务器的文件。如果本机存在,比如新上传的,就访问本机的。不存在,才访问备用服务器的。
RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)public\/uploads\/(.*)$ https://x1.soyixia.net/bak/uploads/$2 [R,L]
注意事项,把static目录,也访问备用服务器的话, 就会涉及到跨域的问题,有些字体图标会受影响因跨域不能访问,这个时候就要修改备用服务器的apache配置。加多下面的代码
Header set Access-Control-Allow-Origin *
如下图,修改后重启即可解决跨域的问题
Nginx服务器解决跨域问题的话,要加如下代码
location / { add_header Access-Control-Allow-Origin *; }
1.本文部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责。
2.若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
3.如果本站有侵犯、不妥之处的资源,请联系我们。将会第一时间删除帖子!
4.本站提供的资源来源网络收集或网友发布到本站,仅供学习研究之用,版权归原著所有,切勿用于商业用途和非法行为否则后果自负。请在24小时之内自行删除!
5.本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6.本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间退回积分、金币或者更新。