Каков наилучший способ отладки файла VCL? - PullRequest
1 голос
/ 08 декабря 2011

Я пишу встроенный C в моем файле VCL.В частности, я использую базу данных Maxmind GeoIP для геокодирования IP-адреса посетителя.У меня все установлено, я следовал всем вики-примерам для базы данных GeoIP, и все работает безупречно.

Я пытаюсь теперь поработать с GeoIP, не считая примеров страны возврата.Я хочу вернуть город посетителя, используя метод GeoIP_record_by_addr (), который возвращает указатель.

Проблема: Кажется, я не могу правильно привести GeoIPRecord * к char *.Я пытался часами.Я получаю Varnish для компиляции моего VCL-файла без каких-либо ошибок или уведомлений, но сервер лака отвечает 403.

Вопрос: В любом случае я могу отладить либо встроенный C, либо лак 403 отвечает?

1 Ответ

3 голосов
/ 10 декабря 2011

Как правило, Firebug и varnishlog будут вашими лучшими друзьями.

Если вы хотите отлаживать чистый VCL, лучшим способом является отправка данных в заголовки HTTP ([req / bereq / beresp / resp] .http. [header name]) и проверьте их значение в Firebug (или varnishlog, если у вас мало запросов).

Если вы хотите отлаживать встроенный C, вы также можете поиграть с заголовками (VRT_SetHdr ()), но еслиКод C приводит к сбою лака, вы поймете, почему в /var/log/messages.

Вы также можете проверить varnishlog, чтобы увидеть, выходит ли лак ... но когда лак падает, вы получаете тайм-ауты, а не 403...

Мне нужно увидеть ваш VCL, чтобы понять, почему вы получаете 403, но технически это не «ошибка», а «состояние», означающее, что ваш запрос был обработан лаком (и,к сожалению, запрещено где-то).

Я не думаю, что Лак вернет 403, если вы не попросите его сделать это.Таким образом, существует большая вероятность того, что статус 403. исходит от вашего веб-сервера (серверная часть).

В любом случае, ваш лак, похоже, не падает, а скорее имеет проблемы с поведением.

...