jsonrpc 服务 nginx ssl 配置

jsonrpc 服务 nginx ssl 配置

我在服务器的 8082 端口上运行了一个 python jsonrpc 服务。

我想通过 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);

然后我就无法使用它了……而且从服务日志来看,这次请求从未到达服务。

任何关于如何解决这个问题的想法都将非常宝贵。
谢谢
(注:密钥是自签名证书,如果它改变了一些东西)


端口 80 默认 nginx 设置是

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;
    }
}

443端口nginx设置如下:

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;
    }
}

该网站由 apache 在 81 端口上提供服务:

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

相关内容