配置NGINX以代理HTTPS请求到服务器HTTP

b4lqfgs4  于 2022-12-22  发布在  Nginx
关注(0)|答案(1)|浏览(252)

我特灵使用POSTGRest API来处理Postgrsql服务器中的一些查询,但API不接受HTTPS请求,如API文档中所述:
PostgREST旨在做好一件事:添加一个HTTP接口到PostgreSQL数据库。2为了保持代码的简洁和集中,我们没有实现HTTPS。3使用一个反向代理,比如NGINX来添加这个接口,下面是如何实现的。
我们的nginx服务器能够处理HTTPS请求,但我无法找到一个nginx配置示例,可以代理这些HTTPS请求并将其作为HTTP请求传递给POSTGRest API,以便从上述API获得json文件。
这里我已经尝试到目前为止:

server {
        listen 443 ssl http2;

        location = /api {
            return 301 http://$host/$request_uri;
        }
} ```

Any help would be amazing!
ct2axkht

ct2axkht1#

在文档中的硬化PostgREST部分有一个关于如何使用PostgREST和Nginx的最小示例。您可以通过将该位置部分添加到配置为HTTPS的服务器来将其适配为HTTPS,如下所示:

http {
  
  # ...

  # upstream configuration
  upstream postgrest {
    server localhost:3000;
  }

  # ...

  server {

    listen 443 ssl http2;

    # Other configuration for HTTPS (certs, etc.)
    # ...

    # expose to the outside world
    location /api/ {
      default_type  application/json;
      proxy_hide_header Content-Location;
      add_header Content-Location  /api/$upstream_http_content_location;
      proxy_set_header  Connection "";
      proxy_http_version 1.1;
      proxy_pass http://postgrest/;
    }

    # ...

  }

}

为清楚起见,带有#...的注解引用了配置中可能已经存在的任何其他代码。

相关问题