Назад | Перейти на главную страницу

Конфигурация ssl службы jsonrpc для nginx

У меня есть служба python jsonrpc, работающая на сервере на порту 8082.

Я хочу достичь этого с помощью php jsonRPCClient. (и должно быть https)
Мой сервер nginx выглядит так:

server {
    listen   443;
    server_name  service.mydomain.com;
    ssl                  on;
    ssl_certificate      /path/to/crt/domain.crt;
    ssl_certificate_key  /path/to/crt/domain.key;
    keepalive_timeout    70;

    access_log  /var/log/nginx/domain.access.log;
    error_log  /var/log/nginx/domain.error.log;

    location / {
      proxy_set_header   Host             $host;
      proxy_set_header   X-Real-IP        $remote_addr;
      proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

      proxy_pass         http://127.0.0.1:8082;
    }
}


Когда я набираю в браузере: https://service.mydomain.com тогда я вижу правильный результат от обслуживания.

Но если я назову это с помощью php-кода, например:

$rpc = new jsonRPCClient("https://service.mydomain.com");
return $rpc->create_client($client_id);

Тогда я не могу с ним работать ... и из журнала службы видно, что на этот раз запрос никогда не доходит до службы.

Любые идеи о том, как решить эту проблему, были бы очень ценными.
Спасибо
(ps: ключи - это самоподписанные сертификаты, если что-то меняет)


Настройка nginx по умолчанию для порта 80:

server {
    listen   80 default;
    server_name  www.mydomain.com;

    access_log  /var/log/nginx/localhost.access.log;

    location / {
      proxy_pass         http://127.0.0.1:81;
      proxy_redirect     off;

      proxy_set_header   Host             $host;
      proxy_set_header   X-Real-IP        $remote_addr;
      proxy_set_header   X-Forwarded-Port 80;
      proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
      proxy_max_temp_file_size 0;
    }
}

И настройка nginx для 443 портов:

server {
    listen   443;
    server_name  www.mydomain.com;
    ssl                  on;
    ssl_certificate      /path/to/crt/domain.crt;
    ssl_certificate_key  /path/to/crt/domain.key;
    keepalive_timeout    70;

    access_log  /var/log/nginx/domain.access.log;
    error_log  /var/log/nginx/domain.error.log;

    location / {
      proxy_set_header   Host             $host;
      proxy_set_header   X-Real-IP        $remote_addr;
      proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

      proxy_pass         http://127.0.0.1:81;
    }
}

Веб-сайт обслуживается через порт 81 apache:

<VirtualHost *:81>
   ServerName www.mydomain.com
   DocumentRoot "/var/www/domain"
   DirectoryIndex index.php
   <Directory "/var/www/domain>
       AllowOverride All
       Allow From All
   </Directory>
</VirtualHost>