【问题标题】:How to use nginx to serve a web app on a Docker container如何使用 nginx 在 Docker 容器上提供 Web 应用程序
【发布时间】:2019-09-17 00:02:25
【问题描述】:

我正在运行一个运行 Ubuntu 18.04 的网络服务器,它目前正在为一个网站和几个博客提供服务。我还想在几个 Docker 容器上设置一个 Ruby on Rails Web 应用程序(这样我就可以部署到另一个非 Linux 服务器)。

我的服务器目前正在使用 nginx 为其托管的网站提供服务。如何使用相同的 nginx 安装来为 Docker 容器中的 Rails 应用程序提供服务?我是否只是在容器上公开端口 3000 并设置 nginx 来监听它,使用 Rails 应用程序的正常 nginx 设置?或者还有什么我需要做的吗?我不想将 nginx 移动到容器中 - 我只是想使用我当前的 nginx 来为在容器中运行的应用程序提供服务。

【问题讨论】:

  • 你可以这个github.com/jwilder/nginx-proxy。它将为您处理容器的其余部分,而无需管理配置
  • 如果不将 nginx 移动到 docker,您将不得不在您的 nginx conf 中发布容器的端口和 proxy_pass localhost:port - 建议您确保阻止防火墙上的各个端口,以便您可以只能通过代理访问它们。将 nginx 移动到 docker 并实现用户定义的 docker 网络可以防止意外暴露这样的服务。

标签: ruby-on-rails docker nginx


【解决方案1】:

您可以在/etc/nginx/conf.d/ 中创建配置文件,内容为:

server {
    listen       *:80;
    server_name  <Your domain name>;

    location / {
        proxy_pass http://localhost:3000/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

然后配置 域名 将您的 IP 地址指向 DNS 提供商。 也许它可以帮助你

【讨论】:

    猜你喜欢
    • 2021-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-22
    • 2016-06-14
    • 2015-12-05
    相关资源
    最近更新 更多