Я пытаюсь настроить систему RESTful с балансировкой нагрузки на основе SSL, используя nginx в качестве интерфейса (бэкэнд использует http). У меня возникла проблема с получением полного URL-адреса и одного аргумента в моем приложении.Невозможно получить заголовки хостов, переданные в конфигурации nginx
У меня есть это в/и т.д./Nginx/сайты-доступные/по умолчанию:
upstream backend {
server 10.200.40.100;
server 10.200.40.101;
}
server {
listen 443;
server_name localhost;
ssl on;
ssl_certificate /etc/ssl/certs/reverse_chained_star_comtex_com.crt;
ssl_certificate_key /etc/ssl/certs/star_comtex_com.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
underscores_in_headers on;
ignore_invalid_headers on;
location/{
proxy_redirect off;
proxy_set_header Host $host;
proxy_pass http://backend?$args;
}
Но когда я отправить запрос и просмотреть журнал доступа apache2 на движки я вижу:
10.200.40.102 - - [03/Jul/2013:11:51:50 -0400] "GET /? HTTP/1.0" 401 478 "-" "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36"
я должен увидеть что-то вроде этого:
10.200.40.102 - - [02/Jul/2013:11:41:32 -0400] "GET /news/headlines/since/2013-07-02+01:00:00?api_key='xxxxxxx' HTTP/1.1" 401 4889 "-" "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36"
у меня есть подчеркивание в имени моего аргумента, поэтому я m, используя underscores_in_headers. Любые идеи, что может пойти не так?
Вы пробовали просто использовать 'proxy_pass http: // backend;'? Аргументы get передаются автоматически –
Я просто попробовал это без $ args, и теперь я вижу это в access.log: '10.200.40.102 - - [08/Jul/2013: 13: 37: 36 -0400]" GET/favicon.ico HTTP/1.0 "401 478" - "" Mozilla/5.0 (Windows NT 6.2, WOW64) AppleWebKit/537.36 (KHTML, например, Gecko) Chrome/27.0.1453.116 Safari/537.36 «Не уверен, что это прогресс или нет , –