01. 1.

一直莫名其妙的遇到类似这样错误:connect() to unix:/tmp/php-fcgi.sock failed (11: Resource temporarily unavailable) while connecting to upstream,N久之后才发现了Igor Sysoev的留言。

原文链接:http://marc.info/?l=nginx&m=125423942216521&w=2

> I found that :
>
> #define NGX_LISTEN_BACKLOG 511
>
> and use it as the backlog of listen()
>
> ls.backlog = NGX_LISTEN_BACKLOG;
> if (listen(s, ls.backlog) == -1) {
>
> Does it mean that only 511 connection could be accept at the same time ?

No, it means that up to 511 connections can be queued in kernel listen
queue. 511 is just a safe limit for the most OSes. For FreeBSD it’s -1,
i.e., value of sysctl kern.ipc.somaxconn.

> May I modify it to 1024 or higher( I am sure use it less than SOMAXCONN )

listen 80 default backlog=1024;


Igor Sysoev
阅读全文 »


04. 20.

本文系转载精文,原文地址:http://www.sudone.com/nginx/nginx_vs_lvs.html

lvs和nginx都可以用作多机负载的方案,它们各有优缺,在生产环境中需要好好分析实际情况并加以利用。

首先提醒,做技术切不可人云亦云,我云即你云;同时也不可太趋向保守,过于相信旧有方式而等别人来帮你做垫被测试。把所有即时听说到的好东西加以钻研,从而提高自己对技术的认知和水平,乃是一个好习惯。

下面来分析一下两者:

一、lvs的优势:

1、抗负载能力强,因为lvs工作方式的逻辑是非常之简单,而且工作在网络4层仅做请求分发之用,没有流量,所以在效率上基本不需要太过考虑。在我手里的 lvs,仅仅出过一次问题:在并发最高的一小段时间内均衡器出现丢包现象,据分析为网络问题,即网卡或linux2.4内核的承载能力已到上限,内存和 cpu方面基本无消耗。

2、配置性低,这通常是一大劣势,但同时也是一大优势,因为没有太多可配置的选项,所以除了增减服务器,并不需要经常去触碰它,大大减少了人为出错的几率。
阅读全文 »


07. 17.

最近收拾了一台nginx的web server, 就是之前别人配置过了, 他默认是使用nginx unix socket方式跑的
我为了能稳定点, 把nginx重新配置了一下, 换了tcp/socket方式跑
结果出了点问题, 论坛里所有的稍大的附件, 没有特别具体的大小, 应该在60K左右以上的附件, 无论如何都只能下载47.7K, 论坛跑是的discuz, 默认是跑的php4.4.8, fastcgi方式.
阅读全文 »


06. 20.

先声明下, 是小水水(kimi)发现的, 偶只是配合一下下

随便找一条nginx的rewrite规则, 例如discuz 6.x用的

rewrite ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/viewthread.php?tid=$2&extra=page\%3D$4&page=$3 last;

其实这条规则的不对的, 因为nginx的rewrite的后半部分URL实际地址那里应该是不支持正则的, 也就是说转义符是没必要的, 不然就会造成从”\”开始就断了URL重写

上面一条正确的写法应该是:

rewrite ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/viewthread.php?tid=$2&extra=page%3D$4&page=$3 last;


06. 11.

增加到系统服务器
# chkconfig –add nginx
# chkconfig –add php-cgi

现在可以启动php-cgi和nginx了

# service nginx start
# service php-cgi start

重启动使用restart

开始安装配置mysql
阅读全文 »


06. 11.

(3)增加网站用户
#  useradd hao32 -d /www/wwwroot/hao32.com -s /sbin/nologin
#  useradd linuxsense -d /www/wwwroot/linuxsense.org -s /sbin/nologin

如果参数-d后的路径本身就存在, 会提示
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
这并不影响,
#  chown -R hao32:hao32 /www/wwwroot/hao32.com
#  chown -R linuxsense:linuxsense /www/wwwroot/linuxsense

阅读全文 »


06. 11.

(8)安装nginx的rewrite模块需要pcre库
# tar zxvf pcre-7.3.tar.gz
# cd pcre-7.3
# ./configure
# make && make install

(9)安装nginx
# ./configure –prefix=/usr/local/nginx –with-http_stub_status_module
# make && make install

(10)编译出lighttpd中附带的spawn-fcgi,它的作用是来启动php-cgi
阅读全文 »


06. 11.

本文涉及的服务器构架主要针对3000人左右/15分钟(保守)的中小型网站, 多见于discuz!论坛构建的社区等等

环境为linux(内核2.6+), nginx, php(fastcgi), mysql 等高效开源软件构成, 成本低廉, 是普通个人站长朋友的首选,

但是针对部分企业, 这个方案也是一个非常不错的选择!

至于nginx和apache等web服务器的性能比较这里就不多说了

本文是以实例的方式来描述安装以及配置等情况, 供各位参考

1. 硬件环境

一台web服务器, 一台db服务器, 没有raid

web服务器 至强双核1.60GHz, 2G, 73GSCSI*2

db服务器 至强双核1.60GHz, 2G, 73GSCSI*2

阅读全文 »


05. 31.

今天在freebsd下用ports方式安装nginx+php+mysql环境, nginx使用www用户来跑的, 然后使用lighttpd中附带的spawn-fcgi来启动php-cgi, 我依然是用www用户来跑的fastcgi, 但是服务器上有多个用户, 我不想让他们使用一个用户来跑, 从安全上的考虑, 我可不想别人跨目录搞自己的站, 现在的phpshell都这么NB.
后来经朋友指点发现可以启动不同的fastcgi进程来解决这个问题, 一个用户只启动自己的进程,用自己的端口, 后来想了一下, 真的非常简单, 在使用spawn-fcgi启动的时候指定不同的端口指定不同的用户多简单啊, 唯一不爽的就是要多几个配置文件, 至少得一个用户一个吧

阅读全文 »