二蛋 发布的文章

Rewrite重写时的优先级问题

现象:
把apache换成了nginx后,发现网站的播放页面明明生成了静态html文件,可是访问的确是伪静态文件(静态和伪静态路径一样)。

解决方法:

1、apache
在.htacess 文件中第二行增加:

RewriteCond %{REQUEST_FILENAME} !-f

其它常用的参数:

-d 是否是一个目录

-f 是否是一个文件

-s 是否是一个正常的有大小的文件

-l 是否是一个快捷方式

-x 是否是一个具有执行权限的文件

-F 检查TestString是还是是一个合法的文件

-U 检查TestString是否是一个合法的URL

2、nginx

if (!-f $request_filename){
rewrite ^/(.*)/(.*)/(.*)-(.*)$ /index.php?s=/vod-play-id-$2-sid-$3-pid-$4-listname-$1;
}

判断文件存在则优先访问文件,不存在则访问rewrite路径

调节swap使用

今天发现一台8G内存的服务器可用内存剩余7G,但已经频繁使用swap。

解决这个问题之前,首先我们来了解一下linux系统的缓存机制:

linux会使用硬盘的一部分做为SWAP分区,用来进行进程调度--进程是正在运行的程序--把当前不用的进程调成‘等待(standby)‘,甚至‘睡眠(sleep)’,一旦要用,再调成‘活动(active)’,睡眠的进程就躺到SWAP分区睡大觉,把内存空出来让给‘活动’的进程。

如果内存够大,应当告诉linux不必过多的使用SWAP分区, 可以修改swappiness的值。
swappiness=0的时候表示最大限度使用物理内存,然后才是swap分区;
swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。

- 阅读剩余部分 -

Table XXX is marked as crashed and should be repaired

今天在更新网站时突然分类下的数据全没了,而查看网站分类和留言都正常。登陆phpmyadmin点击数据库的ff_vod表时发现了错误提示:

[ERROR] #145: Table 'ff_vod' is marked as crashed and should be repaired

解决:
方法一:

  1. 登陆phpmyadmin
  2. 在左则选中相应的数据库
  3. 在右则勾选错误信息中的那个'ff_vod'表
  4. 下拉菜单选择”修复表”
    1.png

方法二:

# cd /usr/local/mysql/bin/
myisamchk -c -r /var/lib/mysql/2dan_sql/ff_vod.MYI 

然后myisamchk 工具会帮助你恢复数据表的索引。

Mysql查看和修改最大连接数

查看mysql连接数:

mysql> show variables like 'max_connections'; 

修改最大连接数:

方法一:

mysql> set GLOBAL max_connections=1000;

这种方式有个问题,就是设置的最大连接数只在mysql当前服务进程有效,一旦mysql重启,又会恢复到初始状态。因为mysql启动后的初始化工作是从其配置文件中读取数据的,而这种方式没有对其配置文件做更改。

方法二:
编辑 /etc/my.cnf 文件:

max_connections=1000

然后重启MySQL即可。