• [转载]给10万pv的WordPress选择最便宜高可用的硬件以及WordPress高并发支持


    这些命令很长,但是希望可以让你很容易按照步骤创建一个全新的Linux服务器,使用Varnish, Nginx, W3 Total Cache, and WordPress来搭建一个WordPress博客并运行在亚马逊微型服务器(或其它类似服务),所有这些只需要花费每月$15,能维持每天10万的点 击率,通过blitz.io测试。
    教你创建可以维持每天10万点击率的WordPress博客服务器,每月只需$15
    在一个新的虚拟专用服务器上安装Ubuntu 11.10 (Oneiric),11.10版本能够提供我们需要的所有软件包,用其他Linux发行版也是一样可以的。
    我用亚马逊EC2来搭建测试服务器,不过Linode也很不错。下面是我的服务器详细信息,你的可能会有所不同:
    1 DNS:ec2-23-20-235-223.compute-1.amazonaws.com
    2 IP:23.20.235.223
    使用root登录到服务器
    通过ssh连接并登陆到ubuntu,然后执行sudo -i命令切换到root
    1 ssh ubuntu@ec2-23-20-235-223.compute-1.amazonaws.com
    2 sudo –i
    配置防火墙
    因为我们要安装各种不同的默认监听所有接口的网络服务,配置一个防火墙是很重要的。
    在Ubuntu下,这是很简单的事,只要使用ufw就可以了。执行下面的命令来配置:
    1 ufw allow ssh
    2 ufw allow http
    3 ufw logging off
    4 ufw enable
    执行完毕后,你的服务器就有了一个相对较安全的防火墙,你还可以使用fail2ban来防止暴力密码攻击。
    安装和配置MySQL
    1 apt-get update
    2 apt-get install mysql-server
    完成后,设置mysql的root用户密码
    1 mysql -u root –p
    然后,在mysql>提示符下输入新设置的root密码,执行下面4条命令,把ENTER_A_PASSWORD替换成你自己的密码
    1 CREATE DATABASE wordpress;
    2 GRANT ALL PRIVILEGES ON wordpress.* TO “wp_user”@”localhost” IDENTIFIED BY”ENTER_A_PASSWORD”;
    3 FLUSH PRIVILEGES;
    4 EXIT
    现在MySQL的安装完成,可以继续安装PHP和Web服务器了。
    安装和配置PHP
    我们不仅需要安装PHP,还要安装PHP FPM系统、APC和MySQL模块
    1 apt-get install php5-fpm php-pear php5-common php5-mysql php-apc
    编辑/etc/php5/fpm/php.ini并在最后添加这些内容:
    1 [apc]
    2 apc.write_lock = 1
    3 apc.slam_defense = 0
    编辑/etc/php5/fpm/pool.d/www.conf
    替换
    1 listen = 127.0.0.1:9000

    1 listen = /dev/shm/php-fpm-www.sock
    再在下面插入这3行
    1 listen.owner = nginx
    2 listen.group = nginx
    3 listen.mode = 0660
    然后,在这个文件再下面一点,替换这2行
    1 user = www-data
    2 group = www-data

    1 user = nginx
    2 group = nginx
    保存文件,PHP FPM现在配置好了,但是得安装nginx之后它才能运行。
    安装和配置Nginx
    根据Nginx website上的方法
    下载nginx安全密钥来验证包
    1 cd /tmp/
    2 wget http://nginx.org/keys/nginx_signing.key
    3 apt-key add /tmp/nginx_signing.key
    执行下面的命令添加软件源(要使用>>):
    1 echo “deb http://nginx.org/packages/ubuntu/ lucid nginx” >> /etc/apt/sources.list
    2 echo “deb-src http://nginx.org/packages/ubuntu/ lucid nginx” >> /etc/apt/sources.list
    下载和安装nginx
    1 apt-get update
    2 apt-get install nginx
    完成后,我们配置它来适应WordPress:
    首先,编辑/etc/nginx/nginx.conf
    在http节点内插入下面一行
    1 port_in_redirect off;
    然后,切换到/etc/nginx/conf.d目录并创建文件/etc/nginx/conf.d/drop
    内容为drop file from GitHub里的
    再替换/etc/nginx/conf.d/default.conf的内容为github default.conf file的内容,把所有domainname.com改为你自己的域名(有3处,包括一个在文件底部附近)
    创建目录/var/www/,并设置它的所有者
    1 mkdir -p /var/www/
    2 chown nginx:nginx /var/www/
    3 chmod 775 /var/www
    现在nginx就配置好了,执行下面命令重启nginx和PHP FPM服务:
    1 service nginx restart
    2 service php5-fpm restart
    现在,你可以安装WordPress了!
    很简单,只需要执行:
    1 cd /tmp
    2 wget http://wordpress.org/latest.tar.gz
    3 tar zxvf latest.tar.gz
    4 cd wordpress
    5 mv * /var/www/
    6 chown -R nginx:nginx /var/www
    配置WordPress,执行:
    1 cp /var/www/wp-config-sample.php /var/www/wp-config.php
    2 chown nginx:nginx /var/www/wp-config.php
    使用浏览器打开https://api.wordpress.org/secret-key/1.1/salt/并复制页面内容
    编辑/var/www/wp-config.php
    把AUTH_KEY和NONCE_SALT之间的内容替换成你刚从api.wordpress.org复制的内容
    然后,替换默认值为你前面设置的(不是root用户):
    1 define(‘DB_NAME’, ‘database_name_here’);
    2 define(‘DB_USER’, ‘username_here’);
    3 define(‘DB_PASSWORD’, ‘password_here’);
    做完了这些,如果你没有收到任何错误并且你的域名指向了正确的IP地址(这是很重要的),你就可以打开http://www.domainname.com/install.php进行WordPress的配置了。
    回答安装过程中的问题,设置一个靠谱的用户名和密码(强烈推荐把管理员的用户名从admin改为其它的)
    在设置页面选择永久链接,并选择“Custom Structure”,粘贴下面的值(包括%符号)
    1 /%post_id%/%postname%
    然后猛击“Save Changes”
    现在可以发表博文了,点击”Posts”然后“Add New”
    输入标题和内容,点击“Post”,并注意它的网址是友好的。
    运行ablitz.io测试来看看我们的成果
    100用户,60秒。超时,低点击率,错误等。CPU性能似乎是现在的瓶颈。
    这次测试在1分钟内有632次成功点击并从你的应用那里传输了1.76M的数据。平均每秒9.81次点击大约折合每天847,776次点击。
    很大的问题是:34.91%的用户在这次测试中遇到了超时或错误。
    所以,服务器虽然成功运行了,但访问速度还是太慢了!
    下面,我们来启用WordPress的缓存系统
    打开WordPress的管理页面-插件-安装新插件。搜索“W3 Total Cache”,安装并激活这个插件。
    在页面左边大的菜单里打开新的“Performance”选项,在每个有“PHP APC”的缓存选项中激活下面2个选项:
    1 Database Cache
    2 Object Cache
    点击“Save All Settings”,然后点击“Deploy”
    再回到ablitz.io测试,表现应该会好很多
    这次测试在1分钟内有2902次成功点击并从你的应用那里传输了27.59M的数据。平均每秒46次点击大约折合每天4,006,008次点击。
    如果我们把blitz.io中测试的用户数从100上升到250,问题又来了:
    这次测试在1分钟内有4733次成功点击并从你的应用那里传输了36.20M的数据。平均每秒72次点击大约折合每天6,297,653次点击。
    这次的问题是:5.49%的用户在这次测试中遇到了超时或错误!
    你可以在Nginx And APC configuration in this PDF查看Blitz结果
    还是不太理想?可以安装varnish 3了!
    1 apt-get install varnish
    编辑/etc/varnish/default.vcl 用里default.vcl file from github的内容替换它的内容
    编辑/etc/default/varnish
    把下面的内容
    1 DAEMON_OPTS=”-a :6081
    2 -T localhost:6082
    3 -f /etc/varnish/default.vcl
    4 -S /etc/varnish/secret
    5 -s malloc,256m”
    改为
    1 DAEMON_OPTS=”-a :80
    2 -T localhost:6082
    3 -f /etc/varnish/default.vcl
    4 -S /etc/varnish/secret
    5 -s malloc,64m”
    然后,我们需要编辑nginx的配置文件让它监听8080而不是80端口,Varnish替代了它来监听80端口。
    编辑/etc/nginx/conf.d/default.conf
    并替换
    1 listen 80;

    1 listen 8080;
    保存文件,再执行:
    1 <strong>service nginx restart
    2 service varnish restart</strong>
    再次使用100用户运行blitz.io测试
    基本上没有CPU使用率,性能大大改善。
    这次测试在1分钟内有2959次成功点击并从你的应用那里传输了28.36M的数据。平均每秒47次点击大约折合每天4,093,000次点击。
    再次使用250用户运行blitz.io测试
    这次测试在1分钟内有7342次成功点击并从你的应用那里传输了70.38M的数据。平均每秒117次点击大约折合每天10,134,627次点击。
    你可以在full final run blitz performance details in this PDF查看具体细节。
    这就是使用每月少于$20的服务器创建每天可以维持10万点击率的WordPress博客的过程,全归功于varnish和nginx,就是这么简单!

  • 相关阅读:
    练手
    课余时间娱乐下
    2017-2-19,作业
    JavaScript(下)
    JavaScript(上)
    Day15:网络编程-HTTP
    小知识:静态导入
    多线程知识点:锁
    多线程知识点:同步
    Day16:反射技术
  • 原文地址:https://www.cnblogs.com/adaonling/p/5497109.html
Copyright © 2020-2023  润新知