nginx驗證微信文件

    在微信公衆平臺開發中,最基本的一個問題是文件驗證。這個文件一般以.txt結尾,這個文件的裏面是一個字符串,一般在開發微信時,需要在自己的服務器根目錄下放入這個文件。

    根據項目的需要,我們需要把這個文件存入數據庫,然後讓程序直接通過數據庫來驗證,具體做法是利用ngxin,

    具體如下:

    首先在ngxin.conf中,加入一個變量,這個變量是解惑uri中的文件名。例如/a/b.txt 則能獲取到b.txt,然後把這個變量 傳遞給某個controller,controller獲取這個變量的名字,去數據庫搜索。然後輸出內容。

           map $uri $basename {
                 ~/(?<captured_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是帶後綴結尾的。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章