Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Nginx Proxy  (Прочитано 1056 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн GooG1e

  • Автор темы
  • Активист
  • *
  • Сообщений: 260
    • Просмотр профиля
Nginx Proxy
« : 28 Сентября 2016, 12:39:17 »
Всем привет! Решил настроить nginx как reverse прокси для сайтов, которые находятся в моей сети (сайтов несколько и на разных виртуалках, а хочется иметь к ним доступ из интернета).
ну так вот установил на виртуалку nginx, сел настраивать reverse прокси. Конфиг получился примерно такой для https:
upstream backend-ssl{

server 192.168.1.180:443;
}
server {
listen       192.168.1.190:443;
server_name ***;

ssl                     on;
    ssl_protocols           SSLv3 TLSv1;
ssl_certificate /etc/letsencrypt/live/***/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/***/privkey.pem;

error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;



location / {
proxy_pass https://backend-ssl;
proxy_redirect        off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;

proxy_set_header X-Forwarded-Server $host;

        proxy_pass_header Set-Cookie;
}
location /.well-known {
                allow all;
root /home/https;
        }

}

Но прикол в том, что из интернета по доменному имени я зайти могу, а когда пытаюсь сделать это из внутренней сети по внешнему имени, то фигня полная получается.
В логах пишет вот это
(Нажмите, чтобы показать/скрыть)

Пожалуйста подскажите в чём может быть проблема и как её починить?
Заранее спасибо!

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Nginx Proxy
« Ответ #1 : 28 Сентября 2016, 12:54:07 »
Тебе не нужен upstream если у тебя всего один апстрим.
Для ssl - listen 443 ssl;
"ssl on" устарела и может быть удалена в следующем релизе.
ssl_protocols нужно использовать ТОЛЬКО ЕСЛИ ЭТО ПРЯМО УКАЗАНО, например, в CVE mitigation guide.
Либо если ты точно знаешь, что делаешь.
Изнутри по внешнему имени можно зайти только в двух случаях - кривая настройка файервола либо внешнее имя внутри сети ресолвится во внутренний IP адрес.
Ну и вообще, почему не просто пробросить порты? Судя по всему, nginx в вашей ситуации не нужен совершенно.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн GooG1e

  • Автор темы
  • Активист
  • *
  • Сообщений: 260
    • Просмотр профиля
Re: Nginx Proxy
« Ответ #2 : 28 Сентября 2016, 13:31:30 »
Я настроил так файрволл на роутере, чтобы изнутри можно было зайти по внешнему адресу через маскардинг.
Пробрасывать порты не получится т.к. я показал только ту часть сайта, которая не работает. там есть ещё парочка, к которым тоже нужен доступ и простым пробрасыванием портов я не отделаюсь.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Nginx Proxy
« Ответ #3 : 28 Сентября 2016, 13:39:53 »
curl'ом попробуйте проверить, и внешний и внутренний адрес.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн GooG1e

  • Автор темы
  • Активист
  • *
  • Сообщений: 260
    • Просмотр профиля
Re: Nginx Proxy
« Ответ #4 : 28 Сентября 2016, 13:49:00 »
если я изнутри цепляюсь к внутреннему всё работает
если я изнутри цепляюсь к внешнему адресу, который перенаправляется на внутренний, то пишет Connection refused
если я снаружи цепляюсь к внешнему адресу, то всё работает

Без https это нормально работает т.е. с обычным http всё нормально в любой из 3х ситуаций.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Nginx Proxy
« Ответ #5 : 28 Сентября 2016, 13:55:30 »
К внутреннему адресу проксирующего сервера? В логах всё видно? Как приходит прокси запрос, как он уходит на апстрим?
Тогда смотрите tcpdump, что куда у вас бегает при запросе через роутер.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн GooG1e

  • Автор темы
  • Активист
  • *
  • Сообщений: 260
    • Просмотр профиля
Re: Nginx Proxy
« Ответ #6 : 28 Сентября 2016, 14:08:05 »
На проксирующий сервер запрос приходит при запросе через внешний адрес, но вот дальше что с ним происходит непонятно
P.S. Судя по логам на внутренний сервер, на который я хочу получить доступ через прокси, вообще запросы не приходят
« Последнее редактирование: 28 Сентября 2016, 14:12:23 от GooG1e »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Nginx Proxy
« Ответ #7 : 28 Сентября 2016, 14:15:37 »
Смотрите tcpdump, куда и откуда ходят пакеты.
Возможно, роутер не маскарадит ваш IP и ответ от сервера идёт вам напрямую и отбивается системой как спуф.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн GooG1e

  • Автор темы
  • Активист
  • *
  • Сообщений: 260
    • Просмотр профиля
Re: Nginx Proxy
« Ответ #8 : 28 Сентября 2016, 14:28:11 »
Спасибо за помощь!
Косяк был на стороне роутера)

 

Страница сгенерирована за 0.04 секунд. Запросов: 25.