Size: a a a

AngularPiter - русскоговорящее сообщество

2018 August 28

АД

Александр Духовняк in AngularPiter - русскоговорящее сообщество
Dmitry Teplov
Так да, в этом то и проблема, что в дев сервере настроить путь к сокету нельзя (выше скинул, давняя проблема), а определить по реквесту приложение не получается, ибо ориджины совпадают. Была мысль куку подставлять, но опять же, теперь хосты совпадают и различить не получится.
А т.к. всё это дело в памяти сидит, то и инжектнуть свой путь в клиентский скрипт вебпака не выйдет.
Ну так да)
источник

АД

Александр Духовняк in AngularPiter - русскоговорящее сообщество
Dmitry Teplov
Так да, в этом то и проблема, что в дев сервере настроить путь к сокету нельзя (выше скинул, давняя проблема), а определить по реквесту приложение не получается, ибо ориджины совпадают. Была мысль куку подставлять, но опять же, теперь хосты совпадают и различить не получится.
А т.к. всё это дело в памяти сидит, то и инжектнуть свой путь в клиентский скрипт вебпака не выйдет.
На самом деле я завтра буду решать эту же задачу. Есть мысли, если что будет - напишу
источник

DT

Dmitry Teplov in AngularPiter - русскоговорящее сообщество
Гуд, аналогично
источник

GK

Georgii Klubnikov in AngularPiter - русскоговорящее сообщество
Сегодня ковырял что-то похожее, у вебпак прокси мидлваре есть опция для проксирования WS. С указанием путя, МБ поможет
источник

GK

Georgii Klubnikov in AngularPiter - русскоговорящее сообщество
Через CLI прокси конфиг можно таргеты для каждого приложения сделать
источник
2018 August 29

DT

Dmitry Teplov in AngularPiter - русскоговорящее сообщество
Georgii Klubnikov
Сегодня ковырял что-то похожее, у вебпак прокси мидлваре есть опция для проксирования WS. С указанием путя, МБ поможет
поковырял, не получилось
проксирование выполняется на дев сервере, а до него запросы к вебсокету не долетают
нужен иной подход
источник

DT

Dmitry Teplov in AngularPiter - русскоговорящее сообщество
@shanhaichik у меня получилось)
источник

DT

Dmitry Teplov in AngularPiter - русскоговорящее сообщество
сейчас разберусь до конца и напишу решение
источник

АД

Александр Духовняк in AngularPiter - русскоговорящее сообщество
Dmitry Teplov
@shanhaichik у меня получилось)
источник

DT

Dmitry Teplov in AngularPiter - русскоговорящее сообщество
В общем, с концами упаковать в докер у меня не получилось, но мне у меня и не было необходимости, обычно дев сервера запущены на самой машине.

Аргументы serve:
ng serve --disable-host-check --deploy-url=/auth/ --base-href=/auth/ --port=3000 --host=0.0.0.0 --public-host=0.0.0.0:3000

Конфиг сервера (подменяю значения в фигурных скобках скриптом):
upstream frontend_auth {
 server {{LOCAL_NETWORK_IP}}:3000;
}

server {
 server_name {{SERVER_NAME}};

 listen 80;

 client_max_body_size 64M;
 keepalive_timeout    70;

 location /auth/ {
   proxy_pass http://frontend_auth;

   proxy_set_header Host $host:$server_port;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header X-Forwarded-Proto $scheme;
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection "upgrade";
   proxy_redirect   http:// $scheme://;
 }
}

Таким образом, приложение работает нормально и файлы отдаются по роуту auth, а лайв релоад стучится к активному хосту по соответствующему порту, например:
 ws://df.loc:3000/sockjs-node/336/seouxyba/websocket

df.loc
резолвится на локалхост, само собой.

Проблема осталась следующая - раньше ssl у меня был только на уровне реверс прокси, дев сервер всегда работал по http. С таким подходом нужно заводить дев сервер с ssl.
источник

DT

Dmitry Teplov in AngularPiter - русскоговорящее сообщество
Dmitry Teplov
В общем, с концами упаковать в докер у меня не получилось, но мне у меня и не было необходимости, обычно дев сервера запущены на самой машине.

Аргументы serve:
ng serve --disable-host-check --deploy-url=/auth/ --base-href=/auth/ --port=3000 --host=0.0.0.0 --public-host=0.0.0.0:3000

Конфиг сервера (подменяю значения в фигурных скобках скриптом):
upstream frontend_auth {
 server {{LOCAL_NETWORK_IP}}:3000;
}

server {
 server_name {{SERVER_NAME}};

 listen 80;

 client_max_body_size 64M;
 keepalive_timeout    70;

 location /auth/ {
   proxy_pass http://frontend_auth;

   proxy_set_header Host $host:$server_port;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header X-Forwarded-Proto $scheme;
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection "upgrade";
   proxy_redirect   http:// $scheme://;
 }
}

Таким образом, приложение работает нормально и файлы отдаются по роуту auth, а лайв релоад стучится к активному хосту по соответствующему порту, например:
 ws://df.loc:3000/sockjs-node/336/seouxyba/websocket

df.loc
резолвится на локалхост, само собой.

Проблема осталась следующая - раньше ssl у меня был только на уровне реверс прокси, дев сервер всегда работал по http. С таким подходом нужно заводить дев сервер с ssl.
Решил сделать следующим образом:

1) Учитывать протокол запроса при проксировании
proxy_pass $scheme://frontend_auth;

2) Добавил страницу для 502 ошибки (когда апстрим не доступен по текущему протоколу), которая просто перезагружает страницу с другим протоколом:
error_page 502 = /502.html;

location /502.html {
 root ./conf.d/static/;
}

страница:
<script>
 const isHttp = () => location.protocol === 'http:';
 const getProtocol = () => isHttp() ? 'https:' : 'http:';
 window.location =  getProtocol() + location.host + location.pathname;
</script>

Я бы и совсем не боролся с http, но с концами конфигурацию в проекте поменять не могу, это для собственного удобства, чтобы тестировать сервис воркеры.
источник
2018 August 30

АД

Александр Духовняк in AngularPiter - русскоговорящее сообщество
Dmitry Teplov
В общем, с концами упаковать в докер у меня не получилось, но мне у меня и не было необходимости, обычно дев сервера запущены на самой машине.

Аргументы serve:
ng serve --disable-host-check --deploy-url=/auth/ --base-href=/auth/ --port=3000 --host=0.0.0.0 --public-host=0.0.0.0:3000

Конфиг сервера (подменяю значения в фигурных скобках скриптом):
upstream frontend_auth {
 server {{LOCAL_NETWORK_IP}}:3000;
}

server {
 server_name {{SERVER_NAME}};

 listen 80;

 client_max_body_size 64M;
 keepalive_timeout    70;

 location /auth/ {
   proxy_pass http://frontend_auth;

   proxy_set_header Host $host:$server_port;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header X-Forwarded-Proto $scheme;
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection "upgrade";
   proxy_redirect   http:// $scheme://;
 }
}

Таким образом, приложение работает нормально и файлы отдаются по роуту auth, а лайв релоад стучится к активному хосту по соответствующему порту, например:
 ws://df.loc:3000/sockjs-node/336/seouxyba/websocket

df.loc
резолвится на локалхост, само собой.

Проблема осталась следующая - раньше ssl у меня был только на уровне реверс прокси, дев сервер всегда работал по http. С таким подходом нужно заводить дев сервер с ssl.
Здорово, я вчера так и не успел заняться. Так что попробуем твои наработки взять. Спасибо
источник

Вキ

Вертихвост キバ in AngularPiter - русскоговорящее сообщество
https://xlayers.app

Ушёл в open source, поможем собрать первые 100 звёзд? :)
Заранее спасибо

https://github.com/manekinekko/xlayers
источник

АО

Алексей Охрименко in AngularPiter - русскоговорящее сообщество
в основном чате напиши с утра и пингани - запиним
источник

Вキ

Вертихвост キバ in AngularPiter - русскоговорящее сообщество
Алексей Охрименко
в основном чате напиши с утра и пингани - запиним
там уже есть, Дмитрий скинул
источник

АО

Алексей Охрименко in AngularPiter - русскоговорящее сообщество
Вертихвост キバ
там уже есть, Дмитрий скинул
источник

AK

Andrey Kotofotoff in AngularPiter - русскоговорящее сообщество
Алексей Охрименко
Надо было имена добавить (ибо я знаю за что HR-ы будут голосовать)
😂
источник

AK

Andrey Kotofotoff in AngularPiter - русскоговорящее сообщество
Иван Ботанов
такую демократию да в чатик angular_ru
Зачем ?
источник
2018 September 14

АО

Алексей Охрименко in AngularPiter - русскоговорящее сообщество
Ngx-formly, плагинная архитектура Angular приложений и ngrx-data - все это и многое другое на 11 Angular митапе который пройдет в офисе IPONWEB (улица Шаболовка 31Г, 5 подъезд). В этот раз с online трансляцией ;)

Регистрация по ссылке https://meetup.tinkoff.ru/events/11-angular-meetup
источник

AS

Andrey Selemenev in AngularPiter - русскоговорящее сообщество
👍
источник