如果您尝试通过锯齿浏览器获取事务,您将在 Docker 容器中从 Nginx 收到“Bad Gateway 502”错误。
要解决 CORS 问题以通过 http 代理,您需要在 nginx.conf 文件中定义端口,以将 GET 请求发送到 Docker 容器中 nginx 的端口。
例如,如果您的 Sawtooth rest-api 连接到端口 8024,那么您可以配置 sawtooth-explorer-rest-api-proxy 以在 nginx.conf 文件中也使用端口 8024 来传递 http 代理。
这是从 docker-compose.yaml 文件中提取的 rest-api
docker-compose.yaml
rest-api:
image: hyperledger/sawtooth-rest-api:1.0
container_name: supply-rest-api
expose:
- 8008
ports:
- '8024:8008'
depends_on:
- validator
entrypoint: |
sawtooth-rest-api -vv
--connect tcp://validator:4004
--bind rest-api:8008
锯齿浏览器在 docker 文件夹中有相关的 nginx 配置。
nginx.conf
server {
listen 8090;
add_header Pragma no-cache always;
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, OPTIONS';
add_header Access-Control-Allow-Headers 'X-XSRF-TOKEN,DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
location / {
#proxy_pass http://localhost:8008;
proxy_pass http://192.168.3.10:8024;
proxy_read_timeout 5000;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}