<div dir="ltr"><span style="font-family:arial,sans-serif;font-size:13px">ЗдравÑтвуйте!</span><div style="font-family:arial,sans-serif;font-size:13px">Я не нашёл полного ответа на Ñвой вопроÑ, по Ñтому Ñ Ð·Ð°Ð´Ð°Ð¼ его здеÑÑŒ.</div>
<div style="font-family:arial,sans-serif;font-size:13px"><br><div>Суть проблемы Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð¹ Ñ ÑтолкнулÑÑ:</div><div>ЕÑть баланÑер на оÑнове nginx, который прокÑирует http и https ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð½Ð° backend Ñервера (то же nginx).</div>
<div><br></div><div>Вне завиÑимоÑти от того пришёл ли на баланÑер http или https Ð·Ð°Ð¿Ñ€Ð¾Ñ Ñ Ð¿Ñ€Ð¾ÐºÑирую его на бÑкÑнд по http.</div><div><br></div><div>Ð’ÑÑ‘ работает, но на бÑкÑндах Ñ Ð½Ðµ могу определить, какой Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð¿Ñ€Ð¸ÑˆÑ‘Ð» на баланÑер http или https. ÐŸÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ $https вÑегда пуÑтаÑ, а $scheme вÑегда имеет занчение "http".</div>
<div><br></div><div>СоответÑтвенно мне нужно как то прокÑировать переменные $https и $scheme.</div><div><br></div><div>Я делаю Ñто так:</div><div>Ðа баланÑере:</div><div><div>     location / {</div><div>        proxy_pass <a href="http://127.0.0.1:8080/" target="_blank">http://127.0.0.1:8080</a>;</div>
<div>        proxy_set_header Host $host;</div><div>        proxy_set_header X-Real-IP $remote_addr;</div><div>        proxy_set_header X-Forwarded-For $remote_addr;</div><div>        # тут прокÑируем переменную $scheme</div>
<div>        proxy_set_header X-Forwarded-Proto $scheme;</div><div><br></div><div>        proxy_connect_timeout 120;</div><div>        proxy_send_timeout   120;</div><div>        proxy_read_timeout   180;</div>
<div>    }</div></div><div><br></div><div>Ðа бÑкÑнде:</div><div>Ð’ Ñекцию http добавлÑÑŽ:</div><div><div>  map $http_x_forwarded_proto $https {</div><div>    default '';</div><div>    https on;</div><div>
  }</div><div><br></div><div>  map $http_x_forwarded_proto $scheme {</div><div>    default http;</div><div>    https https;</div><div>  }</div></div><div><br></div><div>Ðо Ñто не работает:</div><div>nginx: [emerg] the duplicate "https" variable in /usr/local/etc/nginx/nginx.conf:39<br>
</div><div><br></div><div>Ðе работает видимо по тому что Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ð·Ð¼ÐµÐ½Ñть переменные $https и $scheme.</div><div><br></div><div>Можно было бы Ñделать так:</div><div><div>  map $http_x_forwarded_proto $fastcgi_https {</div>
<div>Â Â Â Â default '';</div><div>Â Â Â Â https on;</div><div>Â Â }</div><div><br></div><div>Â Â map $http_x_forwarded_proto $fastcgi_scheme {</div><div>Â Â Â Â default http;</div><div>Â Â Â Â https https;</div><div>
  }</div></div><div><br></div><div>Ðо Ñ Ð½Ðµ хотел бы иÑпользовать не Ñтандартные переменные потому что ниже в Ñекции location Ñ Ð¸Ñпользую переменные $https и $scheme в множеÑтве правил Ñ rewrite. Ðе Ñтандартные переменные Ñоздадут неудобÑтва в Ñлучае еÑли ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ‚ÑÑ.</div>
<div><br></div><div>ПодÑкажите пожалуйÑта как правильно решить мою задачу?</div><div>СпаÑибо.</div></div></div>