Обратный прокси и веб интерфейс

1. SnowSin 31.07.22 21:34 Сейчас в теме
Может быть кто то сталкивался.

8.3.20.1914, ERP управление холдингом, Windows Server 2019.
Веб сервер Apache (но на IIS тоже самое было), обратный прокси Traefik.
Траефик корректно передает заголовки.

При прямом обращении из локальной сети на веб версию ошибок нет.
При обращении из вне через обратный прокси после авторизации идет К сожалению, возникла ошибка.

В отчете по ошибке:
"clientStack": "Error\n at g.i0a (/scripts/mod_main_loader.js?sysver=8.3.20.1914:521:324)\n at new Hd (/scripts/mod_main_loader.js?sysver=8.3.20.1914:518:358)\n at zn (/scripts/mod_main_loader.js?sysver=8.3.20.1914:1537:268)\n at zn (/scripts/mod_main_loader.js?sysver=8.3.20.1914:1535:187)\n at Tua (/scripts/mod_main_loader.js?sysver=8.3.20.1914:1534:50)\n at Sua (/scripts/mod_main_loader.js?sysver=8.3.20.1914:1533:246)\n at Bka (/scripts/mod_main_loader.js?sysver=8.3.20.1914:1533:371)\n at Aka (/scripts/mod_main_loader.js?sysver=8.3.20.1914:1014:108)\n at Yi (/scripts/mod_main_loader.js?sysver=8.3.20.1914:1018:339)\n at $e (/scripts/mod_main_loader.js?sysver=8.3.20.1914:1020:282)\n at cn.load (/scripts/mod_main_loader.js?sysver=8.3.20.1914:1474:49)\n at on.j (/scripts/mod_main_loader.js?sysver=8.3.20.1914:1479:297)\n at on._call (/scripts/mod_main_loader.js?sysver=8.3.20.1914:1479:39)\n at qf._call (/scripts/mod_main_loader.js?sysver=8.3.20.1914:1755:311)\n at g.lub (/scripts/mod_main_loader.js?sysver=8.3.20.1914:1512:88)\n at Lua (/scripts/mod_main_loader.js?sysver=8.3.20.1914:1506:289)\n at g.Xj (/scripts/mod_main_loader.js?sysver=8.3.20.1914:1505:267)\n at wsa (/scripts/mod_main_loader.js?sysver=8.3.20.1914:1472:234)\n at pm (/scripts/mod_main_loader.js?sysver=8.3.20.1914:1471:460)\n at /scripts/mod_main_loader.js?sysver=8.3.20.1914:1349:45\n at /scripts/mod_main_loader.js?sysver=8.3.20.1914:1355:332\n at Qsa (/scripts/mod_main_loader.js?sysver=8.3.20.1914:1468:49)\n at /scripts/mod_main_loader.js?sysver=8.3.20.1914:1355:317\n at Cvb.Ka (/scripts/mod_main_mainform.js?sysver=8.3.20.1914:364:500)\n at /scripts/mod_main_loader.js?sysver=8.3.20.1914:914:920\n at Fka (/scripts/mod_main_loader.js?sysver=8.3.20.1914:1016:126)\n at Yi.v.onreadystatechange (/scripts/mod_main_loader.js?sysver=8.3.20.1914:1018:216)",


Возможно, но это не точно, в журнале ошибки в этот момент:
09:59.432010-0,EXCP,2,p:processName=RegMngrCntxt,p:processName=ServerJobExecutorContext,Descr='src\rserver\src\RemoteProxyStubServiceStubPlugin.cpp(192):
2386a9f7-a5fa-4d5b-9f6e-1179e73f150a: Первичный вызов сервиса пришел в пассивный сервис.'
09:59.432014-0,EXCP,2,p:processName=RegMngrCntxt,p:processName=ServerJobExecutorContext,Descr='src\rserver\src\RemoteProxyStubServiceStubPlugin.cpp(192):
2386a9f7-a5fa-4d5b-9f6e-1179e73f150a: Первичный вызов сервиса пришел в пассивный сервис.'
09:59.932041-0,EXCP,2,p:processName=RegMngrCntxt,p:processName=ServerJobExecutorContext,Descr='Сеанс отсутствует или удален
ID=7e9eae3e-db2a-4936-a29d-342e43dbc97e, File=D:\Jenkins\ci_builder\WindowsBuild2_XGCGGQ1A62EB\Platform\src\­rserver\src\ClusterDistrib.cpp(1119)'
09:59.932042-0,EXCP,2,p:processName=RegMngrCntxt,p:processName=ServerJobExecutorContext,Descr='src\rserver\src\ClusterDistrib.cpp(1119):
60c686dc-798f-4d17-aadb-a90156a16eb8: Сеанс отсутствует или удален
ID=7e9eae3e-db2a-4936-a29d-342e43dbc97e, File=D:\Jenkins\ci_builder\WindowsBuild2_XGCGGQ1A62EB\Platform\src\­rserver\src\ClusterDistrib.cpp(1119)'
09:59.932043-0,EXCP,2,p:processName=RegMngrCntxt,p:processName=ServerJobExecutorContext,Descr='Сеанс отсутствует или удален
ID=7e9eae3e-db2a-4936-a29d-342e43dbc97e, File=D:\Jenkins\ci_builder\WindowsBuild2_XGCGGQ1A62EB\Platform\src\­rserver\src\ClusterDistrib.cpp(1119)'
09:59.932044-0,EXCP,2,p:processName=RegMngrCntxt,p:processName=ServerJobExecutorContext,Descr='src\rserver\src\ClusterDistrib.cpp(1119):
60c686dc-798f-4d17-aadb-a90156a16eb8: Сеанс отсутствует или удален
ID=7e9eae3e-db2a-4936-a29d-342e43dbc97e, File=D:\Jenkins\ci_builder\WindowsBuild2_XGCGGQ1A62EB\Platform\src\­rserver\src\ClusterDistrib.cpp(1119)'


При этом, если подключать базу в тонком клиенте, через ссылку которая идет через обратный прокси то все ок, проблем нет.
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. papami 55 31.07.22 21:54 Сейчас в теме
Ну похоже он не пропускает файлы *.js
Попробуйте просто в браузере ссылку на один из файлов написать. что вернет?
3. SnowSin 31.07.22 21:58 Сейчас в теме
(2)Попробовал /scripts/mod_main_loader.js?sysver=8.3.20.1914:521:324, что с обратной прокси, что без ответ одинаковый, текст скрипта.
Так то же возвращает текст /scripts/mod_main_loader.js
4. papami 55 01.08.22 09:13 Сейчас в теме
(3) Еще могу посоветовать сравнить текст с текстом прямого вызова.
5. alexfps79 05.08.22 14:47 Сейчас в теме
Добрый день! У меня тоже в ТЖ возникала ошибка (Первичный вызов сервиса пришел в пассивный сервис) - это связано с работой веб-сервиса??
6. user24 02.11.23 11:14 Сейчас в теме
Специально не поленился восстановить пароль на ресурс чтобы ответить.
Проблему с публикацией базы через Traefik решает параметр
https://doc.traefik.io/traefik/routing/entrypoints/#encodequerysemicolons

В настройках Entrypoints он выглядит примерно так
entryPoints:
  web:
    address: ":80"
    http:
      encodeQuerySemicolons: true
      redirections:
        entryPoint:
          to: websecure
          scheme: https
  websecure:
    address: ":443"
    http:
      encodeQuerySemicolons: true
Показать


Без указания данного параметра ошибка при публикации базы БП выглядит так:
https://ibb.co/WfdhZKD

После указания "encodeQuerySemicolons: true" ошибка устраняется.
7. aredcat 02.11.23 12:19 Сейчас в теме
(6)
web:
address: ":80"
http:
encodeQuerySemicolons: true
redirections:
entryPoint:
to: websecure
scheme: https
websecure:
address: ":443"
http:
encodeQuerySemicolons: true


Привет, у меня вот так

http:
  routers:
    1c-rtr:
      rule: "Host(`{{env "DOMAINNAME_CLOUD_SERVER"}}`)"
      entryPoints:
          - https
#      middlewares:
#        - chain-no-auth
      service: 1c-svc
      tls:
        certResolver: dns-cloudflare
#  middlewares:
#    pihole-rpi-add-admin:
#      addPrefix:
#        prefix: "/admin"
  services:
    1c-svc:
      loadBalancer:
        servers:
          - url: "http://172.18.30.12:80"
Показать


Добавляю как у тебя - ошибка не проходит

http:
  routers:
    1c-rtr:
      rule: "Host(`{{env "DOMAINNAME_CLOUD_SERVER"}}`)"
      entryPoints:
        web:
          address: ":80"
          http:
            encodeQuerySemicolons: true
            redirections:
              entryPoint:
                to: websecure
                scheme: https
        websecure:
          address: ":443"
          http:
             encodeQuerySemicolons: true
#      middlewares:
#        - chain-no-auth
      service: 1c-svc
      tls:
        certResolver: dns-cloudflare
#  middlewares:
#    pihole-rpi-add-admin:
#      addPrefix:
#        prefix: "/admin"
  services:
    1c-svc:
      loadBalancer:
        servers:
          - url: "http://172.18.30.12:80"
Показать
8. user24 02.11.23 15:09 Сейчас в теме
Конфигурация Entrypoints находится в другом месте (Static configuration)

https://doc.traefik.io/traefik/routing/entrypoints/
https://doc.traefik.io/traefik/routing/routers/


В Dynamic configuration можно только настроить через какую из Entrypoint'ов можно попасть в конкретный Router (Listens to Specific EntryPoints).

Вот два нужных конфига полностью
traefik.yml
entryPoints:
  web:
    address: ":80"
    http:
      encodeQuerySemicolons: true
      redirections:
        entryPoint:
          to: websecure
          scheme: https
  websecure:
    address: ":443"
    http:
      encodeQuerySemicolons: true
log:
  level: DEBUG
  filePath: "/var/log/traefik.log"
accessLog:
  filePath: "/var/log/access.log"
  bufferingSize: 100
api:
  dashboard: true
providers:
  file:
    directory: /etc/dyn_traefik/
    watch: true
metrics:
  prometheus:
    addEntryPointsLabels: true
    addRoutersLabels: true
    addServicesLabels: true
    manualRouting: true
serversTransport:
  insecureSkipVerify: true
Показать



testpub.example.com.yml
http:
  routers:
    router-testpub.example.com:
      tls: {}
      rule: "Host(`testpub.example.com`)"
      service: testpub.example.com
  services:
    testpub.example.com:
      loadBalancer:
        servers:
        - url: "http://192.168.1.82/"
tls:
  certificates:
    - certFile: /etc/letsencrypt/example.com/cert.pem
      keyFile: /etc/letsencrypt/example.com/key.pem
Показать
9. aredcat 03.11.23 11:33 Сейчас в теме
(8)
web:
address: ":80"
http:
encodeQuerySemicolons: true
redirections:
entryPoint:
to: websecure
scheme: https
websecure:
address: ":443"
http:
encodeQuerySemicolons: true


У меня через CLI настроен Traefik

    command: # CLI arguments
      - --global.checkNewVersion=false
      - --global.sendAnonymousUsage=false
      - --entryPoints.http.address=:80
      - --entryPoints.https.address=:443


Нужно ли менять тут http и https на web и websecure, так далее в конфиге? Я сам файл traefik.yml не использую, или сработает если я настрою entryPoints через http/https декларирование?
10. aredcat 03.11.23 11:50 Сейчас в теме
entryPoints:
web:
address: ":80"
http:
encodeQuerySemicolons: true
redirections:
entryPoint:
to: websecure
scheme: https
websecure:
address: ":443"
http:
encodeQuerySemicolons: true

В этом разделе websecure ведет на http ?
11. user24 03.11.23 14:15 Сейчас в теме
Через cli можно попробовать вот так добавить параметры:

    command: # CLI arguments
      - --global.checkNewVersion=false
      - --global.sendAnonymousUsage=false
      - --entryPoints.http.address=:80
      - --entryPoints.http.http.encodequerysemicolons=true   # <------------
      - --entryPoints.https.address=:443
      - --entryPoints.https.http.encodequerysemicolons=true  # <------------
Показать
12. aredcat 03.11.23 22:42 Сейчас в теме
(11)lда так и сделал, спасибо ,сработало

   command: # CLI arguments
      - --global.checkNewVersion=true
      - --global.sendAnonymousUsage=false
      - --entryPoints.web.address=:80
      - --entrypoints.web.http.redirections.entryPoint.to=websecure
      - --entrypoints.web.http.redirections.entryPoint.scheme=https
      - --entryPoints.websecure.address=:443
      - --entrypoints.websecure.http.encodequerysemicolons=true
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот