代码之家  ›  专栏  ›  技术社区  ›  conv3d

在哪里放置nginx。docker容器中的conf文件

  •  0
  • conv3d  · 技术社区  · 7 年前

    我有一个flask应用程序在docker容器中的AWS ec2中运行,我有延迟问题。我认为这是因为在容器中,localhost路由到两个ipv4 127.0.0.1 ipv6的 ::1 (基于其他一些SO帖子)。我发现 this blog post 这正好解决了这个问题。但在博客中,他使用了nginx,这是我以前从未使用过的。他有一个nginx配置文件:

    location / { try_files $uri @project; }
    location @project {
        include uwsgi_params;
        uwsgi_pass unix:/tmp/uwsgi.sock;
    }
    

    我不知道如何才能把它放进容器里,这样它才能正确阅读。我在某个地方读到它位于/etc/nginx中,但是我该如何编辑dockerfile以在其中包含这个conf呢?

    这就是他建议的Dockerfile。排队吗 ADD nginx /etc/nginx 文件复制到哪里?他只是没有给文件一个扩展名?

    FROM ubuntu:14.04
    
    RUN apt-get update && apt-get install -y build-essential nginx python3.4 python3.4-dev
    RUN easy_install3 pip
    
    WORKDIR /project
    
    ADD requirements.txt /project/requirements.txt
    RUN pip install -r requirements.txt
    
    ADD . /project
    
    ADD nginx /etc/nginx
    
    CMD uwsgi -s /tmp/uwsgi.sock -w project:app --chown-socket=www-data:www-data --enable-threads & \
        nginx -g 'daemon off;'
    
    0 回复  |  直到 7 年前
        1
  •  2
  •   Misantorp coneybones    7 年前

    是的,他正在添加文件 nginx 到容器文件系统位置 /etc/nginx/

    我个人会给文件起个名字 nginx.conf 因为根据 nginx 文档

    默认情况下,配置文件名为nginx。确认并放置在 目录/usr/local/nginx/conf、/etc/nginx或 /usr/local/etc/nginx。

    此外,我建议使用 COPY 代替 ADD 根据 Best practices for writing Dockerfiles

    对于不需要添加tar的其他项目(文件、目录) 自动提取功能,您应该始终使用复制。

    要使其正常工作,您需要安装 nginx 在你放烧瓶的容器上。