如何减小nginx主文件编译后的大小

作者:linux120 发布时间:August 12, 2013 分类:服务器配置 No Comments

缺省配置和编译是带-g选项的,这样会使可执行文件变大,去掉-g就很小了。

另外还有debug信息。

编辑文件: nginx/auto/cc/gcc

找到debug项,注释掉。

重新configure 和make,现在只剩下几百k了。

利用Nginx实现简易CDN节点

作者:linux120 发布时间:July 2, 2013 分类:服务器配置 No Comments

使用Nginx泛域名解析+反向代理+静态资源缓存。
安装nginx,安装过程不再赘述,记得带上pcre、gzip、sub、status这几个模块,另外如果想开通在线清理缓存功能,需要安装ngx_cache_purge这个第三方模块。
删除nginx.conf中默认的server段,此操作不做你会让你抱憾终身。
将以下代码插入nginx.conf尾部,-t测试-s reload重启即可。
#定义缓存的临时目录以及缓存存储目录
proxy_temp_path /data/temp;
proxy_cache_path /data/cache levels=1:2 keys_zone=cache_one:32m inactive=1d max_size=3g;
server
{
listen 80;
#接收泛域名解析,务必保证在这之前没有其他server段干扰。
server_name _;
root /tmp;
access_log off;

#匹配出对应域名
if ( $host ~* (.*)\.(.*)\.(.*))
{
set $domain $1;
}

location /
{
#定义所使用的缓存以及缓存的目录结构。
proxy_cache cache_one;
proxy_cache_valid 200 304 12h;
proxy_cache_key $host$uri$is_args$args;
#下面这条灰常重要,告知upstream源服务器所要请求的域名是什么。
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#把请求扔给upstream,然后等着领赏吧。
proxy_pass http://jp0129;
proxy_set_header Accept-Encoding "";
expires 1d;
}
location ~ .*\.(php)?$
{
#动态请求不缓存
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://jp0129;
proxy_set_header Accept-Encoding "";
}
}
upstream jp0129
{
server 106.187.51.139;
}
大功告成,根据自身情况上机器,每台部署一个nginx即可,在域名管理中把vcs.host789.com直接A记录几条轮询,配合一个小脚本来实现检测各个节点是否存活,节点宕掉就直接通过dnspod的api修改vcs.host789.com的解析记录,剔除无效节点即可。

web.py调试session无效

作者:linux120 发布时间:May 19, 2013 分类:服务器配置 No Comments

因业务需要使用web.py写了个简易缓存系统VCS,在调试session的时候死活无法生效,提示线程字典不存在login方法,纠结的发现web.py的session系统在调试(Debug)/重载(Reloader)模式下是无法生效的,可以按如下两种方式解决:
1、添加web.config.debug = False关闭调试模式,session就可以生效了。
2、在合适位置如下代码,让session在调试模式下可用:
if web.config.get('_session') is None:
session = web.session.Session(app, db.SessionDBStore())
web.config._session = session
else:
session = web.config._session

完全关闭shopex的缓存

作者:linux120 发布时间:May 9, 2013 分类:服务器维护 No Comments

很多人是直接将home/cache下的一个16M文件改名、只读或者删除,这样很有可能会引发页面空白问题,正确的做法是:
1、找到config/config.php将define('WITHOUT_CACHE',false); 改成define('WITHOUT_CACHE',true);
2、清除home/cache/下的文件。

whmcs迁移故障一例

作者:linux120 发布时间:April 16, 2013 分类:服务器维护 No Comments

帮一客户将whmcs从apache+mod_php迁移至nginx+php-fpm,迁移过程不细表,有以下两个问题。
1、中文乱码
默认whmcs系统数据库使用的是latin1编码,dump数据库的时候需要指定默认编码。
2、路径错误
检查$smarty.server.PHP_SELF的值没有正确获取到,$smarty.server.PHP_SELF又是直接读取系统$_SERVER['PHP_SELF']的,该值也为空,遂检查php-fpm中的设置cgi.fix_pathinfo为0,将cgi.fix_pathinfo改为1后重启php-fpm问题解决。