2016-04-06 4 views
-1

/и т.д./Nginx/сайты с поддержкой/по умолчанию:Lua Nginx Concatenation Ошибка

 location /pine { 
      add_header Access-Control-Allow-Origin http://localhost:6285; 
      add_header Access-Control-Allow-Credentials true; 
      access_by_lua_file /home/akuznetsov/auth.lua; 
      proxy_pass http://localhost:9100; 
    } 

auth.lua (версия 1, работает отлично):

ngx.req.set_header('x-user-id', ngx.var.cookie_sessionid) 

AUTH. lua (версия 2, не работает):

ngx.req.set_header('x-user-id', 'session:' .. ngx.var.cookie_sessionid) 

в /var/log/nginx/error.log я получаю эту ошибку:

2016/04/06 16:13:10 [error] 14183#0: *1 lua entry thread aborted: runtime error: /home/akuznetsov/auth.lua:2: attempt to concatenate field 'cookie_sessionid' (a nil value) 
stack traceback: 
coroutine 0: 
/home/akuznetsov/auth.lua:2: in function </home/akuznetsov/auth.lua:1>, client: 127.0.0.1, server: localhost, request: "OPTIONS /pine HTTP/1.1", host: "localhost", referrer: "http://localhost:6285/chart/kjckCBcG/?pine=http://localhost/pine" 

WTF? Что неправильно в concat?

+2

это не отладочная служба ... и WTF? Что неправильно в concat? также не является подходящим вопросом. Получите некоторые манеры, пожалуйста. – Piglet

ответ

1

ngx.var.cookie_sessionid is nil и так же, как сообщается вам, вы не можете конкатенировать (то есть ..) это. Предоставьте if с логикой для обработки этого случая или используйте ngx.req.set_header('x-user-id', 'session:' .. ngx.var.cookie_sessionid or ""), если вы согласны с использованием пустой строки по умолчанию.

0

Eureka! Браузер в первую очередь отправляет запрос OPTIONS без печенья, но второй запрос (например, POST) с. Я вижу ответ за прокси nginx, и мне показалось, что все хорошо.

Смежные вопросы