Страница 1 из 2
MajorDoMo через proxy
Добавлено: Сб фев 04, 2017 1:56 pm
IgorOk76
Интернет в доме по динамическому IP. Озадачился обеспечением доступа к MajorDoMo из внешних сетей.
У меня есть внешний сервер на Debian с Nginx. Установил на него VPN (PPTP). Настроил MajorDoMo на подключение к этому VPN.
На Nginx настроил proxy:
Код: Выделить всё
server {
include listen;
server_name majordomo.myDomain.ru;
location / {
proxy_pass http://192.168.0.100:80;
proxy_set_header Host $http_host;
proxy_send_timeout 120;
proxy_read_timeout 120;
}
access_log /home/k1soft/logs/majordomo.access.log main;
error_log /home/k1soft/logs/majordomo.error.log warn;
}
MajorDoMo стал виден снаружи. Всё казалось бы хорошо, но возникла проблема:
При доступе по внутренней сети - всё ок, но если тыкаться снаружи - интерфейс загружается криво.
В логах Nginx ошибка:
Код: Выделить всё
2017/02/04 13:37:19 [error] 1158#1158: *455 upstream timed out (110: Connection timed out) while reading upstream, client: 95.133.345.445, server: majordomo.myDomain.ru,
request: "GET /jquerymobile/jquery-1.10.2.min.js HTTP/1.1", upstream: "http://192.168.0.100:80/jquerymobile/jquery-1.10.2.min.js", host: "majordomo.myDomain.ru",
referrer: "http://majordomo.myDomain.ru/menu.html"
Что характерно, если постучаться с андроида с Дельфина - чаще всего всё загружается нормально.
Уже бошку себе свернул.
Помогите, пожалуйста, решить проблему.
P.S.: Вероятно, проблема возникает с трансляцией WebSocets. Хотя я могу ошибаться. С ними столкнулся впервые.
Re: MajorDoMo через proxy
Добавлено: Сб фев 04, 2017 2:13 pm
savenko_egor
Ну так всё верно. Вам Ваш Nginx Proxy говорит что я незнаю этот IP: 192.168.0.100. Скорее всего Вы настроили и прокси и ВПН, но с сервера с Nginx не пингуется IP: 192.168.0.100. Попробуйте попинговать IP: 192.168.0.100 с сервера с Nginx.
Если это так, то Вам нужно прописать роут.
У меня настройка практически такая же как у Вас и всё работает хорошо.
Re: MajorDoMo через proxy
Добавлено: Сб фев 04, 2017 2:21 pm
IgorOk76
warik, маршруты прописаны. Всё пингуется.
Проблема в том, что затык происходит именно на jquery-1.10.2.min.js. Всё остальное приходит нормально. ((
Re: MajorDoMo через proxy
Добавлено: Сб фев 04, 2017 2:22 pm
savenko_egor
Да, да. Только сейчас обратил внимание на конфиг nginx-а. Сорри. Не заметил))
Попробуйте курлом стащить этот файл на сервер с Nginx: curl
http://192.168.0.100:80/jquerymobile/jq ... 0.2.min.js
Re: MajorDoMo через proxy
Добавлено: Сб фев 04, 2017 2:26 pm
IgorOk76
Стащился мгновенно.
Причем снаружи
http://majordomo.myDomain.ru/jquerymobi ... 0.2.min.js получился не полностью и повис до таймаута.
Re: MajorDoMo через proxy
Добавлено: Сб фев 04, 2017 2:29 pm
savenko_egor
У меня виртуальный хост такой:
Код: Выделить всё
server {
listen *:80;
access_log /var/log/nginx/proxy.log;
client_max_body_size 128m;
location / {
proxy_pass http://192.168.1.9;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
}
}
Особых отличий от Вашего нет, кроме X-Real-IP.
Re: MajorDoMo через proxy
Добавлено: Сб фев 04, 2017 2:37 pm
IgorOk76
К сожалению, Ваши конфиги не помогли. ((( Да и смысл в них тот-же.
Re: MajorDoMo через proxy
Добавлено: Сб фев 04, 2017 2:44 pm
savenko_egor
Пишут такие вещи:
Код: Выделить всё
proxy_http_version 1.1;
proxy_set_header Connection "";
Пробовали?
Так же если пробовать из интернета выкачать файл напрямую:
http://majordomo.myDomain.ru/jquerymobi ... 0.2.min.js нормально скачивается?
Общий конфиг Nginx-а у меня такой:
Код: Выделить всё
user www-data;
worker_processes 4;
pid /run/nginx.pid;
events {
worker_connections 768;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
gzip_disable "msie6";
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
Re: MajorDoMo через proxy
Добавлено: Сб фев 04, 2017 2:57 pm
IgorOk76
Из интернета не качается.
хидер не помог.
Сейчас попробую костыль по переносу jquerymobile на nginx сервер...
Re: MajorDoMo через proxy
Добавлено: Сб фев 04, 2017 2:59 pm
savenko_egor
В таком случае проще просто указать адрес js файла в интернете.
Например так:
Код: Выделить всё
https://code.jquery.com/jquery-1.10.2.min.js
То есть тут:
Изменить строку:
Код: Выделить всё
<script type="text/javascript" src="<#ROOTHTML#>jquerymobile/jquery-1.10.2.min.js"></script>
На:
Код: Выделить всё
<script type="text/javascript" src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
Ну или везде где встретится:
./templates/print_all.html: <script language="javascript" src="<#ROOTHTML#>jquerymobile/jquery-1.10.2.min.js"></script>
./templates/menu.html:<script type="text/javascript" src="<#ROOTHTML#>jquerymobile/jquery-1.10.2.min.js"></script>
./templates/application.html:<script type="text/javascript" src="<#ROOTHTML#>jquerymobile/jquery-1.10.2.min.js"></script>
./templates/scenes.html:<script type="text/javascript" src="<#ROOTHTML#>jquerymobile/jquery-1.10.2.min.js"></script>
./templates/panel.html: <script language="javascript" src="<#ROOTHTML#>jquerymobile/jquery-1.10.2.min.js"></script>
./templates/pages.html:<script type="text/javascript" src="<#ROOTHTML#>jquerymobile/jquery-1.10.2.min.js"></script>
Но в таком случае если Алиса останется без интернета, тогда файл не подгрузится.