博威---云架构决胜云计算

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 11711|回复: 16

Nginx技术大全

[复制链接]
发表于 2010-3-12 06:28:00 | 显示全部楼层 |阅读模式
http://www.linuxpk.com/type1084.html   比较全的资料

http://www.nginx.com.cn/



欢迎访问 Nginx 的中文维基
Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器 。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的,它已经在该站点运行超过四年多了。Igor 将源代码以类BSD许可证的形式发布。自Nginx 发布四年来,Nginx 已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。目前国内各大门户网站已经部署了Nginx,如新浪、网易、腾讯等;国内几个重要的视频分享网站也部署了Nginx,如六房间、酷6等。新近发现Nginx 技术在国内日趋火热,越来越多的网站开始部署Nginx。
因为 Nginx 的文档大部分是俄文的,本维基的目的是帮助使用中文世界的用户安装、配置和交换有关 Nginx 的使用经验。大部分文档源自(al-nginx AT none.at,Aleksandar Lazic) 的工作,有关本维基本身的问题请直接询问Cliff Wells[1] ,其他翻译请点击 Nginx 发布 Nginx 新闻 主要文档 核心模块 基本模块 其他模块 第三方模块 配置示例和方法 社团 外部资源
 楼主| 发表于 2010-3-12 06:29:12 | 显示全部楼层
http://www.nginx.com.cn/    http://www.nginxcn.com/   http://blog.s135.com/post/314/



APMServ 5.2.6 是一款拥有图形界面的快速搭建Apache 2.2.9、PHP 5.2.6、MySQL 5.1.28&4.0.26、Nginx 0.7.19、Memcached 1.2.4、phpMyAdmin 2.11.9.2、OpenSSL、SQLite、ZendOptimizer,以及ASP、CGI、Perl网站服务器平台的绿色软件。无需安装,具有灵活的移动性,将其拷贝到其它目录、分区或别的电脑时,均只需点击APMServ.exe中的启动按钮,即可自动进行相关设置,将Apache和MySQL安装为系统服务并启动。APMServ集合了Apache稳定安全的优点,并拥有跟IIS一样便捷的图形管理界面,同时支持MySQL 5.0 & 4.0两个版本,虚拟主机、虚拟目录、端口更改、SMTP、上传大小限制、自动全局变量、SSL证书制作、缓存性能优化等设置,只需鼠标一点即可完成。

  1、注意事项:APMServ程序所在路径不能含有汉字和空格。
  2、MySQL默认用户名:root,密码为空
  3、MySQL数据库文件存放目录:MySQL5.1\data或MySQL4.0\data
  4、网站根目录[HTML,PHP]www\htdocs [ASP]www\asp [CGI,Perl]www\cgi-bin
  5、访问本机请用http://127.0.0.1/https://127.0.0.1/ (如果开启SSL)
  6、非默认端口,网址为http://127.0.0.1:端口/或https://127.0.0.1:端口/
  7、如果在“扩展功能”中选择使用Memcached,它的端口为:11211
  8、APMServ集成了以下软件:

  Apache 2.2.9 【HTTP服务器】
  Nginx 0.7.19 【HTTP服务器】
  NetBox 2.8 Build 4128 【HTTP服务器+ASP脚本解释引擎】
  PHP 5.2.6 【PHP脚本解释引擎】
  MiniPerl 5.8 【Perl脚本解释器】
  Memcached 1.2.4 【key-value内存缓存系统】
  MySQL 5.1.28 【MySQL数据库服务器】
  MySQL 4.0.26 【MySQL数据库服务器】
  phpMyAdmin 2.11.9.2 【MySQL数据库在线管理工具】
  eAccelerator 0.9.5.3 【PHP脚本加速引擎】
  ZendOptimizer 3.3.3 【PHP脚本加速引擎】
  OpenSSL 0.9.8h 【HTTPS(SSL)安全传输协议】

  附加组件:
  ㈠Perl、CGI支持(需下载ActivePerl):
  APMServ 5.2.6 附带的是MiniPerl,可以运行简单的Perl、CGI程序。如果运行复杂的Perl、CGI程序,请下载ActivePerl,安装在APMServ所在分区根目录下的usr目录中。假如APMServ所在目录为E:\APMServ5.2.6,则将ActivePerl的安装路径选为E:\usr
  ActivePerl 5.8.8.819 for Windows 下载地址:[华军软件园] [中国站长站]

  注意事项:
  迅雷、Skype、PPLive、BT等软件启动后默认会占用80端口,导致Apache无法启动。解决方法:先关闭这些软件,启动完APMServ之后,再开启这些软件。

  已知BUG修正:
  1、无法启动Nginx的BUG修正方法
  http://www.unixsns.com/space.php?uid=1&do=thread&id=51

  使用教程(非官方):
  ● 用APMServ一键快速搭建Apache+PHP+MySQL+Nginx+Memcached+ASP运行平台

  软件截图:
  ㈠主界面:
  
 楼主| 发表于 2010-3-12 06:30:50 | 显示全部楼层
freebsd+nginx+php+mysql+zend+phpmyadmin+系统优化+防止ddos +傻瓜式ports安装法

前言
1. 看了张宴的《linux版本的Nginx 0.5.33 + PHP 5.2.5》后,马上找了一台服务器测试了一下,然后加了一个线上的discuz的论坛跑了一下,性能非常的卓越,感叹搜遍整个互联网,就是nginx+php唯一的一篇文档。对于他的文档,我认为:写的非常专业,对于php extensions库也分析的非常透彻。但是一篇专业的文档,也存在一些专业带来的麻烦,就是起点有点高,假如要更新里面的软件包和定义自己的目录,势必需要一点波折。另外不知道为何,最近网站老是打不开。情急之下,小弟重新写了一篇freebsd下面的傻瓜式安装文档。
2. 又结合了平时的一些经验,顺便把如何防卸ddos,并通过对系统的优化,如何来进一步提高nginx的并发数做 一些详解。
3. 由于个人能力有限,错误的地方,还请读者谅解
一、安装软件前的准备
系统的安装:插入freebsd6.2以上的光盘,最小化安装系统,同时安装好ports
二、手动安装nginx+php
1) 进入系统后,准备cvs更新:
1. cd /usr/ports/net/cvsup-without-gui
2. cp /usr/share/examples/cvsup/ports-supfile /etc/ports-supfile
3. # vi /etc/ports-supfile
将其中的#*default host=CHANGE_THIS.FreeBSD.org一行改为
*default host=cvsup4.FreeBSDchina.org
4. 更新ports
/usr/local/bin/cvsup -g -L 2 /etc/ports-supfile
2) 安装mysql
#cd /usr/ports/databases/mysql51-server
#make WITH_CHARSET=gbk WITH_XCHARSET=all WITH_PROC_SCOPE_PTH=yes BUILD_OPTIMIZED=yes BUILD_STATIC=yes SKIP_DNS_CHECK=yes WITHOUT_INNODB=yes install clean
#cp /usr/local/share/mysql/my-large.cnf /usr/local/etc/my.cnf ##mysql的优化参数,也可以手动修改
#rehash
# mysql_install_db –user=mysql ##初始化mysql
#/usr/local/bin/mysqld_safe & ##启动mysql
#/usr/local/bin/mysqladmin -u root password ‘newpass’ ##修改root密码,newpass是你需要改的密码
关闭mysql可以使用mysqladmin -uroot -p shutdown
3) 安装php
#cd /usr/ports/lang/php5
#make config ##配置编译参数
[X] CLI Build CLI version
[X] CGI Build CGI version
[ ] APACHE Build Apache module
[ ] DEBUG Enable debug
[X]] SUHOSIN Enable Suhosin protection system
[X] MULTIBYTE Enable zend multibyte support
[ ] IPV6 Enable ipv6 support
[ ] REDIRECT Enable force-cgi-redirect support (CGI only)
[ ] DISCARD Enable discard-path support (CGI only)
[X] FASTCGI Enable fastcgi support (CGI only)
[X] PATHINFO Enable path-info-check support (CGI only)
#make install clean
# cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini ##cp php.ini配置文件
4) 安装php5-extensions
# cd /usr/ports/lang/php5-extensions/
#make config
Options for php5-extensions 1.1
————————————————-
[X] CURL CURL support
[X] FTP FTP support
[X] GD
[X] GETTEXT
[X] MBSTRING multibyte string support
[X] MCRYPT Encryption support
[X] MYSQL
[X] PCRE Perl Compatible Regular Expression support
[ ] POSIX //去掉.
[ ] SQLITE //去掉.
[X] ZIP ZIP support
[X] ZLIB
# make install clean
5) 安装Zend Optimizer
#cd /usr/ports/devel/ZendOptimizer/
#make #不要安装,只需要下载解包
#cd /usr/ports/devel/ZendOptimizer/work/ZendOptimizer-*
#./install-tty ##会出现一个文字的安装界面,只是最后一步,不要选择apache就可以了
#vi /usr/local/etc/php.ini #插入zend的路径,一般来说,上面的安装会自动加入下面的文字,假如没有,请手动添加。
[Zend]
zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-3.3.0
zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-3.3.0
zend_optimizer.version=3.3.0a
zend_extension=/usr/local/Zend/lib/ZendExtensionManager.so
zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so
小提示:安装zend,在freebsd下面,目前只有支持到 php5.1.x,对于php5.2.x还不能支持,因为zend还没有为php5.2.x开发版本,在网上查了好多关于解决此类的问题,但得到的结果是,zend可以顺利安装,phpinfo也显示zend正常了,但程序无法调用,即zend没有工作,也就是目前无法解决,我想只有等到zend php5.2.x的版本后,才可以解决此问题,也希望哪位已经解决此类问题的兄弟,share一下你的经验。假如你非要使用zend,那就请你将php降到5.1.x,或者你不当心已经升级了ports,那建议你可以安装php4.x,毕竟目前php4.x还通用于大部分的环境
6) 安装nginx
#cd /usr/ports/www/nginx/
#make install
7) 安装lighttpd,为了得到fastcgi
# cd /usr/ports/www/lighttpd/
#make install
#rehash
配置nginx
#user nobody
删除前面的注释#,改成 user www
#log_format main ‘$remote_addr – $remote_user [$time_local] ‘
# ‘”$request” $status $body_bytes_sent ‘
# ‘”$http_referer” “$http_user_agent”‘;
log_format main ‘$remote_addr – $remote_user [$time_local] ‘
‘”$request” $status $body_bytes_sent ‘
‘”$http_referer” “$http_user_agent”‘;
##以上步骤,为了能够正常分析log的pv,hits,访问量,才设定的,默认的log格式,是无法准确分析出所需要的结果
location / {
root /usr/local/www/nginx;
index index.html index.htm
 楼主| 发表于 2010-3-12 08:29:23 | 显示全部楼层
Windows下Nginx以服务的方式运行
假设nginx安装在c:\nginx\下:

1.下载微软服务注册工具srvany.exe, instsrv.exe, srvany-instsrv存放到c:\nginx\目录下

2.安装Nginx服务, 将命令行切换到c:\nginx\,执行下列命令

instsrv NGINX c:\nginx\srvany.exe

3.在c:\nginx\下,新建一个nginx.reg文件,输入一下内容:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NGINX\Parameters]
"Application"="C:\\nginx\\nginx.exe"
"AppParameters"=""
"AppDirectory"="C:\\nginx\\"

5.让服务与程序关联起来, 命令行执行

regedit /s nginx.reg

6.编辑启动nginx脚本start-nginx.bat(关闭脚本不用变), 让程序以服务方式运行

@ECHO OFF
net stop nginx
net start nginx
EXIT

完成~
 楼主| 发表于 2010-3-12 08:29:57 | 显示全部楼层
Farseer – Nginx for Windows 快速配置包
栏目:安装与配置       838 views       2 枚回复
所需软件打包下载:
http://gracecode.googlecode.com/files/Farseer-20090526-win32.zip
前言
Nginx 的确是 *ix 系统下非常优秀的 HTTP 服务器,但开发人员而言搭建 Windows 平台的 Nginx + PHP 环境的确非常的繁琐而且容易出错。
如果您有上述的问题,那么这个包能够帮得上您的忙。使用这名为 Farseer 的软件包,能够让您在一分钟内完成 Nginx + PHP for Windows 平台的安装。
一分钟安装
1. 解压缩安装包,并放在合适的地方,例如本人解压缩到 E:\Farseer\ (后面称这个目录为 $FARSEER)
2. 配置 Nginx 的 DOCUMENT_ROOT 路径,打开 $FARSEER\conf\nginx.conf 文件。找到相应的配置行,修改您需要的路径,例如 E:\htdocs
set $htdocs e:/htdocs; # 在这里设定 HTTP 服务器根目录
3. 好了,这样就可以启动 Nginx 系统了,运行 farseer.exe 即可!
farseer.exe 文件

farseer.exe 是个 AutoIt3 脚本,用于方便控制 Farseer 服务的启动、停止、以及重新启动。
运行 farseer.exe 即可启动当前目录下的 Nginx 以及 PHP 服务,退出则停止服务。

程序运行在系统托盘中,右键鼠标即可弹出对应的菜单选项,方便操作。
配置文件
1. $FARSEER/conf/nginx.conf nginx 配置文件
2. $FARSEER/conf/php.ini php 配置文件
已知问题
* 由于 nginx 的问题,请不要将 $FARSEER 解压缩到包含有中文的目录中运行
意见反馈
如果您有意见或者建议,欢迎您联系我
* Email: 明城
* Blog: http://www.gracecode.com/
本程序在 Windows XP SP3 下测试运行通过,欢迎提供其他 Windows 平台的使用情况。
Farseer on *ix :^)
虽然 Farseer 设定为 Windows 平台下的开发工具,但能折腾的开发人员证明在 Wine 的帮助下能够在 Linux 下运行(感谢 @sleetdrop 兄)。
更新历史
[+]new feature
  • improvement [!]change [x]bug fix
    [x] 2009-05-27
    修复 PHP 目录指向为 extension_dir= .\ext
    [!] 2009-05-26
    移动 php.ini 到 conf 目录,增加 AutoIt3 脚本,方便控制 Nginx 服务
  • 2009-05-26
    DOCUMENT_ROOT 配置现在写在一处即可
    [!] 2009-05-26
    初始化版本,使用 nginx/0.7.59 & PHP/5.29-2 构建
  •  楼主| 发表于 2010-3-12 08:31:39 | 显示全部楼层
      Nginx 中文网


    2009-09-24

    Windows 下 Nginx + PHP5 的安装与配置

    栏目:安装与配置       611 views       1 枚回复
    来自:http://www.phpvim.net/php/instal ... hp5-on-windows.html
    Nginx 是一个轻量级的高性能 Http WebServer,以事件驱动方式编写,因此相比 Apache 而言,Nginx 更加稳定、性能更好,而且配置简单,资源占用较低。以下是我在 Windows 7 安装中 Nginx 和 PHP5.2 的步骤。安装 PHP5
    首先,从 http://www.php.net/downloads.php 下载最新的 PHP5.2.9-2 Windows 版本,解压至 C:\php5,把压缩包中的 php.ini-recommended,更名为 php.ini,然后打开修改几个选项:
    12345678910111213error_reporting = E_ALLdisplay_errors = Onextension_dir = "C:\php5\ext"; 动态扩展,可以根据需要去掉 extension 前面的注释 ; ; 如加载 PDO, MySQLextension=php_pdo.dllextension=php_pdo_mysql.dll; CGI 设置cgi.force_redirect = 1cgi.fix_pathinfo = 1cgi.rfc2616_headers = 1


    PHP 加载扩展需要注意依赖性,比如 php_exif.dll 需要 php_mbstring.dll,你必须要把 php_mbstring.dll 放在 php_exif.dll 前面才能加载成功。有些扩展依赖额外的 dll 文件,如 PHP 5.0+ ,php_mysqli.dll 依赖 libmysql.dll,而 php_oci8.dll,你则需要安装 Oracle 8 的客户端。如果你对这些依赖性不是太了解,可以参考一下安装包中的 install.txt 文件。
    依赖文件的搜索顺序:首先是 php.exe 所在的目录,如果是 ISAPI 模式,那么会搜索 Web Server 的启动位置,比如 Apache 的 bin 目录;其次是 Windows PATH 环境变量中的目录。这里不要复制任何文件到 Windows 目录中,有必要的话,可以把 C:\php5 加到 PATH 中,有利于以后 PHP 的升级。安装 Nginx
    从 v0.7.52 开始,Nginx 开始发布 Windows 版本的 Nginx,你可以在其官方网站上面下载:
    http://nginx.net
    如果需要老版本的 Nginx for Windows,可以在 Kevin Worthington 的网站上面找找。
    我使用的是 0.7.55,下载好以后,解压释放文件到 C:\nginx。
    那么如何配置 Nginx,使其可以和 PHP 协同工作?配置 PHP FastCGI
    Nginx 需要和 FastCGI Server 配合才能处理请求,有两种方式运行 PHP FastCGI Server,一种就是使用 PHP 内置的 FastCGI 管理器:
    1c:/php5/php-cgi.exe -b 127.0.0.1:9000 -c c:/php5/php.ini


    另外一种方式是使用第三方工具,比如 PHP-FPM 、cgi-fcgi 等。显然!要在 Windows 中使用这些工具是件极其痛苦的事情,你可能需要 Cygwin 之类的东西才行,的确有人这么做了,虽然我觉得那是自寻烦恼。
    下一步,开始修改 Nginx 的配置文件 C:\nginx\conf\nginx.conf,找到 php 相关的部分,修改如下:
    12345# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000location ~ \.php$ {    root    d:/public_html;    include php.conf;}


    root 也就是 $document_root 指的是你的 php scripts 根目录,设置为你的网站根目录。在 Windows 下,需要注意的是 root 的路径,最好使用 “/” 作为路径分隔符,而不是 Windows 默认的 “\”,否则容易出问题,比如,这个路径:d:\public_html\test,就不会起作用,Nginx 会抛出 500 错误,原因是 \test 中 \t 被解析为制表符。当然再加上一个反斜杠转义也是可以的,如:d:\\public_html\\test。
    php.conf 是我自己创建的用来保存 php 配置的文件,其实里面只有 3 行命令:
    123456# 连接到本机 9000 端口,这里的端口是指 PHP FastCGI Server 开启的端口,# 请与 php-cgi.exe 开启的端口保持一致# 当 Nginx 收到 php 文件的请求时,会自动转发到 PHP FastCGI Serverfastcgi_pass    127.0.0.1:9000;fastcgi_index   index.php;include         fastcgi_params;


    之所以要创建一个独立的 php.conf 保存配置为了精简 nginx.conf,当在 nginx 中配置多个虚拟主机时,每个虚拟主机都需要配置 php,那么主配置文件就会变得重复、臃肿。
    除此以外,还需要修改一下 c:\nginx\conf\fastcgi_params 文件,加入一行:
    1fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;


    并且修改 php.ini,设置 cgi.fix_pathinfo = 1,这非常重要,否则 PHP 将无法找到需要处理的 php 脚本。
    一些其他的设置,主服务器:
    1234567891011121314# 默认开启的进程数worker_processes  1;error_log  logs/error.log;#error_log  logs/error.log  notice;#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {    # 一个进程所处理的最大连接数上限,    # 本地开发,不需要默认的 1024,这里改为 64    worker_connections  64;}


    当某个目录下面不存在默认 index.php index.html 等首页文件时,Nginx 会抛出 403 ERROR,如果你需要罗列此目录,则可以在 http {… } 中加入如下命令:
    123autoindex on;autoindex_exact_size on;autoindex_localtime on;

    OK,整合到一起
    创建 start_nginx.bat,用于同时启动 PHP FastCGI 和 Nginx:
    123456@echo offecho Starting PHP FastCGI...RunHiddenConsole c:/php5/php-cgi.exe -b 127.0.0.1:9000 -c c:/php5/php.iniecho Starting nginx...c:/nginx/nginx.exe


    RunHiddenConsole.exe 是一个用来隐藏 DOS 窗口的小程序,可以在这里下载。
    start_nginx.bat 开启后,也会有 DOS 窗口,但是可以安全的关掉,并不会关闭 Nginx 和 php-cgi.exe。
    同样 stop_nginx.bat,用来关闭:
    123456@echo offecho Stopping nginx...taskkill /F /IM nginx.exe > nulecho Stopping PHP FastCGI...taskkill /F /IM php-cgi.exe > nulexit


    到这里基本配置完毕了。



     楼主| 发表于 2010-3-12 08:37:06 | 显示全部楼层
    windows 下 Nginx + tomcat 负载均衡配置
    Nginx 已经是目前公认的效率很高的代理服务,同时可以用来做负载均衡。
    由于项目目前只有一台centOS的服务器,无法用来测试,所以打算找下Nginx windows下版本;
    http://www.kevinworthington.com/nginx/win32/
    以上为win32的版本
    用户访问 sp.imichat.com 均衡到 10.10.10.181:8080; 10.10.10.181:8081; 10.10.10.181:8082; 这3台服务器
    配置Nginx的nginx.conf
    http {}增加如下内容

        upstream sp.imichat.com {
          server 10.10.10.181:8080;
          server 10.10.10.181:8081;
          server 10.10.10.181:8082;
        }

    server {} 修改异侠信息:

    listen 80;
    server_name sp.imichat.com;

    #charset koi8-r;
    #access_log logs/host_access_log main;

    location / {
    proxy_pass http://sp.imichat.com;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    access_log logs/sp.imichat.com.log combined;
    [/code]
    启动181上的3个tomcat,修改tomcat首页加入端口信息,以用来清晰看到当前分配到那台tomcat
    启动Nginx,访问 http://sp.imichat.com/
    可看到请求被发送到3台服务器。
    抓http包可看到request为

    GET / HTTP/1.1
    Host: sp.imichat.com
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: en-us,zh-cn;q=0.5
    Accept-Encoding: gzip,deflate
    Accept-Charset: gb2312,utf-8;q=0.7,*;q=0.7
    Keep-Alive: 300
    Connection: keep-alive
    Cookie: JSESSIONID=A75E09D2EBF769A7BD95195E29DE87DE; key=1227008000183; memberName=admin; memberType=%7C%u8D85%u7EA7%u7BA1%u7406%u5458%7C
    Pragma: no-cache
    Cache-Control: no-cache

    response:

    HTTP/1.1 200 OK
    Server: nginx/0.7.21-win32
    Date: Tue, 18 Nov 2008 12:12:33 GMT
    Content-Type: text/html
    Connection: keep-alive
    ETag: W/"8157-1227009260637"
    Last-Modified: Tue, 18 Nov 2008 11:54:20 GMT
    Content-Length: 8157
     楼主| 发表于 2010-3-12 08:37:46 | 显示全部楼层
    windows Nginx 安装及配置


    windows Nginx 安装及配置
    版本1:
    nginx [engine x] 是由 Igor Sysoev开发的一个HTTP 服务器和mail 代理服务器软件.虽然刚刚发布两年多, Nginx 因其稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。Nginx 超越Apache的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多,其中有新浪、网易、腾讯等门户网站,六间房、酷6等视频分享网站,Discuz!、水木社区等知名论坛,豆瓣、YUPOO等新兴Web 2.0网站。Nginx 在国内的应用正在不断发展壮大!新近发现Nginx 应用在国内越发火热了,很多网站都开始转向Nginx 了。
    偶发布该文章大半年了,有很多朋友看过这篇安装向导,今天偶要更新下,毕竟Nginx 官方正式发布windows 版本的了。----2009年6月22日,这天Nginx for windows 0.7.61发布了!
    首先,先到这儿下载官方的nginx for Windows 版本,并到PHP 官方下载php;
    第二,解压下载好的nginx压缩包(假如放到到了D:\server\server),然后以Fastcgi 模式安装php 到D:\sever\php5 ,接下来就是nginx 配置啦。
    下面这张截图内容就是我的nginx 配置单:



    上图中用黑线标注起来的,是nginx php 配置的关键部分。关于PHP 的配置,这个大家应该都会了,如果不会,请自己查找资料看看吧。
    第三,启动nginx 服务器,再启动php 的FasCGI sever 。关于php FastCGI server 可以使用以下命令:
           php-cgi.exe -b 127.0.0.1:9000 -q
    这样做,缺陷是命令行窗口一直打开,若关闭那FastCGI server 也关闭啦。到网上下载RunHiddenConsole.exe 可以使命令行窗口隐藏啦。(RunHiddenConsole.exe下载页面 )
           RunHiddenConsole.exe php-cgi.exe -b 127.0.0.1:9000 -q
    你也可以写一个批处理来做这件事:
           @echo off
           start /min RunHiddenConsole.exe php-cgi.exe -b 127.0.0.1:9000 -q
    最后,就是写一个简单PHPINFO 来验证PHP 是否工作正常啦。
    下面是我写的一个CMD 批处理Start.cmd,可以同时启动Nginx 和PHP FastCGI ,仅供参考使用。
                @echo off
                REM "正在启动Nginx 服务器........"
                cd nginx
                start nginx
                 cd ..
                REM "开始启动PHP FastCGI........."
                cd php5
                start RunHiddenConsole.exe php-cgi.exe -b 127.0.0.1:9000
    接下来是一个简单的关闭Nginx 和PHP FastCGI 的脚步Stop.cmd :
               @echo off
               taskkill /f /im nginx.exe
               taskkill /f /im php-cgi.exe
    ----------------------------------------------------------------------------------
    版本2:
    参照配置如下:
    首先 nginx for windows由第三方编译的nginx Windows 版本下载,并到PHP 官方下载php

    其次 安装nginx(默认安装到C:\nginx),然后以cgi 模式安装php 到C:\php ,接下来就是nginx 配置
    我的nginx 配置单
                              




    PHP配置    http://www.tonightdream.com/archives/207.html

    PHP解压置C盘
    拷贝PHP目录下的php.ini-recommended至C:\WINDOWS下并改名php.ini
    编辑php.ini文件(修改doc_root = "C:\nginx\html" 529行 extension_dir = "C:\php\ext" 536行 开启extension=php_gd2.dll extension=php_mysql.dll等)
    拷贝PHP目录下的php5ts.dlllibmysql.dll(开启MYSQL)至C:\WINDOWS\system32下(干脆就将PHP目录下的DLL文件都拷贝至C:\WINDOWS\system32下)

    第三 启动nginx 服务器,再启动php 的cgi sever 。关于php cgi server 可以使用以下命令:
           php-cgi.exe -b 127.0.0.1:9000 -q
    C:\php>php-cgi.exe -b 127.0.0.1:9000 -q(在CMD命令符下运行,直接打开不能启动)

    最后 就是写一个简单PHPINFO 来验证PHP 是否工作正常。
    注意!如果php出现500错误以及 iProber 探针无法运行。修改php.ini文件中的short_open_tag 为 On 就可以解决
    本文参考资料:http://hi.baidu.com/usen68/blog/item/214428ecff646d2163d09f7d.html
    http://hi.baidu.com/rokaye/blog/item/3a44f6cbaf45dc19be09e6fd.html
     楼主| 发表于 2010-3-14 11:50:12 | 显示全部楼层
    http://www.sudone.com/     http://blog.s135.com/book/squid/

    超强组合。熟练掌握
     楼主| 发表于 2010-3-14 13:33:10 | 显示全部楼层
    三大WEB服务器对比分析(apache ,lighttpd,nginx一.软件介绍(apache  lighttpd  nginx)
    1. lighttpd
    Lighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。lighttpd是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能。
    Lighttpd使用fastcgi方式运行php,它会使用很少的PHP进程响应很大的并发量。
    Fastcgi的优点在于:
    ·         从稳定性上看, fastcgi是以独立的进程池运行来cgi,单独一个进程死掉,系统可以很轻易的丢弃,然后重新分配新的进程来运行逻辑.
    ·         从安全性上看, fastcgi和宿主的server完全独立, fastcgi怎么down也不会把server搞垮,
    ·         从性能上看, fastcgi把动态逻辑的处理从server中分离出来, 大负荷的IO处理还是留给宿主server, 这样宿主server可以一心一意作IO,对于一个普通的动态网页来说, 逻辑处理可能只有一小部分, 大量的图片等静态IO处理完全不需要逻辑程序的参与(1)
    ·         从扩展性上讲, fastcgi是一个中立的技术标准, 完全可以支持任何语言写的处理程序(php,java,python...)
    2.apache
    apache是世界排名第一的web服务器, 根据netcraft(www.netsraft.co.uk)所作的调查,世界上百分之五十以上的web服务器在使用apache.
    19954, 最早的apache(0.6.2)apache group公布发行. apache group 是一个完全通过internet进行运作的非盈利机构, 由它来决定apache web服务器的标准发行版中应该包含哪些内容. 准许任何人修改隐错, 提供新的特征和将它移植到新的平台上, 以及其它的工作.当新的代码被提交给apache group, 该团体审核它的具体内容, 进行测试, 如果认为满意, 该代码就会被集成到apache的主要发行版中.
    apache 的特性:
    1) 几乎可以运行在所有的计算机平台上.
    2) 支持最新的http/1.1协议
    3) 简单而且强有力的基于文件的配置(httpd.conf).
    4) 支持通用网关接口(cgi)
    5) 支持虚拟主机.
    6) 支持http认证.
    7) 集成perl.
    8) 集成的代理服务器
    9) 可以通过web浏览器监视服务器的状态, 可以自定义日志.
    10) 支持服务器端包含命令(ssi).
    11) 支持安全socket(ssl).
    12) 具有用户会话过程的跟踪能力.
    13) 支持fastcgi
    14) 支持java servlets
    3.nginx
    Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”, 是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.Nginx是由俄罗斯人 Igor Sysoev为俄罗斯访问量第二的 Rambler.ru站点开发.
    Nginx以事件驱动的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理、负载平衡。其拥有匹配 Lighttpd的性能,同时还没有Lighttpd的内存泄漏问题,而且Lighttpdmod_proxy也有一些问题并且很久没有更新。但是Nginx并不支持cgi方式运行,原因是可以减少因此带来的一些程序上的漏洞。所以必须使用FastCGI方式来执行PHP程序。
    nginx做为HTTP服务器,有以下几项基本特性:
    处理静态文件,索引文件以及自动索引;打开文件描述符缓冲.
    无缓存的反向代理加速,简单的负载均衡和容错.
    FastCGI,简单的负载均衡和容错.
    模块化的结构。包括gzipping, byte ranges, chunked responses,以及 SSI-filterfilter。如果由FastCGI或其它代理服务器处理单页中存在的多个SSI,则这项处理可以并行运行,而不需要相互等待。
    Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率。它支持内核Poll模型,能经受高负载的考验,有报告表明能支持高达 50,000个并发连接数。
    Nginx具有很高的稳定性。其它HTTP服务器,当遇到访问的峰值,或者有人恶意发起慢速连接时,也很可能会导致服务器物理内存耗尽频繁交换,失去响应,只能重启服务器。例如当前apache一旦上到200个以上进程,web响应速度就明显非常缓慢了。而Nginx采取了分阶段资源分配技术,使得它的CPU与内存占用率非常低。nginx官方表示保持10,000个没有活动的连接,它只占2.5M内存,所以类似DOS这样的攻击对nginx来说基本上是毫无用处的。就稳定性而言,nginxlighthttpd更胜一筹。
    Nginx支持热部署。它的启动特别容易, 并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够在不间断服务的情况下,对软件版本进行进行升级。
    .3WEB服务器的比较:

    serverApacheNginx     Lighttpd
    Proxy代理 非常好非常好一般
    Rewriter非常好一般
    Fcgi不好非常好
    热部署不支持支持不支持
    系统压力比较很大很小比较小
    稳定性非常好不好
    安全性一般一般
    技术支持非常好很少一般
    静态文件处理一般非常好
    Vhosts虚拟主机 支持不支持支持
    反向代理一般非常好一般
    Session sticky支持不支持不支持

    注:在相对比较大的网站,节约下来的服务器成本无疑是客观的。而有些小型网站往往服务器不多,如果采用 Apache 这类传统 Web 服务器,似乎也还能撑过去。但有其很明显的弊端: Apache 在处理流量爆发的时候(比如爬虫或者是 Digg 效应) 很容易过载,这样的情况下采用 Nginx 最为合适。
    建议方案:
    Apache 后台服务器(主要处理php及一些功能请求 如:中文url
    Nginx  前端服务器(利用它占用系统资源少得优势来处理静态页面大量请求)
    Lighttpd 图片服务器
    总体来说,随着nginx功能得完善将使他成为今后web server得主流。
    .性能测试
    将分别测试3种软件在对动态页面和静态页面请求及并发时的响应时间
    l
    静态页面 搜狐首页
    LIGHTTPD

    n/-c(ab参数) cpu%MemRequestsperSecondTime taken for tests
    100000/1006460462.7521.6
    100000/2006760312.0732.4
    100000/5008360137.2472.8
    100000/1000
    出现错误丢包
    9460126.678.9

    NGINX

    n/-c(ab参数) cpu%MemRequestsperSecondTime taken for tests
    100000/10034.6140943.6610.597
    100000/20035.6110924.3210.818
    100000/50034.3110912.6810.956
    100000/100037160832.5912.106

    APACHE

    n/-c(ab参数) cpu%MemRequestsperSecondTime taken for tests
    100000/10040.6170690.7214.47
    100000/20041.1180685.3914.59
    100000/50042.3190633.6415.78
    100000/100043.1200547.5318.26

    l
    动态页面 内部社区首页
    LIGHTTPD

    n/-c(ab参数) cpu%MemRequestsperSecondTime taken for tests
    1000/1005020033.5429.816
    1000/2005221030.4332.858
    1000/5005423025.7938.76
    1000/10006225024.8340.28

    NGINX

    n/-c(ab参数) cpu%MemRequestsperSecondTime taken for tests
    1000/10053.825083.1212.305
    1000/20055.825074.0513.504
    1000/5005626058.9916.951
    1000/10005826043.4123.347

    APACHE

    n/-c(ab参数) cpu%MemRequestsperSecondTime taken for tests
    100000/1006020027.3736.541
    100000/2006122023.8241.981
    100000/5007315020.5948.562
    100000/10005320027.1836.796

    l
    PHPINFO函数页
    LIGHTTPD

    n/-c(ab参数) cpu%MemRequestsperSecondTime taken for tests
    100000/1004520168.0659.504
    100000/2004722140.6471.103
    100000/500492452.80189.386
    100000/1000在请求到4840时测试测试程序死掉

    NGINX

    n/-c(ab参数) cpu%MemRequestsperSecondTime taken for tests
    100000/10070120143.4669.706
    100000/20072130140.5771.140
    100000/50073150135.8773.601
    100000/100077160132.1875.657

    APACHE 出现丢包

    n/-c(ab参数) cpu%MemRequestsperSecondTime taken for tests
    100000/10070180245.7340.694
    100000/20072190245.7940.684
    100000/50075200241.2941.443
    100000/100077220236.7442.239

    四.各大网站WEB服务器资源列表
    网站名
    操作系统   web服务器
    1.门户网站类:
    搜狐     LINUX     
    apache 1.3.37
    新浪     LINUX     
    apache 2.0.54
    迅雷     LINUX     
    nginx 0.6.31
    163      LINUX     
    apache 2.2.6
    2.搜索类
    百度      unknown   
    BWS 1.0
    Google   linux        
    gws
    Sougou   FreeBSD   
    apache 2.2.4
    Hao123   linux        
    apache 2.2.4
    4. 电子邮箱类
    126        linux         apache
    Hotmail    win2003     
    microsoft-IIS 6.0
    新浪邮箱    F5 Big-IP    apache 2.2.8
    263        linux         apache 2.2.6
    5. 博客类
    新浪博客    linux          nginx 0.5.35
    搜狐博客    linux          nginx
    迅雷博客    linux          nginx 0.6.32
    天涯博客    F5 Big-IP      Microsoft-IIS/5.0
    6.视频类
    优酷         linux          apache
    土豆         linux          apache
    Ku6         linux         
    apache
    六间房       linux          nginx 0.6.14
    转自:http://www.apolov.com/html/2009/06/09/1244531059.html
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    小黑屋|手机版|Archiver|boway Inc. ( 冀ICP备10011147号 )

    GMT+8, 2024-12-12 03:59 , Processed in 0.124493 second(s), 17 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表