mirror of
https://github.com/bigchaindb/bigchaindb.git
synced 2024-10-13 13:34:05 +00:00

Problem The current production deployment template uses 3scale to ensure that POST requests to the network (from anyone) only get through if they come from a client with an account (app_id and app_key). A private network wants to launch so that all HTTP requests (POST and GET) sent to the nodes in the network get be dropped unless they come from a small set of known (and unchanging) clients/sources. They don't need 3scale. They will want a modified version of the production deployment template. Solution Generate a special HTTP header and share it with all the known clients/sources. Have a single NGINX in each node which checks for that HTTP header value. If it's present, let the request pass through to the network. (HTTP headers are encrypted if HTTPS is used.) Are there other simpler or better options?
13 lines
378 B
Docker
13 lines
378 B
Docker
FROM nginx:stable
|
|
LABEL maintainer "dev@bigchaindb.com"
|
|
WORKDIR /
|
|
RUN apt-get update \
|
|
&& apt-get -y upgrade \
|
|
&& apt-get autoremove \
|
|
&& apt-get clean
|
|
COPY nginx.conf.threescale.template /etc/nginx/nginx-threescale.conf
|
|
COPY nginx.conf.template /etc/nginx/nginx.conf
|
|
COPY nginx_entrypoint.bash /
|
|
EXPOSE 80 443 27017 9986 46656
|
|
ENTRYPOINT ["/nginx_entrypoint.bash"]
|