标签  ”Nginx“  下的文章

还是没忍住把nginx给升级到了0.8.53

军哥的lnmp一键安装包采用的nginx是0.7.65,是比较早的版本了,很多人问他为什么没有升级nginx到最新版,他的理由是最新版不稳定,还是老的版本比较稳定。昨天给这个博客的nginx升级到了最新版,看了下没什么问题,今天又查询了nginx官网,官网说0.8以后的版本都是稳定版了,于是刚才也给油吧的VPS升级了nginx到0.8.53,。查了下包括人人网之类的比较大的网站都升级nginx到0.8x的,所以我也就放心的升级了,nginx的升级方式比较简单,步骤也很简单。

首先下载nginx的最新版,目前最新版的下载地址是http://nginx.org/download/nginx-0.8.53.tar.gz

wget http://nginx.org/download/nginx-0.8.53.tar.gz

然后解压nginx压缩包,并进入nginx文件目录。

gzip -d nginx-0.8.53.tar.gz
tar xvf nginx-0.8.53.tar
cd nginx-0.8.53

接下来执行下面的命令

./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

命令结束后在make

make

编译完,在objs目录下会有一个nginx的执行文件。

再备份原来的nginx

mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old

接着把在objs下生成的新的nginx赋值到到sbin目录下

cp -a nginx /usr/local/nginx/sbin/

检测下nginx是否正常

/usr/local/nginx/sbin/nginx -t

出现下面的提示就说明一切正常。

让nginx把nginx.pid改成nginx.pid.oldbin 跟着启动新的nginx,一般使用lnmp一键安装包的朋友执行下面的命令就可以了。

kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`

退出旧的nignx

kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`

到这里,nginx就全部升级完成了,你可以用探针看看目前的版本号,不过nginx更新也挺迅速的,要跟着他更新还真麻烦,而且我问了很多人,都说nginx不用一直跟着更新的,可以更新到一个稳定版以后用一段时间,等时间长了再更新。这个方法更新的好处就是不会影响到站点的正常访问,整个过程是平滑升级的。

升级前的探针显示:

升级后的显示:

整理一些Linux VPS管理过程中常用的东西

记录一些在使用VPS中常常涉及到的命令和方法,方便自己查询,不定期更新内容,欢迎交流。

一、Linux下常用命令

目录操作:
rm -rf mydir /*删除mydir目录*/
cd mydir /*进入mydir目录*/
cd - /*回上一级目录*/
cd .. /*回父目录,中间有空格*/
cd ~ /*回根目录*/
mv tools tool /*把tools目录改名为tool */
ln -s tool bac /*给tool目录创建名为bac的符号链接,最熟悉的应该就是FTP中www链接到public_html目录了*/
cp -a tool /home/vpser/www /*把tool目录下所有文件复制到www目录下 */

文件操作:
rm go.tar        /* 删除go.tar文件 */
find mt.cgi    /* 查找文件名为mt.cgi的文件 */
df –h              /* 查看磁盘剩余空间,好像没这个必要,除非你太那个了 */

解压缩:
tar xvf wordpress.tar       /* 解压tar格式的文件 */
tar -tvf myfile.tar     /* 查看tar文件中包含的文件 */

tar cf toole.tar tool /* 把tool目录打包为toole.tar文件 */
tar cfz vpser.tar.gz tool /* 把tool目录打包且压缩为vpser.tar.gz文件,因为.tar文件几乎是没有压缩过的,MT的.tar.gz文件解压成.tar文件后差不多是10MB */

tar jcvf  /var/bak/www.tar.bz2 /var/www/    /*创建.tar.bz2文件,压缩率高*/
tar xjf www.tar.bz2 /*解压tar.bz2格式*/

gzip -d ge.tar.gz        /* 解压.tar.gz文件为.tar文件 */
unzip phpbb.zip      /* 解压zip文件,windows下要压缩出一个.tar.gz格式的文件还是有点麻烦的 */

下载:
wget http://soft.vpser.net/web/nginx/nginx-0.8.0.tar.gz
/*下载远程服务器上的文件到自己的服务器,连上传都省了,服务器不是100M就是1000M的带宽,下载一个2-3兆的MT还不是几十秒的事 */
wget -c http://soft.vpser.net/web/nginx/nginx-0.8.0.tar.gz
/* 继续下载上次未下载完的文件 */

进程管理:
ps -aux   /*ps 进程状态查询命令*/

ps命令输出字段的含义:
[list]
[*]USER,进程所有者的用户名。
[*]PID,进程号,可以唯一标识该进程。
[*]%CPU,进程自最近一次刷新以来所占用的CPU时间和总时间的百分比。
[*]%MEM,进程使用内存的百分比。
[*]VSZ,进程使用的虚拟内存大小,以K为单位。
[*]RSS,进程占用的物理内存的总数量,以K为单位。
[*]TTY,进程相关的终端名。
[*]STAT,进程状态,用(R--运行或准备运行;S--睡眠状态;I--空闲;Z--冻结;D--不间断睡眠;W-进程没有驻留页;T停止或跟踪。)这些字母来表示。
[*]START,进程开始运行时间。
[*]TIME,进程使用的总CPU时间。
[*]COMMAND,被执行的命令行。
[/list]

ps -aux | grep nginx  /*在所有进程中,查找nginx的进程*/
kill 1234    /*1234为进程ID,即ps -aux 中的PID*/
killall nginx /*killall 通过程序的名字,直接杀死所有进程,nginx为进程名*/

Vim操作:

移动类的:
h/j/k/l: 左/下/上/右 移一格
w : 向后词移动 (前面加数字移动多少个词)
b : 向前词移动 (前面加数字移动多少个词)
e : 向后移到词末
ge : 向前移到词末
$ <End> : 行末
0 <Home> : 行首
tx : 向右查找本行的x并移到那儿(大写时向左)
33G : 移到文件的第33行
gg : 文件首行
G : 文件尾行
33% : 文件的33%处
H/M/L : 屏幕的首/中/尾行
zt/zz/zb : 当前行移到屏幕的首/中/底部

跳转:
"  : 回到跳转来的地方
CTRL-O : 跳到一个 “较老” 的地方
CTRL-I <Tab> : 则跳到一个 “较新” 的地方

查找:
/ : 向下查找(后加关键字)
? : 向上查找(后加关键字)
n : 下一条符合的记录

编辑:
i : 转换到插入模式
x : 删除当前字符
. : 重复最后一次的修改操作(同PS里ctrl+f执行滤镜)
u : 撤销操作
CTRL-R : 重做
p : 将删除的字符插入到当前位置(put)

退出保存:
:q : 退出
:q! : 不保存退出
ZZ : 保存后退出
:e! : 放弃修改重新编辑

二、nginx下phpwind伪静态

location / {
rewrite ^(.*)-htm-(.*)$ $1.php?$2 last;
rewrite ^(.*)/simple/([a-z0-9_]+.html)$ $1/simple/index.php?$2 last;
}

三、nginx下301重定向方法

进行了301重定向,把www.bujinshuo.com和bujinshuo.com合并,并把之前的域名也一并合并.方法是判断nginx核心变量host(老版本是http_host):
server {
server_name www.bujinshuo.com bujinshuo.com ;
if ($host != 'www.bujinshuo.com' ) {
rewrite ^/(.*)$ http://www.bujinshuo.com/$1 permanent;
}
...
}

输入指令~

/usr/local/nginx/sbin/nginx -t

提示:
the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
configuration file /usr/local/nginx/conf/nginx.conf test is successful

测试成功~ 重启nginx~ 输入指令~

/usr/local/nginx/sbin/nginx -s reload

四、数据库导入导出

1、直接在phpmyadmin中导入和导出

2、/usr/local/mysql/bin/mysql -u用户名 -p密码 -h主机 数据库 < 路径

3、/usr/local/mysql/bin/mysqldump -u 用户名 -p 数据库名 > XX.sql

五、通过SSH命令下载文件夹及整个目录的方法

原先数据无法打包,可以通过以下命令在自己VPS的SSH执行以下相对 命令来完成数据转移
wget  -nH --cut-dirs=* -m --ftp-user=* --ftp-password=* ftp://*.*.*.*/*
-nH:不创建以主机名命名的目录。
--cut-dirs:忽略主机上的目录层数。
-m:下载所有子目录并且保留目录结构。
--ftp-user:FTP用户
--ftp-password:FTP密码
ftp://*.*.*.*/*:FTP主机地址。最后可以跟目录名来下载指定目录
例如:wget  -nH --cut-dirs=1 -m --ftp-user=ebandao --ftp-password=123456 ftp://bujinshuo.com/123/

六、linux SSH解压文件权限问题

很多在linux SSH下解压下载的文件通常会被全部更改为755或者其他权限
现在的
解决办法是进入要更改的文件的目录
执行:chown -R admin:users *

然后全部的目录owner会被更改为admin
注意:admin 可以更改为你认为正确的使用者
应该权限属性可以在
FTP正常更改了

Nginx自动添加“/”的问题

今天偶然发现这样一个问题,VPS上的phpmyadmin管理页面有些诡异,使用http://www.bujinshuo.com/phpmyadmin访问的时候,用户无法登陆,会直接跳转到我的博客首页,而且也显示不正常,如图:

phpmyadmin

phpmyadmin

但是使用域名http://www.bujinshuo.com/phpmyadmin/  访问就完全正常,页面也显示正常,这个让我有些不明白。

phpmyadmin1

phpmyadmin1

后来上网一查才知道是因为nginx目录没有自动添加“/”造成的,网上查了一下方法,基本上都是说修改nginx.conf来完成自动添加“/”

http{
...
server_name_in_redirect off;   //自动添加斜线”/”语句
...
}

这个方法我试了一下,好像并没有效果,不知道是不是版本的问题,等下次再来试一下了。

终于把这个VPS完全搭建好了

经过几天的努力,终于把这个VPS搭建好了,现在博客也搬到了这个VPS上,用起来是比虚拟主机舒服多了,要自主的多,可以按照自己的需求来分配硬盘大小和安装自己需要的组件。

前几天FTP账户出现的530验证失败的问题终于在修改phpmyadmin的对应账户密码以后得到了解决,本身问题也不复杂,主要就是还没入门,对Linux的无知让我绕了很多圈子,不管怎样,现在总算是解决了。

博客搬过来以后,以前的伪静态地址全部失效了,VPS是nginx环境,以前在apache下使用的.htaccess不能继续使用了,只能修改nginx.conf添加WP的伪静态规则,再往上找了一段规则添加进去,成功完成博客的伪静态,分享一下在nginx下对WordPress普遍适用的伪静态规则:

location / {
index index.html index.php;
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
}