2013年10月

关于proxy_pass的参数路径问题

由于工作需要,开始分析nginx的proxy模块,在分析之前,当然要先会用了。于是开始熟悉该模块的一些指令,其中最基本的指令要属proxy_pass了。nginx的英文文档总是看着感觉有些别扭,于是按惯例先google了一些文章。

这一搜,就掉进坑里了。

这些文章里都把proxy_pass的目标地址是形如“127.0.0.1:8090”和“127.0.0.1:8090/”分开讨论,认为后者“/"的作用是删除url中匹配的部分,然后再讨论目标地址中带了uri的情况。

其实根本没这么复杂,只有两种情况:

(1)目标地址中不带uri。即proxy_pass的参数形如"http://127.0.0.1:8090"。
此时新的目标url中,匹配的uri部分不做修改,原来是什么样就是什么样。

(2)目标地址中带uri。即proxy_pass的参数形如“http://127.0.0.1:8090/dir1/dir2"

- 阅读剩余部分 -

利用here document携带c代码

假设你想通过一段脚本调用make来编译代码,并且在脚本中将一些编译需要的系统信息传递给makefile,可以通过bash的here document来实现。例如:

tmp_src_filename=fdfs_check_bits.c
cat <<EOF > $tmp_src_filename
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
int main()
{
        printf("%d\n", (int)sizeof(long));
        printf("%d\n", (int)sizeof(off_t));
        return 0;
}
EOF

gcc -D_FILE_OFFSET_BITS=64 -o a.out $tmp_src_filename
output=$(./a.out)

上面的代码摘自FastDFS的make.sh。

emlog的一键备份

不知道大家平时备份是不是和我一样这么操作的:

  1. 登陆到后台,备份sql(当然,或者是用插件定期备份发送到邮箱)
  2. 用ftp备份content目录

如果你想简化操作,并且和我一样苦逼的用着虚拟主机,下面的脚本也许可以帮到你。脚本很丑陋,能完成功能即可。

- 阅读剩余部分 -