2009年01月16日

Windows下Nginx以服务的方式运行

从wnmp发布以来,很多朋友就问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

完成~

最近一直在研究Linux下的Nginx自动安装,呵呵,鼓励大家迁移到Linux平台...

  • » 阅读全文...
  • 2008年12月3日

    Nginx访问二级目录后/(反斜杠)无法访问问题的解决办法

    今天,有位wnmp的用户反映,Nginx访问二级目录的时候不加/(反斜杠)无法访问,现在给出解决办法。

    我用的是正则表达式自动加/(反斜杠)。

      if (-d $request_filename){
                rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
            }

  • » 阅读全文...
  • 2008年11月11日

    Nginx下Discuz!的Rewrite配置

      昨天说了一些Nginx的Rewrite配置 今天主要说一下Nginx下Discuz!的Rewrite .

    需要说明的是,下网上以前一直流传的Rewrite都是有误的。
    下面的Rewrite中百分号前面多了个转移字符“”,这在Apache中是需要的,而在Nginx中则是不需要的。
    rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ /viewthread.php?tid=$1&extra=page%3D$3&page=$2 last;
    正确的应该是
    rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ /viewthread.php?tid=$1&extra=page%3D$3&page=$2 last;
    这个错误在基本上目前所有使用Nginx作为服务器,并且开启了Rewrite的网站上存在。包括Discuz!官方,目前已经给cnteacher反馈了。

     

    Nginx实例代码
    server {
    listen 80;
    server_name www.ccvita.com ccvita.com;

    location / {
    index index.html index.htm index.php;
    root /www/www.ccvita.com;
    rewrite ^(.*)/archiver/((fid|tid)-[w-]+.html)$ $1/archiver/index.php?$2 last;
    rewrite ^(.*)/forum-([0-9]+)-([0-9]+).html$ $1/forumdisplay.php?fid=$2&page=$3 last;
    rewrite ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ $1/viewthread.php?tid=$2&extra=page%3D$4&page=$3 last;
    rewrite ^(.*)/profile-(username|uid)-(.+).html$ $1/viewpro.php?$2=$3 last;
    rewrite ^(.*)/space-(username|uid)-(.+).html$ $1/space.php?$2=$3 last;
    rewrite ^(.*)/tag-(.+).html$ $1/tag.php?name=$2 last;

    }

    location ~ .php$ {
    include fastcgi_params;
    fastcgi_index index.php;
    fastcgi_pass 127.0.0.1:8694;
    fastcgi_param SCRIPT_FILENAME /www/www.ccvita.com$fastcgi_script_name;
    }

    location /www.ccvita.com-status {
    stub_status on;
    access_log off;
    }
    }

    预告:明天将会说一下Nginx下Wordpress的Rewrite配置。

  • » 阅读全文...
  • 2008年11月10日

    Nginx的Rewrite配置

           wnmp 已经发布好几天了,参加试用的人也不少,不少人反映如何设置Rewrite 和虚拟主机,在接下来的几天我将会陆续发表相关的文章。

    Nginx的Rewrite
    经过网上查阅和测试,发现Nginx的Rewrite规则和Apache的Rewite规则差别不是很大,几乎可以直接使用。比如在Apache中这样写规则
    rewrite ^/([0-9]{5}).html$ /viewthread.php?tid=$1 last;
    而在Nginx中写成这样写是无法启动的,解决的办法是加上两个双引号:
    rewrite “^/([0-9]{5}).html$” /viewthread.php?tid=$1 last;
    同时将RewriteRule为Rewrite,基本就实现了Nginx的Rewrite规则到Apache的Rewite规则的转换。

    Rewrite的Flags
    last - 基本上都用这个Flag。
    break - 中止Rewirte,不在继续匹配
    redirect - 返回临时重定向的HTTP状态302
    permanent - 返回永久重定向的HTTP状态301

     

    官方文档请点击这里

    Discuz!在Nginx下的Rewrite
    需要说明的是,下网上以前一直流传的Rewrite都是有误的。
    下面的Rewrite中百分号前面多了个转移字符“”,这在Apache中是需要的,而在Nginx中则是不需要的。
    rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ /viewthread.php?tid=$1&extra=page%3D$3&page=$2 last;
    正确的应该是
    rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ /viewthread.php?tid=$1&extra=page%3D$3&page=$2 last;
    这个错误在基本上目前所有使用Nginx作为服务器,并且开启了Rewrite的网站上存在。包括Discuz!官方,目前已经给cnteacher反馈了。

    完整正确的Discuz!在Nginx下的Rewrite如下:
    rewrite ^/archiver/((fid|tid)-[w-]+.html)$ /archiver/index.php?$1 last;
    rewrite ^/forum-([0-9]+)-([0-9]+).html$ /forumdisplay.php?fid=$1&page=$2 last;
    rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ /viewthread.php?tid=$1&extra=page%3D$3&page=$2 last;
    rewrite ^/space-(username|uid)-(.+).html$ /space.php?$1=$2 last;
    rewrite ^/tag-(.+).html$ /tag.php?name=$1 last;
    break;

           Nginx以其良好的并发性能,目前正在逐渐取代Apache成为大家的Web server首选,但是Nginx目前的中文资料很少,需要大家努力贡献。

  • » 阅读全文...
  • 2008年11月6日

    wnmp 1.0.1 绿色服务器套件|Nginx+PHP集成环境

        wnmp 是一个快速搭建Nginx  0.7.19、PHP    5.2.6、MySQL  5.0.51b、PHPMyAdmin 2.11.9.2、eAccelerator 0.9.5.3、ZendOptimizer 3.3.3、OpenSSL 0.9.8h的绿色服务器套件。只要将opt文件夹拷贝到任意分区、目录,双击运行start.bat即可。
     
        Nginx [engine x]是俄罗斯人Igor Sysoev编写的一款高性能的HTTP和反向代理服务器。

        Nginx已经在俄罗斯最大的门户网站——Rambler Media(www.rambler.ru)上运行了3年时间,同时俄罗斯超过20%的虚拟主机平台采用Nginx作为反向代理服务器。

        注意事项:wnmp程序所在路径不能含有汉字和空格。
        MySQL默认用户名:root,密码为空
        MySQL数据库文件存放目录:mysqldata
        网站根目录www
        访问本机请用 http://127.0.0.1/http://localhost/
        非默认端口,网址为 http://127.0.0.1:端口/ 或 http://localhost:端口/

        wnmp集成一下软件:
      Nginx  0.7.19
      PHP    5.2.6
      MySQL  5.0.51b
      PHPMyAdmin 2.11.9.2
      eAccelerator 0.9.5.3
      ZendOptimizer 3.3.3
      OpenSSL 0.9.8h

    下载wnmp 1.0.1

  • » 阅读全文...