zoukankan      html  css  js  c++  java
  • 配置nginx下别名alias支持PHP fastcgi解析

    1)参看如下连篇文章:
    Nginx设置alias实现虚拟目录 alias与root的用法区别
    http://down.chinaz.com/server/201111/1382_1.htm
    Nginx下alias支持PHP的问题
    http://i.laoer.com/nginx-alias-php.html

    2)我的环境是:web根目录在 /var/www/html/中,但是我要加上一个类似于apache的别名目录 /bbs ,此目录不在 web根目录中。
    我的配置文件如下:

    server {
        listen       80;
        server_name    localhost;
        default_type text/plain;

        location / {
            root    /var/www/html;
            index    index.php index.htm index.html;

        }

        location = /extension/sub {
            set $push_channel_id $arg_exten;
            push_subscriber long-poll;
            push_subscriber_concurrency broadcast;
            push_channel_group broadcast;
            default_type text/plain;
            #default_type text/html;
        }
        location = /extension/pub {
            set $push_channel_id $arg_exten;
            push_publisher;
            push_min_message_buffer_length 0;
            push_max_message_buffer_length 0;
            push_message_timeout 1h;
            push_channel_group broadcast;
            default_type text/plain;
            #default_type text/html;
        }

        location /bbs {
            alias /opt/bbs/;
            index index.html index.htm index.php;
        }
        location ~ ^/bbs/.+.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param SCRIPT_FILENAME /opt$fastcgi_script_name;
            include        fastcgi_params;
            #include fastcgi.conf;
        }

      location ~ .php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name;
            include        fastcgi_params;
            #include fastcgi.conf;
        }

    }

    说明: 上面这个就是成功的例子。但是又如下几点需要注意:
    1)location ~ .php$ {}  段,必须放在 location ~ ^/bbs/.+.php$ {} 段后面,否则/bbs/的url打不开
    2) location ~ ^/bbs/.+.php$ {} 里面也可以写成如下:
    location ~ ^/bbs/.+.php$ {
            root /opt;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    也就是用 变量名 $document_root 代替 /opt; 其实每个 location {}中的 $document_root 都是局部变量,都是在本段配置 root指令指定的路径。

    以上配置完全可以通过nginx的第3放插件 echo 模块来得到验证,方法如下:
    location /echo {
            root /etc/asterisk;
            #echo "$document_root";
            echo "$fastcgi_script_name";
    }

  • 相关阅读:
    jquery 年月日分离
    Jquery实现常用的分类搜索跳转
    SQL Server 利用触发器对多表视图进行更新
    TEA XTEA XXTEA 学习笔记
    IDApro自带动调初探
    HECTFreverse部分writeup
    NCTF2021逆向WP(部分)
    buuctf[刮开有奖]writeup
    base64学习笔记
    深夜写文——致19岁的自己
  • 原文地址:https://www.cnblogs.com/voiphudong/p/3242913.html
Copyright © 2011-2022 走看看