现在的服务器越来越便宜,但是带宽却限得很死,以前阿里云搞活动都只有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 *;
}
目前评论:0