异想天开

What's the true meaning of light, Could you tell me why

博客搬家了

日期:2014-07-16 15:07:51
  
最后更新日期:2016-08-06 17:43:44
哈哈,博客还是要继续的,感觉一年了也在上面花过一点心思,几天前迁移到阿里云主机。本以为迁移会很顺利的半个小时解决,结果中途还是遇到点小麻烦。买的阿里云主机是512M内存的低端机,使用的了nginx+php+mysql组合来运行wordpress。由于低端机需要对主机进行一些优化,我不知道优化,所以结合网上的优化vps的经验进行了如下设置: 1.设置系统交换文件,主要用swapon,mkswap命令,不熟悉可以先看下man手册
[code lang="cpp"]
#dd一个512M的文件,这个可以看出主机磁盘io速度
dd if=/dev/zero of=swapfile bs=1024 count=$((512*1024))
#mkswap该文件
mkswap ./swapfile
#swapon该文件
swapon ./swapfile
#自动挂载它,编辑/etc/fstab添加下面一行
swapfile绝对路径 swap swap defaults 0 0
[/code]
2.mysql设置,只能说是mysql设置,mysql优化的水好深
[code lang="cpp"]
#show engines;关闭不需要的存储引擎,编辑/etc/my.conf,在mysqld配置项添加
skip-memory
[/code]
3.有次发现php-fpm进程数量30来个,每个进程要耗20M左右,所以想关掉一些
[code lang="cpp"]
#vim /etc/php-fpm.d/www.conf设置max_children数量
pm.max_children = 12
[/code]
4.最小权限原则
a.mysql新建一个用户,该用户仅对wordpress用到的数据库有权限
[code lang="cpp"]
grant all on 数据库名.* to 用户名@localhost identified by "密码(这里是直接密码,不需要用passwd函数)";
flush privileges ;
[/code]
b.php解释程序默认也是用一个用户来访问,读写其它用户的目录进行了隔离
c.删除.bash_history记录,在~/.bashrc或/etc/profile里面添加
[code lang="cpp"]
unset HISTFILE
history -c
[/code]

5.nginx设置代理
wordpress里面使用了伪静态,也就是包含某个目录下的html文件时,要按php的方式解释,需要对nginx的配置类似这样设置:
[code lang="cpp"]
location = /blog/index.php/archives/.*\.html {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
location ~ /blog/index.php/.* {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
[/code]
还有一个需求,就是希望用户访问www.thinks-bz.com,直接跳转到www.thinks-bz.com/blog/,因为主机是和朋友共用,我们用目录来区分,加上这个跳转费了一些周折,开始我想直接加上nginx的配置里面,nginx配置文件的if不支持叠加与嵌套,当时还不知道nginx+lua模块,后来只能用php做了跳转,code如下:
[code lang="cpp"]
<?php
$the_host = $_SERVER['HTTP_HOST'];//取得当前域名
//如果域名不是带www的网址那么进行下面的301跳转
if( ( $the_host == 'www.thinks-bz.com' )|| ( $the_host == 'life.thinks-bz.com' ) )
{
if(is_array($_GET)&&count($_GET)>0)//先判断是否通过get传值了
{
if( !strpos($_SERVER['PHP_SELF'],"blog"))
{
$the_target='Location:/blog'.$_SERVER['REQUEST_URI'];
header('HTTP/1.1 301 Moved Permanently');
header($the_target);
}
}else{
header('HTTP/1.1 301 Moved Permanently');//发出301头部
header('Location:/blog/');//跳转到带www的网址
}
}
?>
[/code]
当然还可以注册监控,某些网站提供这样的服务,大概30分钟访问一次你的网站,从而判断服务是否能够正常提供,若不能访问,则发报警邮件到你的邮箱,不过,暂时还不想承受警报邮件冲击波,目前直接忽略了。当然,vps上面还可以做一些细小的优化,让它更快更好的运行。