【问题标题】:Native Nginx reverse proxy to Docker container with Letsencrypt使用 Letsencrypt 的本地 Nginx 反向代理到 Docker 容器
【发布时间】:2019-01-29 20:04:13
【问题描述】:

我有一个安装了 nginx 并配置为反向代理的 ubuntu 18.0.4 lts 机器:

/etc/nginx/sites-enabled/default:

server {
    server_name example.com;
    location / {
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header   Host             $host;

        proxy_pass http://0.0.0.0:3000;

}

我有一个网站在 docker 容器中运行,侦听端口 3000。使用此配置,如果我浏览到 http://example.com,我会看到该网站。

然后我使用他们网站上的标准安装方式安装了 LetsEncypt,然后我运行 sudo certbot --nginx 并按照说明为 mydomain.com 启用 https。

现在我的etc/nginx/sites-enabled/default 看起来像这样,我无法在https://example.comhttp://example.com 上加载网站:

server {
    server_name example.com;
    location / {
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header   Host             $host;

        proxy_pass http://0.0.0.0:3000;

   }



listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

有什么想法吗?

【问题讨论】:

  • /var/log/nginx/ 目录中有任何日志吗?
  • access.log 和 error.log 是空的(我安装后清除它们让我们加密)
  • 您是否尝试过https://example.com,因为似乎没有来自端口 80 (http) -> 443 (https) 的自动重定向
  • @Bernhard 是的,我已经更新了我的问题。运行 certbot 后,我​​无法通过 http 或 https 访问该站点
  • 你能从root用户运行nginx -t吗?

标签: docker nginx reverse-proxy lets-encrypt proxypass


【解决方案1】:

我想通了。问题不在于我的 nginx/letsencrypt 配置,而是提供商级别的网络问题(天蓝色)。

我注意到网络安全组只允许端口 80 上的流量。解决方案是为 443 添加规则。

添加此规则后,现在一切正常。

【讨论】:

    猜你喜欢
    • 2018-12-12
    • 2021-05-04
    • 2018-03-20
    • 2020-09-10
    • 2021-09-30
    • 1970-01-01
    • 1970-01-01
    • 2019-05-04
    • 1970-01-01
    相关资源
    最近更新 更多