Warning: Redis::connect(): connect() failed: Connection refused in /var/www/admclub.com/wp-content/object-cache.php on line 418
Nginx | _站长俱乐部站长俱乐部

标签存档: Nginx

Nginx+php-memcache 3.03 缓存出现乱码解决方法

因为在国内买了个VPS,需要重新安装环境。
我的WEB配置是Nginx+php+memcache,每当一个页面被访问时,都会把输出写入到memcache中,第二次访问时,由nginx能过nginx-memc-module直接从memcached读取并输出。达到加速目的。

但是在这里安装中,发现当第二次后,输出的却是乱码,经验告诉我,这个内容是被压缩过的,很长的一段时间,我都认为是nginx的问题,很可能是头信息没有设置对,查了又查,发现NGINX的头信息应该是对的。

于是试下从memcached服务器中找答案,GOOGLE得知,自从memcached 1.4.1后,FLAG信息有所改变。于是把memcached从1.4.7降级到1.4.1。但是问题及不能解决。

接着,想到去查看memcached缓存的内容。一查才发现,原因在memcached中,HTML内容已经被压缩过了且flag的值是2!然后修改程序在写入memcached之前,把HTML保存到一个临时文件中,发现内容并没有被压缩,很显然是php-memcache模块自动压缩的了。于是再降级php-memcache模块到2.2.5。重新编译,重启php-fpm后,问题解决。

最后,不死心,还是到memcache官方查change log http://pecl.php.net/package-changelog.php?package=memcache

发现

3.0.3 – Enabled compression by default for values larger than 20kb

果然,自3.0.3后,凡大于20kb的内容,会自动被压缩。然而nginx-memc模块却不能自动识别压缩的。

继续阅读 »

nginx在windows上编译安装注意事项

因为测试需要(主要是为了可以添加删除一些模块),在windows上编译安装nginx 1.2.1最新稳定版本.

1.可以先做点小优化:减肥.可减小体积约2/3
修改\auto\cc\gcc
在CFLAGS=”$CFLAGS -g”之前加个#号,变成:
#CFLAGS=”$CFLAGS -g”

2.修改显示标题:
修改\src\core\nginx.h
#define NGINX_VER “myweb/” NGINX_VERSION

顺便记录一下配置:
./configure –prefix=/cygdrive/d/nginx –sbin-path=/cygdrive/d/nginx \
–with-cc-opt=”-D FD_SETSIZE=4096″ –with-rtsig_module –with-select_module \
–with-poll_module –with-http_ssl_module –with-http_realip_module \
–with-http_addition_module –with-http_xslt_module –with-http_sub_module \
–with-http_gzip_static_module –with-http_random_index_module \
–with-http_secure_link_module –with-http_stub_status_module

然后就是把一些运行环境DLL复制到NGINX相同目录下(略);

最后注意一下目录路径写法的变化:
注意:
在配置NGINX时,路径不能使用WINDOWS的方式,如E:/之类,应该使用/cygdrive/e/www
其中/e/表示E盘,注意大小写.
但是,
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
#fastcgi_split_path_info ^(.+\.php)(.*)$;
#fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME E:/www/$fastcgi_script_name;
include fastcgi_params;
}

PHP这段一定要使用WINDOWS格式的路径!!!

关闭自动索引:
autoindex off;

继续阅读 »

如何关闭windows下的nginx日志

早上,发现测试环境nginx的日志文件又把硬盘撑满.原因是我上次是使用access_log off;来关闭日志.但是这个方法明显不起作用,因为现在发现日志文件是off(这个是文件名),几十个G大,我晕了.

决定想办法让NGINX把日志输出到NULL设备去!如果是linux就是access_log /dev/null;到了WINDOWS就是access_log \\.\\nul;没错,就是两个\号.

日志文件消失了.

继续阅读 »

Nginx Windows下TCP连接数用完的解决方法

公司,测试环境.windows+Nginx+tomcat

下午,准备打开测试环境工作时,发现nginx出现502 bad gateway错误.按常理,我怀疑是后端的tomcat故障了.于是决定重启tomcat.但未果.直接打开TOMCAT的8080端口,是可以正常访问JAVA页面的.奇怪了.

502肯定是后端的问题呀.接着,打开NGINX错误日志,发现问题:

An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full

原来是TCPIC资源用完了.

于是GOOGLE,找到”试图从大于 5000 的 TCP 端口连接时收到错误”这篇文章:http://support.microsoft.com/kb/196271

启动注册表编辑器。
在注册表中,找到下面的子项,然后单击 参数:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
在 编辑 菜单上单击 新建,然后添加以下注册表项:
值名称: MaxUserPort
值类型: DWORD
值数据: 65534
有效范围: 5000-65534 (十进制)
默认值: 0x1388 (5000 十进制)

修改了注册表,但需要重启.因为其它同事正在使用机器,无法马上重启.所以,未知是否能修复此问题.

继续阅读 »

nginx 1.2.0似乎不支持ngx_http_upstream_keepalive模块

今天因为想安增加一个nginx模块,然后顺便把nginx升级到1.2.0,虽然梦想是美好的。但发现,似乎ngx_http_upstream_keepalive模块未能支持最新版本的nginx 1.2.0。ngx_http_upstream_keepalive模块最后更新时间已是7个月之前了。希望它能更新一下。

没办法,临时又再次使用老版本1.0.5

以下是这次的configure

./configure –user=www –group=www –prefix=/usr/local/nginx \
–with-http_stub_status_module \
–with-http_ssl_module –with-openssl= \
–with-http_addition_module \
–with-zlib= \
–add-module=../agentzh-memc-nginx-module-8befc56 \
–add-module=../ngx_cache_purge-1.3 \
–with-file-aio –with-google_perftools_module \
–with-http_gzip_static_module \
–add-module=../ngx_http_upstream_keepalive-d9ac9ad67f45 \
–add-module=../nginx-accesskey-2.0.3

继续阅读 »

Nginx整合Tomcat

Nginx是很优秀的WEB软件,性能上比apache好很多,特别是在处理静态内容方面尤其突然。所以如果Nginx+Tomcat的话,会比Apache+Tomcat要好。
原理是,Nginx主要负责处理静态内容,而当接收到jsp动态页面的请求时,通过proxy转发到tomcat。当然,同时还可以支持php.

继续阅读 »

Nginx-JSP-Tomcat-PHP

Nginx+JSP环境:Centos5 Nginx-0.7.14.tar.gz Tomcat5.5.20

1 安装pcre
为了确保能在 Nginx 中使用正则表达式进行更灵活的配置,安装之前需要确定系统是否安装有 PCRE(Perl Compatible Regular Expressions)包,rpm包和tar.gz都可以
Rpm包如下:
pcre-6.6-1.1
pcre-devel-6.6-1.1
tar.gz包
#wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.7.tar.gz
#tar zxvf pcre-7.7.tar.gz
#cd pcre-7.7
# ./configure
# make
# make install
如果没有的话会报类似如下错误:

继续阅读 »

Linux+Nginx+Tomcat

本文节选自某电子商务网站JSP应用服务器的环境搭建实施文档,文中的IP和域名进行了修改。JSP应用服务器由Nginx+Tomcat整合而成,而新的Tomcat 7.0相对于以前的版本来说,它的新特征如下:

◆使用随机数防止跨站脚本攻击;

◆改变了安全认证中的jessionid的机制,防止Session攻击;

◆可进行内存泄露的侦测和防范;

◆在war文件外使用别名去存储静态内容;

◆支持Servlet 3.0、JSP 2.2和JSP-EL 2.2;

◆更容易将Tomcat内嵌到应用中去,比如JBoss;

◆异步日志。

其中第三点是我最为关注的,在以前的版本中Tomcat均存在着内存泄露的情况,我希望能在新版本中有所改善。

Nginx与Tomcat整合的好处如下所示:

◆静态分离,加快用户访问网站的速度。

◆整个负载均衡层和Web层的工作流程为LVS/DR+Keeaplived→Nginx反向代理(动静分离)→Tomcat集群,可以保证整个网站不会因为某一台LVS或Nginx+tomcat机器挂掉而影响网站的运营。

◆Nginx稳定,宕机的可能性微乎其乎。

下面是项目实施的具体步骤——

继续阅读 »

Joomla nginx rewrite

Joomla 1.7默认使用了URL伪静态,达到SEO优化的效果.

Nginx下Joomla伪静态write规则只要一行:

location / {
try_files $uri $uri/ /index.php?q=$uri&$args;#添加这行就可以了
}

为了进一步优化Joomla在nginx上的性能,还可以添加以下几行:

# deny running scripts inside writable directories
location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ {
return 403;
error_page 403 /403_error.html;
}
# caching of files
location ~* \.(ico|pdf|flv)$ {
expires 1y;
}

location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$ {
expires 14d;
}

继续阅读 »

解决Nginx+Memcache下出现502错误的问题

使用Nginx+Memcache模块(HttpMemcachedModule或NginxHttpMemcModule)进行加速静态内容真是无敌的选择!

在Memcache模块正常运行的情况下,Nginx可以直接从Memcache内存中读取内容并直接显示,根本占用硬盘IO,飞快得很!

但是,有时候Memcache却会因故或无故地停止运行了!这时候Nginx将会抛出502错误信息,很烦人。解决这个问题基本也不难。原理就是使用Nginx的error_page 502转向技术。当出现这个错误的时候,把502错误转向一个@目的来处理。

继续阅读 »

第 1 页,共 3 页123