modx socket.io?

Всем привет. Есть такая интересная штучка, socket.io, для создание очень интересных проектов. Кто-то тут смог ее подружить с modx? Подключить внутри нее апи модх и работать с ним это не проблема. Сложности начинаются когда дело доходит до авторизаций. Сокет сервер не понимает кто перед ним. И если в вебе я авторизовался как admin, то внутри сокета echo $modx->user->get('id'); дает 0. Кто-то сталкивался с подобным? Боролся? Может быть я что-то не так делаю…
Николай
23 марта 2019, 17:13
modx.pro
2
1 573
0

Комментарии: 32

Fi1osof
24 марта 2019, 10:13
+2
Николай, я не знаю как именно у вас реализована работа MODX-API внутри сокет-сервера, то надо учитывать несколько моментов:

1. По умолчанию может не быть включена передача кукисов в заголовках, или могут быть проблемы кросс-доменных запросов (CORS). Убедитесь, что в сокет-запросах заголовки передаются, а главное, передается кука сессии.


2. На стороне сокет-сервера, где вы подключаете MODX-API, вам надо поймать куку PHPSESSID и скормить в инициализацию $modx. Так же убедитесь, что у вас эта кука там в наличии, а главное, инициализация $modx идет с контекстом, в котором пользователь авторизован.

3. У вас сокет-соединение не понимает авторизацию вообще всегда, или после авторизации если перезагрузить страницу, то все ОК, а просто проблема именно после авторизации без перезагрузки страницы? Просто это важный момент, так как сокет-соединение не отсылает кукисы в каждом запросе. Кукисы отправляются только при установке сокет-соединяния. То есть после авторизации и на логаут надо сокет-соединение реконнектить. Надо смотреть в сторону socketio.close(false, false);

В общем, подробней распишите что и как получилось сделать, а на какой стадии какие затыки. Наверняка разобраться можно будет, но здесь не все так просто и парой строчек кода не отделаться.
    Николай
    24 марта 2019, 12:45
    0
    Кажется я промахнулся, и вместо ответить вам, просто отписал в комментарий
      Fi1osof
      24 марта 2019, 13:08
      0
      Велика вероятность в том, что у вас разные хосты. Домен один, а порты разные. Сам сайт на 80-ом порту, а запросы идут на порт 2025. Скорее всего это проблема именно в этом. Я делаю так: создаю на уровне nginx подмену для адреса /api/ и все запросы сокета летят туда, а там уже проксируется на сокет-порт. Пример конфига:
      location /api/ {
              
          
              proxy_http_version 1.1;
              proxy_set_header Upgrade $http_upgrade;
              proxy_set_header Connection "upgrade";
              proxy_read_timeout 36000;
      
              rewrite ^/api/(.*) /$1 break;
              proxy_pass http://localhost:4000;
              proxy_redirect     off;
              proxy_set_header   Host $host;
      
              proxy_set_header X-Real-IP $remote_addr ;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      
          }
      Попробуйте для начала без конфига настроить сокет-запросы на тот же домен, просто посмотрите будут ли передаваться кукисы в запросах или нет. Ответа корретного не будет, но хотя бы в запросах кукисы должны появиться. Если появятся, то уже проксирование настраивать. А пока куки не будут передаваться, то и ловить на стороне сервера нечего.
        Николай
        24 марта 2019, 13:33
        0
        На JS с этим конфигом подключаться так?

        <script>
              var socket = io(`/api/`);
        Если в ngnix добавляю дерективу что вы выше скинули (порт только там меняю на 2025, на котором крутится вебсокет) то получаю бесконечные аякс запросы:

          Fi1osof
          24 марта 2019, 14:05
          0
          то получаю бесконечные аякс запросы:
          Зато в них видно, что кукисы летят. Осталось только сервер нормально настроить.

          P.S. я ушел к Морфею, так что отвечу только через несколько часов, если еще будут комменты.
            Fi1osof
            24 марта 2019, 23:31
            0
            Вы в личку пришлите доступ к вашей странице, а то там по логину-паролю судя по всему доступ, я не вижу самих запросов. Вообще у вас JS должен идти на порт 2025 (и там нормально доступен), а на /api/ должны только ws-запросы идти. Но даже если он и скрипты пытается получить по адресу /api/, вам просто надо запустить в обычном режиме и посмотреть по какому адресу эти скрипты получаются, а потом настроить и для них проксирование. Правила проксирования можно настроить отдельно для разных адресов, типов запросов/файлов и т.п.
            В моем конфиге полезного больше особо ничего нет, но вот еще кусок, где остальные запросы уходят на основную часть сайта:
            location / {
            
                    proxy_http_version 1.1;
                    proxy_set_header Upgrade $http_upgrade;
                    proxy_set_header Connection "upgrade";
                    proxy_read_timeout 36000;
            
                    proxy_set_header Host $server_name ;
                    proxy_set_header X-Real-IP $remote_addr ;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_set_header X-Real-IP 127.0.0.1 ;
             
            
                    location ~ ^/.+ {
             
            
                        if (!-e $request_filename) {
                            proxy_pass http://localhost:3000;
                        }
             
                    }
                    
                    proxy_pass http://localhost:3000;
            
                }
              Николай
              25 июня 2019, 15:05
              0
              Добрый день. В прошлый раз я забросил эту идею, не получилось. Сейчас для себя я решил все же добиться нормальной работы.

              К чему я смог прийти:
              Если я делаю соединение напрямую, var socket = io(«site.ru:2027»); — соединение устанавливается, без кукисов.
              Если я пробую var socket = io("/api"'); — соединение не устанавливается, но кукисы отправляются.
              Само проксирование вроде настроено нормально. Если перейти в браузере по site.ru/api/ — Мне сокет сервер говорит {«code»:0,«message»:«Transport unknown»}.

              Но из JS он никак не хочет устанавливать соединение… Подозреваю из JS нужно не просто var socket = io('/api/'), а как то по другому. У меня происходит бесконечный коннект на Request URL: site.ru/socket.io/?EIO=3&transport=polling&t=MkEWHBy
                Николай
                25 июня 2019, 15:12
                0
                Пока печатал сообщение, смог наконец подружить JS и сокет сервер:

                const socket = io('http://site.ru/ws/', {
                  path: '/api'
                });
                Прошу помочь с пунктом 2:

                2. На стороне сокет-сервера, где вы подключаете MODX-API, вам надо поймать куку PHPSESSID и скормить в инициализацию $modx. Так же убедитесь, что у вас эта кука там в наличии, а главное, инициализация $modx идет с контекстом, в котором пользователь авторизован.
                Как это скормить MODX? Апи я подключил

                $io->on('connection', function($socket)use($io){
                
                		require_once '../../config.core.php';
                		define('MODX_API_MODE', true);
                		require_once MODX_CORE_PATH.'model/modx/modx.class.php';
                
                		$modx = new modX();
                		$modx->initialize('web');
                		$modx->getService('error','error.modError', '', '');
                
                		echo $modx->user->get('id');
                		
                		unset($modx);
                В консоле 0, хотя на сайте я авторизован…
                  Николай
                  25 июня 2019, 15:21
                  0
                  Может я куда-то не туда смотрю… На первый запрос куки уходят точно:

                  А вот на сокет сервере $_SESSION $_COOKIE пустые…
                    Fi1osof
                    25 июня 2019, 15:45
                    0
                    Вы ws-запросы от браузера до MODX проксируете на уровне nginx? Может вы в прокси не передаете реальный хост сайта? В своем файле допишите $modx->log(1, print_r($_SERVER, 1), «FILE»); и потом после запроса в логах MODX в админке посмотрите что у вас там прилетает. Правильные ли SERVER_NAME, HTTP_HOST, HTTP_ORIGIN и т.п. прилетают? А то велика вероятность что в запросе-то у вас кукисы передаются нормально, но до MODX прилетает другой хост и он не принимает куки.
                      Николай
                      25 июня 2019, 15:52
                      0
                      Да, nginx:

                      location /api/ {
                              proxy_http_version 1.1;
                              proxy_set_header Upgrade $http_upgrade;
                              proxy_set_header Connection "upgrade";
                              proxy_read_timeout 36000;
                      
                              rewrite ^/api/(.*) /$1 break;
                              proxy_pass http://site.com:4000;
                              proxy_redirect     off;
                              proxy_set_header   Host $host;
                      
                              proxy_set_header X-Real-IP $remote_addr ;
                              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                      
                          }
                      Ваш пример взял.
                        Fi1osof
                        25 июня 2019, 16:05
                        0
                        ОК. Но все же, дописываем в файл $modx->log(1, print_r($_SERVER, 1), «FILE»); и смотрим логи, какие заголовки прилетают.
                        Полезно еще дописать $modx->log(1, print_r($_COOKIE, 1), «FILE»); чтобы и куки посмотреть сразу.
                          Николай
                          25 июня 2019, 16:09
                          0
                          «FILE» — это путь до файла? Если флаг, то вот что в логах для:

                          $modx->log(1, print_r($_SERVER, 1), «FILE»);
                          $modx->log(1, print_r($_COOKIE, 1), «FILE»);

                          [2019-06-25 13:07:54] (ERROR @ /var/www/site.com/core/socket/server.php: 27) Array
                          (
                          [TERM] => xterm
                          [LS_COLORS] => rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:
                          [PATH] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
                          [LANG] => en_US.UTF-8
                          [HOME] => /root
                          [LANGUAGE] => en_US:en
                          [SHELL] => /bin/bash
                          [MAIL] => /var/mail/www-data
                          [LOGNAME] => www-data
                          [USER] => www-data
                          [USERNAME] => www-data
                          [SUDO_COMMAND] => /usr/bin/php server.php start
                          [SUDO_USER] => root
                          [SUDO_UID] => 0
                          [SUDO_GID] => 0
                          [PHP_SELF] => server.php
                          [SCRIPT_NAME] => server.php
                          [SCRIPT_FILENAME] => server.php
                          [PATH_TRANSLATED] => server.php
                          [DOCUMENT_ROOT] =>
                          [REQUEST_TIME_FLOAT] => 1561468072.7351
                          [REQUEST_TIME] => 1561468072
                          [argv] => Array
                          (
                          [0] => server.php
                          [1] => start
                          )

                          [argc] => 2
                          [HTTP_USER_AGENT] =>
                          [HTTP_REFERER] =>
                          [QUERY_STRING] =>
                          )

                          [2019-06-25 13:07:54] (ERROR @ /var/www/site.com/core/socket/server.php: 28) Array
                          (
                          )

                            Fi1osof
                            25 июня 2019, 16:15
                            0
                            Да, «FILE» — это флаг. А логи у вас странные. Такое ощущение, что у вас php выполняется консольно, а не как веб-служба. И соответственно никакие заголовки вам туда нужные не передаются. Поэтому у вас и массив кукисов пустой.
                        Fi1osof
                        25 июня 2019, 16:12
                        0
                        И еще момент: Если указываете proxy_pass site.com:4000;, то в /etc/hosts пропишите 127.0.0.1 site.com, чтобы при проксировании точно сразу на локальный хост запрос летел, а не через внешний ip. Это тоже логику имеет. В моем-то примере не на site.com проксирование прописано, а на локалхост.
                        proxy_pass localhost:4000;
                          Николай
                          25 июня 2019, 16:14
                          0
                          Я домен туда вписал от безысходности, т.к. не работало.Вернул proxy_pass localhost:4000, все то же самое
                            Fi1osof
                            25 июня 2019, 16:16
                            0
                            Так долго будем разбираться. Шлите в личку ssh и домен сайта, буду посмотреть. Иначе шаманство получается.
                      Николай
                      25 июня 2019, 15:53
                      0
                      Все что в $_SERVER:
                      Array
                      (
                          [TERM] => xterm
                          [LS_COLORS] => rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:
                          [PATH] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
                          [LANG] => en_US.UTF-8
                          [HOME] => /root
                          [LANGUAGE] => en_US:en
                          [SHELL] => /bin/bash
                          [MAIL] => /var/mail/www-data
                          [LOGNAME] => www-data
                          [USER] => www-data
                          [USERNAME] => www-data
                          [SUDO_COMMAND] => /usr/bin/php server.php start
                          [SUDO_USER] => root
                          [SUDO_UID] => 0
                          [SUDO_GID] => 0
                          [PHP_SELF] => server.php
                          [SCRIPT_NAME] => server.php
                          [SCRIPT_FILENAME] => server.php
                          [PATH_TRANSLATED] => server.php
                          [DOCUMENT_ROOT] => 
                          [REQUEST_TIME_FLOAT] => 1561467048.3697
                          [REQUEST_TIME] => 1561467048
                          [argv] => Array
                              (
                                  [0] => server.php
                                  [1] => start
                              )
                      
                          [argc] => 2
                          [HTTP_USER_AGENT] => 
                          [HTTP_REFERER] => 
                          [QUERY_STRING] => 
                      )
                        Fi1osof
                        25 июня 2019, 16:07
                        0
                        А где хост? У меня вот так:
                        (
                            [USER] => www-data
                            [HOME] => /var/www
                            [FCGI_ROLE] => RESPONDER
                            [SCRIPT_FILENAME] => /var/www/vhosts/www.site.ru/manager/components/console/connectors/console.php
                            [QUERY_STRING] => 
                            [REQUEST_METHOD] => POST
                            [CONTENT_TYPE] => application/x-www-form-urlencoded; charset=UTF-8
                            [CONTENT_LENGTH] => 265
                            [SCRIPT_NAME] => /manager/components/console/connectors/console.php
                            [REQUEST_URI] => /manager/components/console/connectors/console.php
                            [DOCUMENT_URI] => /manager/components/console/connectors/console.php
                            [DOCUMENT_ROOT] => /var/www/vhosts/www.site.ru
                            [SERVER_PROTOCOL] => HTTP/1.1
                            [GATEWAY_INTERFACE] => CGI/1.1
                            [SERVER_SOFTWARE] => nginx/1.4.6
                            [REMOTE_ADDR] => xxx
                            [REMOTE_PORT] => 46986
                            [SERVER_ADDR] => xxx
                            [SERVER_PORT] => 443
                            [SERVER_NAME] => www.site.ru
                            [HTTPS] => on
                            [REDIRECT_STATUS] => 200
                            [HTTP_HOST] => www.site.ru
                            [HTTP_CONNECTION] => keep-alive
                            [HTTP_CONTENT_LENGTH] => 265
                            [HTTP_ORIGIN] => https://www.site.ru
                            [HTTP_X_REQUESTED_WITH] => XMLHttpRequest
                            [HTTP_MODAUTH] => xxx
                            [HTTP_USER_AGENT] => xxx
                            [HTTP_CONTENT_TYPE] => application/x-www-form-urlencoded; charset=UTF-8
                            [HTTP_ACCEPT] => */*
                            [HTTP_REFERER] => https://www.site.ru/manager/?a=index&namespace=console
                            [HTTP_ACCEPT_ENCODING] => gzip, deflate, br
                            [HTTP_ACCEPT_LANGUAGE] => ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7,fr;q=0.6,it;q=0.5,cy;q=0.4,la;q=0.3,zh-CN;q=0.2,zh;q=0.1
                            [HTTP_COOKIE] => xxxxxxxxxxxxxxxxxx
                            [PHP_SELF] => /manager/components/console/connectors/console.php
                            [REQUEST_TIME_FLOAT] => 1561467977.3899
                            [REQUEST_TIME] => 1561467977
                        )
                          Николай
                          25 июня 2019, 16:12
                          0
                          Вот, у меня почему-то нет многих директив… Конфиг nginx простейший:

                          pastebin.com/rQi0drjw
                            Fi1osof
                            25 июня 2019, 16:17
                            0
                            У вас там конкретно site.com прописано, или все-таки это замена и там реальный домен прописан?
                            Николай
                            25 июня 2019, 20:11
                            0
                            Там реальный домен. Просто стараюсь не светить лишний раз домены.
                            Fi1osof
                            25 июня 2019, 16:20
                            0
                            И почему проксирование на proxy_pass site.com:4000; идет? Не думаю, что у вас на порту 4000 MODX крутится. Вероятней всего у вас там JS-сервис, а оттуда вы пытаетесь вызывать php средствами js (проксируя запрос). Так?
                            Николай
                            25 июня 2019, 20:15
                            0
                            У меня сокет сервер крутится на 4000 порту:
                            pastebin.com/pJW87fkd
                            На JS части я подключаюсь к /api/

                            const socket = io('http://site.ru/ws/', {
                            path: '/api'
                            });

                            А конфиг nginx с проксей на этот сокет сервер: pastebin.com/rQi0drjw

                            Вроде бы все должно работать, но что-то не то…
                            Fi1osof
                            25 июня 2019, 21:07
                            0
                            Что-то очень сомневаюсь, что у вас это должно работать. На сколько я понимаю, последовательность соединений такая:
                            Браузер (JS) -> nginx -> js на порту 4000 -> MODX. И вы ожидаете, что js просто так возьмет и пробросит кукисы до MODX? Просто так он не будет ничего пробрасывать.

                            P.S. на каждом этапе проброса соединения дебажьте и смотрите, чтобы были кукисы и отправлялись дальше.
                            Николай
                            26 июня 2019, 10:11
                            0
                            Теряется кукауже на сокет сервере.

                            Т.е, рендерится страница MODX, где я залогинен. С этой страницы я подключаюсь к /api/, При всех XHR запросах (всех четырех) Cookie: PHPSESSID=7iur19vftnprl05jt4m97kvs13 передается. А до сервера не доходит. Создается WS соединение, на сервере в консоле куки пустые…
                            Николай
                            26 июня 2019, 11:20
                            0
                            Пошел дальше, пошел смотреть логи. Насмотрел что

                            print_r($socket->request->headers);

                            содержит куку.

                            Array
                            (
                            [connection] => upgrade
                            [host] => site.com
                            [x-real-ip] => 5.189.120.126
                            [x-forwarded-for] => 5.189.120.126
                            [accept] => */*
                            [user-agent] => Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36
                            [referer] => site.com/page.html
                            [accept-encoding] => gzip, deflate
                            [accept-language] => ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7
                            [cookie] => _ga=GA1.2.63840410.1551895697; _ym_uid=1551895697718358359; _ym_d=1551895697; PHPSESSID=h6k94gg7gbu1b7317maq4loon7
                            )
                            Fi1osof
                            27 июня 2019, 12:41
                            0
                            Без ssh я больше ничем не помогу.
              Николай
              24 марта 2019, 13:39
              0
              На том же 80 порту сокет сервер не поднимается (что логично, порт занят веб сервером)
                Fi1osof
                24 марта 2019, 14:03
                0
                Так не надо поднимать его на 80-ом. На 80-ом у вас сайт крутится, а сокет-сервер крутится на своем 2025-ом. Запросы у вас должны идти на /api/ вашего сайта, а не сокет-сервера. Просто на уровне сервера вы запросы на /api/ которые идут проксируете на 2025-ый порт. Для фронта это все неведомо, фронт ничего не знает про то, что и как там на сервере. Но отправляя на /api/ текущего домена, передаются и кукисы, потому что это тот же самый домен, а не другой. На уровне nginx вы /api/ запросы проксируете на 2025, вместе с кукисами они улетают, не доходя напрямую на сайт. А вот на уровне сокет-сервера, получив таким образом запрос с кукисами, вы уже должны получить $modx с инициализацей.
                  Николай
                  24 марта 2019, 14:20
                  0
                  Поделитесь пожалуйста полным конфигом ngnix. У меня видимо там что-то не то совсем. Проксирование вроде бы работает, site.ru/api/ работает, но жс бесконечно подключается, подключается, подключается…
          Николай
          24 марта 2019, 12:44
          0
          Вот я как раз в сторону кукисов смотрел, но нагуглить что-то не получилось. Да, кукисы не передаются:



          Как их передать, и как скормить ее modx? В самом server.php я просто подключаю modx:
          require_once '../../config.core.php';
                require_once MODX_CORE_PATH.'model/modx/modx.class.php';
                $modx = new modX();
                $modx->initialize('web');
                $modx->getService('error','error.modError', '', '');
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            32