@rick1211

Nginx не проксирует на удаленный хост?

Здравствуйте!

Столкнулся с проблемой, что nginx не проксирует удаленный хост. На удаленном хосте крутится onlyoffice из docker-а.
Когда открываю приложение по ip/имени:порт -удаленный сервер с офисом работает.
Виртуальный стенд находится в локальной сети.

Конфиг на nginx:


server {
server_name apps.lab.lan;
rewrite ^ https://apps.lab.lan$request_uri? permanent;
}

server {
listen 80;
listen 443 ssl;
server_name apps.lab.lan;

ssl_certificate /home/ssl/apps-certs/apps.lab.lan.crt;
ssl_certificate_key /home/ssl/apps-certs/apps.lab.lan.key;
ssl_session_cache off;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!DH:!EXPORT:!RC4:+HIGH:+MEDIUM:!LOW:!aNULL:!eNULL;

gzip on;
gzip_min_length 1000;
gzip_http_version 1.0;
gzip_vary on;
gzip_comp_level 5;
gzip_proxied any;
gzip_types text/plain text/css text/javascript application/json;

client_max_body_size 100m;

location / {
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-Proto $scheme;
proxy_pass https://192.168.1.27:9443;
proxy_connect_timeout 60s;
proxy_read_timeout 60s;
proxy_send_timeout 60s;
proxy_ssl_verify off;
proxy_request_buffering off;

}
}


В логе nginx иногда проскакивает такие warning-и.
2017/10/03 17:58:38 [warn] 2522#2522: conflicting server name "apps.lab.lan" on 0.0.0.0:80, ignored


С хоста Nginx реверс-прокси на другое приложение срабатывает, но они находятся на одном хосте, а на удаленный хост не работает. Сертификаты самоподписаные.

Конфиг, почти такой, только хедеры отличаются в зависимости от приложения.

Любая информация на эту тему будет актуальна, траблшутинг и замечания.
Заранее благодарствую!
  • Вопрос задан
  • 1621 просмотр
Пригласить эксперта
Ответы на вопрос 2
@lubezniy
1. В двух секциях server одинаковое server_name , а прокси настроен только во второй. Потенциально это источник проблемы.
2. Попробуйте выделить сервер-получатель в отдельный блок upstream и в proxy-pass прописать его.
Ответ написан
Что мешает обратиться к официальной документации с примерами настроек, а не городить огород?

https://github.com/ONLYOFFICE/document-server-prox...

У меня в одном проекте проксирование HTTPS-to-HTTPS на Nginx настроено так:
http {

        # Websocket
        map $http_upgrade $connection_upgrade {
                default upgrade;
                ''      close;
        }

server {
...  
          lingering_time 86400;
          proxy_ssl_verify off;
          proxy_ssl_session_reuse on;
          proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
          proxy_cache off;
          proxy_store off;

          set $ssl off;
          set $port 80;
          if ($scheme = https) {
              set $ssl on;
              set $port 443;
          }

        location / {
            proxy_pass https://192.168.XX.XX:8443/;
            gzip off;
            proxy_read_timeout          600s;
            proxy_connect_timeout       600s;
            proxy_redirect              off;
            proxy_buffering             off;
            proxy_request_buffering     off;
            proxy_http_version          1.1;
            proxy_set_header Host                   $http_host;
            proxy_set_header X-Real-IP              $remote_addr;
            proxy_set_header X-Forwarded-Ssl        $ssl;
            proxy_set_header X-Forwarded-For        $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto      $scheme;
            proxy_set_header X-Forwarded-Port       $port;
            proxy_set_header X-Frame-Options        SAMEORIGIN;
            proxy_set_header Upgrade                $http_upgrade;
            proxy_set_header Connection             $connection_upgrade;
            proxy_set_header Referer "";
        }
}
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы