我已经设置了sentry in docker。
使用docker run -d -i -t -p 8080:9000 --restart=always --name pb-sentry -e SENTRY_SECRET_KEY='key' --link sentry-redis:redis --link sentry-postgres:postgres --link sentry-smtp:smtp sentry
运行它。它适用于8080端口ok。
但我需要通过HTTPS提供它。怎么样?
答案 0 :(得分:2)
您可以使用代理服务器,例如 nginx ,并将443
(https)转发至8080
- 如果哨兵不直接支持 - 您甚至可以使用自己的ssl使用nginx的证书很容易并提供更高的安全性。
如果它支持直接检查他们的文档。
答案 1 :(得分:0)
我通过设置UWSGI的HTTPS支持来完成这项工作:https://uwsgi-docs.readthedocs.io/en/latest/HTTPS.html
我将Sentry配置为与sentry.conf.py
文件中的以下内容一起使用。
SENTRY_WEB_HOST = '0.0.0.0'
SENTRY_WEB_PORT = '9000,sentry.crt,sentry.key'
SENTRY_WEB_OPTIONS = {
'protocol': 'https'
}
答案 2 :(得分:0)
我通过使用 valian/docker-nginx-auto-ssl
docker 映像在 docker-compose 中添加 nginx-ssl 服务来配置哨兵 docker-compose 文件。
我也修改了nginx服务:
...
nginx:
<<: *restart_policy
# ports:
# - "$SENTRY_BIND:80/tcp"
image: "nginx:1.21.0-alpine"
volumes:
- type: bind
read_only: true
source: ./nginx
target: /etc/nginx
depends_on:
- web
- relay
nginx-ssl:
<<: *restart_policy
image: valian/docker-nginx-auto-ssl
# restart: on-failure
ports:
- 80:80
- 443:443
depends_on:
- nginx
volumes:
- ssl_data:/etc/resty-auto-ssl
environment:
ALLOWED_DOMAINS: 'sentry.example.com'
SITES: 'sentry.example.com=nginx:80'
...
volumes:
...
ssl_data:
...