`
lu2002lulu
  • 浏览: 97354 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

File Path of Nginx for Windows Under Cygwin / Ngin

阅读更多
Author: Robert Kwok at lc365 dot net
[阅读提示:中文在底部]
NOTE: This document is for Nginx compiled under Cygwin / GCC.

If your pages were put on Driver C, it's really easy to confige nginx.conf for visitors open your site just follow the examples in original conf/nginx.conf, well, for some reason, we usually did not put our pages on the Driver where Windows System Files lies on, Driver C.
Nginx for Windows Under Cygwin is different from Nginx for Unix-Like System.  Nginx was compiled by GCC under Cygwin, so he cannot recognize Windows Path (e.g. D:/www/) but Cygwin Path (e.g. /cygdrive/d/).
Now, I throw out some examples for your refference,

[NO FASTCGI]

We set D:\www\ for http://www.#yours.com, Driver D for example, other drivers are the same.

Bad:
location / {
            root  D:\www\;
            index  index.html index.htm;
        }

Good:
location / {
            root  /cygdrive/d/www/; # '/cygdrive/d/' equal to  'D:\' in Nginx under Cygwin
            index  index.html index.htm;
        }

If we want to set D:\www\newsB\ for http://www.#yours.com/newsA/, then, we'd better to use alias or rewrite directive of Nginx, something like

location /newsA/ {
            alias /cygdrive/d/www/newsB/;
        }
# Note:The alias directive cannot be used inside a regex-specified location. If you need to do this you must use a combination of rewrite and root.
As above, if we want another Driver's file, set F:\www2\ for http://www.#yours.com/vip/, then will be the following:
location /vip/ {
            alias /cygdrive/f/www2/; #  /cygdrive/f/ for Driver F
        }

[WITH FASTCGI]

As we see, Nginx under Cygwin can only know the Drivers Letter with the format "/cygdrive/d/", treat '/cygdrive/d/' as 'D:\', treat '/cygdrive/e/' as 'E:\', and so on, but if we use fastcgi with Nginx, things comes back. In nginx.conf we should use Cygwin paths (e.g. /cygdrive/d/www) for Nginx and native PHP paths (e.g. D:/www) for PHP scripts.
Sample:
    location ~ .*\.php$ { # Note that usually wrong as former ~ \.php$ , does not run as hoped
        fastcgi_pass  127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  D:/www$fastcgi_script_name;
        # Here must use Windows native paths (D:/www) for PHP scripts, because
        # PHP is compiled natively and DO NOT know Cygwin paths (/cygdrive/d/www)
        include        fastcgi_params; # Please cut off SCRIPT_FILENAME line in file fastcgi_params
    }

=============================

由于Windows版本的Nginx其实是在Cygwin环境下编译的,所以Nginx使用的是Cygwin的路径格式,所以在Nginx的配置文件nginx.conf中,路径既不能使用*nix的格式,也不能使用Windows系统的格式,而要使用Cygwin的格式,即: C盘的C:\ 用/cygdrive/c/表示,D盘的D:\ 用/cygdrive/d/表示,以次类推。例如:

我们设置访问 http://www.#yours.com 时读取D:\www\
location / {
            root  /cygdrive/d/www/; # '/cygdrive/d/' = 'D:\' in Nginx under Cygwin
            index  index.html index.htm;
        }
如果我们需要在访问 http://www.#yours.com/newsA/ 时读取目录D:\www\newsB\,那么我们需要使用Nginx的alias或rewrite等指令,例如

location /newsA/ {
            alias /cygdrive/d/www/newsB/;
        }
如果我们需要设置访问http://www.#yours.com/vip/ 时读取另一个硬盘上的东西,比如F:\www2\ ,可以这样:
location /vip/ {
            alias /cygdrive/f/www2/; #  /cygdrive/f/ for Driver F
        }
另外需要注意的是,如果你使用了FASTCGI配置PHP,那么设置fastcgi_param  SCRIPT_FILENAME这行的时候,必须使用设置的Windows路径格式,因为这里的参数值是Nginx传递给PHP使用的,而PHP只能识别Windows格式,例:
    location ~ .*\.php$ { # 注意这里老版本用的“~ \.php$”好像有问题
        fastcgi_pass  127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  D:/www$fastcgi_script_name;
        # 这里必须使用Windows格式路径(D:/www)
        include        fastcgi_params; # 注意fastcgi_params中去掉SCRIPT_FILENAME这行
    }


分享到:
评论

相关推荐

    nginx1.24.0,包含GCC/zlib/prce依赖

    **Nginx 1.24.0:Web服务器的核心特性与依赖库详解** Nginx 是一款高性能、轻量级的 Web 服务器/反向代理服务器,以其高并发处理能力、低内存消耗以及模块化的架构而备受青睐。在1.24.0版本中,Nginx 为用户提供了...

    nginx for Windows - documentation 1.8.pdf

    1.nginx for Windows文档概述 nginx是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP服务器。本文档描述了nginx for Windows版本所特有的功能和配置选项,以及它与Linux版本的差异。该文档提供了...

    nginx for windows下载安装与配置

    nginx for windows详细的安装教程请登录 http://www.bywei.cn/blog/view.asp?id=104 内容导航: (1)nginx的特性和简介 (2)nginx for windows的下载与安装 (3)nginx处理静态资源的配置 (4)nginx 反向代理设置 (5)...

    nginx安装教程

    sudo ./configure --sbin-path=/usr/local/nginx/nginx \ --conf-path=/usr/local/nginx/nginx.conf \ --pid-path=/usr/local/nginx/nginx.pid \ --with-http_ssl_module \ --with-pcre=/usr/local/src/pcre-8.41 \ ...

    Nginx通过/etc/init.d/nginx方式启停【nginx配置文件】

    vi /etc/init.d/nginx 修改nginx后 chmod +x /etc/init.d/nginx /sbin/chkconfig nginx on sudo /sbin/chkconfig --list nginx /etc/init.d/nginx start

    在linux系统上升级nginx版本

    cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak ``` 步骤 2: 下载新的 Nginx 版本 下载最新的 Nginx 版本,可以从 Nginx 官方网站下载。 ``` wget ...

    linux环境 nginx-1.18.0 目录/root下解压 使用,无需编译代码

    linux环境 nginx-1.18.0 ,目录/root下解压 使用,无需编译代码 #tar -zxvf nginx-green-1.18.0.tar.gz #chmod 777 nginx/* #cd nginx/sbin #./nginx 如果提示无权限,可以手工先创建相关文件和目录

    nginx for windows 环境安装包 v1.0

    nginx for linux和apache for windows、apache for linux相关操作和安装包请关注我的博客。作者:回忆-g912博客:www.g912.com使用说明:1.将解压缩出来的文件夹统一放在C盘根目录下,如需修改,修改php.ini和nginx....

    开机自起nginx

    PIDFile=/usr/local/nginx/logs/nginx.pid ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf #...

    nginx for windows下载以及详细安装与配置

    1.目前官方 Nginx 并不支持Windows,您只能在包括Linux,UNIX,BSD系统下安装和使用,现在提供nginx for windows下载以及详细安装与配置,供windows下的nginx应用。 2.Nginx 本身只是一个HTTP和反向代理服务器,它无法...

    windows+nginx+php带启动/停止脚本

    这里我们关注的是在Windows操作系统上配置一个结合了Nginx和PHP的服务器环境。这个“windows+nginx+php带启动/停止脚本”的压缩包提供了方便的工具来帮助你快速设置和管理这样的环境。 **Nginx** Nginx是一款高性能...

    一款超好用的PHP集成环境包括Nginx/PHP/Mysql/Redis/Sphinx/Mongodb/Memcached等等

    2. 全面支持 Windows 系统,Windows 7 / Windows 8 / Windows 10 / Windows Server 2008 / Windows Server 2012 / Windows Server 2016 等。 3. 以及支持PHP全部版本,PHP5.3 / PHP5.4 / PHP5.5 / PHP5.6 / PHP7.0 /...

    nginx for windows 1.4 免安装

    **Nginx for Windows 1.4:轻松搭建高性能Web服务器** Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,以其高性能、稳定性以及低内存占用而著称。在Windows环境下,Nginx 1.4 ...

    Nginx RPM 包定制制作

    /application/nginx/sbin/nginx ss -lntup|grep nginx ps -ef|grep nginx|grep -v grep netstat -lntup|grep nginx|grep -v grep curl 127.0.0.1 mkdir -p /server/scripts cd /server/scripts/ fpm -s ...

    nginx for windows 工具下载

    **Nginx for Windows:构建高效Web服务器** Nginx是一款高性能、轻量级的Web服务器和反向代理服务器,广泛应用于互联网行业。在Windows环境下,Nginx同样表现出色,提供稳定的服务和高并发处理能力。标题"nginx for...

    Windows下Nginx的安装与配置

    Windows 下 Nginx 的安装与配置 Nginx 是一款高性能的、轻量级的 HTTP Web 服务器和反向代理服务器及电子邮件 IMAP/POP3/SMTP 代理服务器。其稳定性、丰富的功能集、示例配置文件和低系统资源的消耗使得其广泛应用...

    nginx1.4.0漏洞验证

    测试用到的python文件和linux版本的nginx1.4.0源码

    NGINX最新版本升级漏洞修复

    mv -f /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx$(date +%Y%m%d%H%M%S) #把新的可执行文件nginx复制到nginx目录对应位置 cp -R -f /opt/upgrade_nginx/nginx /usr/local/nginx/sbin/ cp -R -f /opt...

    Nginx常见错误及解决方法.doc

    sbin/nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory 这种错误是由于环境中缺少 libpcre.so.1 文件所致。解决方法是创建一个软链接: ...

    nginx-1.11.4.zip/Windows

    **Nginx 1.11.4 for Windows:核心概念与配置详解** Nginx 是一款高性能的 HTTP 和反向代理服务器,以其轻量级、高并发处理能力以及出色的稳定性而闻名。在这个名为 "nginx-1.11.4.zip" 的压缩包中,包含的是 Nginx...

Global site tag (gtag.js) - Google Analytics