Windows XP下Nginx的安装与配置

  categories:nginx资料  author:

原创文章,转载请指明出处并保留原文url地址

Nginx是一款高性能的,轻量级的HTTP Web 服务器 和 反向代理服务器及电子邮件 IMAP/POP3/SMTP 代理服务器。

Nginx主要部署环境是linux等系列服务器系统。

Nginx也提供windows版本程序。Windows版本的程序在性能,稳定性等方面都不如linux系列等, 但是作为一个学习环境还是非常方便.

本文将介绍windows下nginx相关安装及配置工作。

1. Windows 版本nginx下载

首先去官网下载http://nginx.org/en/download.html 相关nginx的版本

本文以1.2.8为例进行测试等

地址如下:http://nginx.org/download/nginx-1.2.8.zip

2. 解压缩windows版本的nginx

将下载的windows 版本nginx文件下载后, 解压缩到c盘目录中, 如图:

wps_clip_image-23940[3][1]

解压缩到 c:\nginx目录后就可以使用了, 不需要任何安装,其中

nginx.exe  是可执行程序

conf目录:nginx的配置文件目录

logs目录:默认的日志存放目录

html目录:目录html文件存放目录

3. 配置nginx

进入conf目录, 打开nginx.conf文件, 添加如下配置 … 阅读全文

nginx反向代理服务器的配置及管理

  categories:nginx资料  author:

来源:互联网

一、引言

Nginx介绍
Nginx发音为[engine x],是由俄罗斯人Igor Sysoev建立的项目,基于BSD许可。
据说他当初是F5的成员之一,英文主页:http://nginx.net/ 俄罗斯的一些大网站已经使用它超过两年多了, 一直表现不凡,从nginx的维基百科网站也能了解到,国内很多的大型门户网站已经都在使用,比如网易、新浪、腾讯等。所以nginx的使用已经有一些成功的案例,这为我们使用这个代理软件提供了很好的背景。

二、反向代理服务器的作用

目前来说反向代理服务器基于安全和性能两个主要的方面考虑,下面是一个反向代理的拓扑模型:

wps_clip_image-7926

2.1基于安全:

云客户端发来的请求不是直接的与内容服务器、数据库或者应用通信,他们首先到达反向代理服务器,防火墙只授信反向代理服务器与内容服务器等的内部真实服务器的通信,这样就使得内部真实的服务器受到了保护,代理服务器成为一道屏障,来自云端的攻击最多到达反向代理这个环节。

2.3 基于性能

起到高速缓冲加速的功能。反向代理服务器可以在实现缓存云端访问实际应用过程中各种数据,当云端用户访问的数据已经在反向代理中缓存,那么反向代理会很快响应用户的请求,而不必转发请求到真实的内部服务器上去再次提取。对于应用来说这样的架构就起到了一个加速缓冲的作用。

三、Nginx的安装

下载nginx的源包:http://www.ngin.org 下载当前稳定版

解包:tar zxvf **.tar.gz或者tar –xvf **.tar.gz

进入加压后的包,执行安装配置:

1. ./configure \

2.         –prefix=/usr/local/php-fcgi \

3.         –with-web_mail \

4.         –with-http_ssl_moudel \

5.         –enable-fastcgi … 阅读全文

实战Nginx与PHP(FastCGI)的安装、配置与优化

  categories:nginx资料  tags:  author:

一、什么是 FastCGI

FastCGI是一个可伸缩地、高速地在HTTP server和动态脚本语言间通信的接口。多数流行的HTTP server都支持FastCGI,包括Apache、Nginx和lighttpd等,同时,FastCGI也被许多脚本语言所支持,其中就有PHP。

FastCGI是从CGI发展改进而来的。传统CGI接口方式的主要缺点是性能很差,因为每次HTTP服务器遇到动态程序时都需要重新启动脚本解析器来执行解析,然后结果被返回给HTTP服务器。这在处理高并发访问时,几乎是不可用的。另外传统的CGI接口方式安全性也很差,现在已经很少被使用了。

FastCGI接口方式采用C/S结构,可以将HTTP服务器和脚本解析服务器分开,同时在脚本解析服务器上启动一个或者多个脚本解析守护进程。当HTTP服务器每次遇到动态程序时,可以将其直接交付给FastCGI进程来执行,然后将得到的结果返回给浏览器。这种方式可以让HTTP服务器专一地处理静态请求或者将动态脚本服务器的结果返回给客户端,这在很大程度上提高了整个应用系统的性能。

二、Nginx+FastCGI运行原理

Nginx不支持对外部程序的直接调用或者解析,所有的外部程序(包括PHP)必须通过FastCGI接口来调用。FastCGI接口在 Linux下是socket,(这个socket可以是文件socket,也可以是ip socket)。为了调用CGI程序,还需要一个FastCGI的wrapper(wrapper可以理解为用于启动另一个程序的程序),这个 wrapper绑定在某个固定socket上,如端口或者文件socket。当Nginx将CGI请求发送给这个socket的时候,通过FastCGI 接口,wrapper接纳到请求,然后派生出一个新的线程,这个线程调用解释器或者外部程序处理脚本并读取返回数据;接着,wrapper再将返回的数据通过FastCGI接口,沿着固定的socket传递给Nginx;最后,Nginx将返回的数据发送给客户端,这就是Nginx+FastCGI的整个运作过程。详细的过程,如图1所示。

图1 Nginx+FastCGI运行原理

三、spawn-fcgi与PHP-FPM

1. 前面介绍过,FastCGI接口方式在脚本解析服务器上启动一个或者多个守护进程对动态脚本进行解析,这些进程就是FastCGI进程管理器,或者称之为FastCGI引擎, spawn-fcgi与PHP-FPM就是支持PHP的两个FastCGI进程管理器。下面简单介绍spawn-fcgi与PHP-FPM的异同。

spawn-fcgi是HTTP服务器lighttpd的一部分,目前已经独立成为一个项目,一般与lighttpd配合使用来支持PHP,但是ligttpd的spwan-fcgi在高并发访问的时候,会出现内存泄漏甚至自动重启FastCGI的问题。

Nginx是个轻量级的HTTP server,必须借助第三方的FastCGI处理器才可以对PHP进行解析,因此Nginx+spawn-fcgi的组合也可以实现对PHP的解析,这里不过多讲述。

PHP-FPM也是一个第三方的FastCGI进程管理器,它是作为PHP的一个补丁来开发的,在安装的时候也需要和PHP源码一起编译,也就是说PHP-FPM被编译到PHP内核中,因此在处理性能方面更加优秀;同时它在处理高并发方面也比spawn-fcgi引擎好很多,因此,推荐 Nginx+PHP/PHP-FPM这个组合对PHP进行解析。

FastCGI 的主要优点是把动态语言和HTTP Server分离开来,所以Nginx与PHP/PHP-FPM经常被部署在不同的服务器上,以分担前端Nginx服务器的压力,使Nginx专一处理静态请求和转发动态请求,而PHP/PHP-FPM服务器专一解析PHP动态请求。

 

2. php-fpm 介绍

PHP-FPM是一个PHPFastCGI管理器,是只用于PHP的。
PHP-FPM其实是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中。必须将它patch到你的PHP源代码中,在编译安装PHP后才可以使用。
现在我们可以在最新的PHP 5.3.2的源码树里下载得到直接整合了PHP-FPM的分支,据说下个版本会融合进PHP的主分支去。相对Spawn-FCGI,PHP-FPM在CPU和内存方面的控制都更胜一筹,而且前者很容易崩溃,必须用crontab进行监控,而PHP-FPM则没有这种烦恼。
PHP5.3.3已经集成php-fpm了,不再是第三方的包了。PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置,比spawn-fcgi具有更多优点,所以被PHP官方收录了。在./configure的时候带 –enable-fpm参数即可开启PHP-FPM。
使用PHP-FPM来控制PHP-CGI的FastCGI进程
/usr/local/php/sbin/php-fpm{start|stop|quit|restart|reload|logrotate}
–start … 阅读全文

nginx,linux压力测试工具webbench

  categories:nginx资料  tags:  author:

来源:互联网

webbench最多可以模拟3万个并发连接去测试网站的负载能力,个人感觉要比Apache自带的ab压力测试工具好,安装使用也特别方便。
1、适用系统:Linux
2、编译安装:
1. wget  http://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz

yum install gcc

yum install ctags

2. tar zxvf webbench-1.5.tar.gz
3. cd webbench-1.5
4. make && make install
3、使用:
1. webbench -c 3000 -t 30 http://192.168.114.155/phptest.php
参数说明:-c表示并发数,-t表示持续时间(秒)
4、测试结果示例:
Webbench – Simple Web Benchmark … 阅读全文

Nginx & Comet:低延迟信息推送

  categories:nginx资料  author:

来源:互联网

原文链接:Nginx & Comet: Low Latency Server Push

服务器推送(Server Push)是高效的、延迟低的数据交换方式。如果数据发送端与接收端都在互联网中公开可见,可以使用PubSubHubbub或simpler Webhook等方法完成任务。但是如果数据接收方在防火墙内、在内网或它只是一个浏览器(只可以向外发送数据请求,无法处理传入的数据),则实现服务器推送就更难了。如果你有冒险精神,你可以建立一个反向HTTP服务器。如果你寻求可靠的解决方案,也许你要等待HTML5的WebSocket’s API特性了。但如果你需要即刻可以实现的解决方案,你可以妥协一下,使用异步推送模式来代替,你可以使用Comet,也被称为反向Ajax、HTTP服务器推送或HTTP流。

早在2006年Alex Russel提出了一个不坏的技术思路,那就是长连接(Comet)概念:从客户端发起并保持一个连接直到数据出现并传送(long polling),或者永远保持一个连接,通过它推送数据到客户端(streaming)。这两种方法的好处是数据传送非常及时。因此长连接技术广泛用于聊天应用(Facebook, Google, Meebo等)以及实现即时触发的机制。

Nginx变成一个长连接服务器

实现长连接服务比较大的问题是特殊的隐形需求以及事件驱动web服务器能否高效处理众多的长连接。Friendfeed的Tornado服务器是一个标准应用级服务器的好例子。另外,感谢Leo Ponomarev的努力,你现在可以用nginx_http_push_module插件使你的Nginx服务器变身成为一台完全功能的长连接服务器。

使用自定义的一套框架结构,Leo的插件只提供两个对外的接口:一个是订阅者,一个是发布者。客户端连接Nginx服务器,创建针对一个频道的long- polling长连接并等待数据。同时,发布者只是简单的将数据使用POST方法提交给Nginx,插件收到数据后将它一个个发给等待的客户端。这表明发布者不需要直接传递数据,它只是一个简单的事件产生器!

还有更强大的功能是,客户端和发布端可以建立任意的channel,插件提供消息队列功能,也就是说Nginx服务器会在客户端断线的情况下临时保存消息。队列消息可以按照时间、等待列表长度或内存限制大小来失效释放。

NginxRuby配置例子

首先,你需要从源代码编译一个Nginx。解压源代码包,从GitHub获取插件的源码并放入Nginx的源码目录,然后使用下面的参数编译(./configure –add-module=/path/to/plugin && make && make install)。下一步,参考readme文件和协议文件,了解所有的参数选项。一个多客户端接收信息的配置例子如下:

> nginx-push.conf阅读全文

nginx的调度策略

  categories:nginx资料  author:

来源于互联,作为工作参考记录于此

1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
例如:
upstream bakend {
server 192.168.0.14 weight=10;
server 192.168.0.15 weight=10;
}
2、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
例如:
upstream bakend {
ip_hash;
server 192.168.0.14:88;
server 192.168.0.15:80;
}
3、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream backend {
server server1;
server server2;
fair;… 阅读全文

nginx下wordpress伪静态设置

  categories:nginx资料, wordpress  author:

内容整理自互联网

1.下面是nginx的伪静态,要写在server里.
location / {
if (-f $request_filename/index.html){
        rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
        rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
        rewrite (.*) /index.php;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
}
2.然后进入后台-设置-固定链接-自定义
/%category%/%post_id%.html

首先我们看看wordpress官方列出的部分可以使用的固定链接基本参数:
%year%
基于文章发布年份,比如2009; … 阅读全文



快乐成长 每天进步一点点      京ICP备18032580号-1