nginx验证微信文件

    在微信公众平台开发中,最基本的一个问题是文件验证。这个文件一般以.txt结尾,这个文件的里面是一个字符串,一般在开发微信时,需要在自己的服务器根目录下放入这个文件。

    根据项目的需要,我们需要把这个文件存入数据库,然后让程序直接通过数据库来验证,具体做法是利用ngxin,

    具体如下:

    首先在ngxin.conf中,加入一个变量,这个变量是解惑uri中的文件名。例如/a/b.txt 则能获取到b.txt,然后把这个变量 传递给某个controller,controller获取这个变量的名字,去数据库搜索。然后输出内容。

           map $uri $basename {
                 ~/(?[^/]*)$ $captured_basename;
        }

 

注意,这个map需要nginx开启mapmodule,这个一般最新的nginx都有。同时,这个代码需要些在全局中的http块中。也就是nginx.conf中。

到了具体的server时,想要获取这个变量:

   location ~ \.txt$ {
            if ( $basename ~ (([\S\s]*).txt) ){
                 set  $file_name $2;
                #proxy_pass http://127.0.0.1:8090/yun/weChatTicket/verify?ticket_file=$file_name;
                proxy_pass http://127.0.0.1:9290/yun/weChatTicket/verify?ticket_file=$basename;
                    break;
            }

           return 502 '{"status":502,"msg":$uri $basename $file_name}';

        }

这里$file_name是不带后缀结尾的。$basename是带后缀结尾的。

 

 

 

你可能感兴趣的:(nginx验证微信文件)