首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从本地主机访问时出错: NGINX uWSGI

从本地主机访问时出错: NGINX uWSGI
EN

Stack Overflow用户
提问于 2016-07-24 16:40:17
回答 1查看 805关注 0票数 2

我试图用nginx (在容器中运行)配置一个docker示例,在uwsgi中运行python应用程序的3个容器。

当通过端口ip为容器尝试nginx时,应用程序是可以访问的,没有任何问题;但是,当尝试使用localhost:9999访问主机url (nginx使用端口9999)访问它时:9999我可以访问nginx页面,但是任何应用url或/admin/ uri都会出现404错误。

我已经经历了无数的论坛和堆叠溢出的答案,没有任何运气,谁能帮我解决这个问题吗?

兹附上更多资料如下:

我的停靠者撰写文件如下所示:

代码语言:javascript
复制
version:  '2'
services:
  nginxlb:
    build:  ./nginx
    ports:
      - "9999:80"
    links:
      - my-app1:my-app1
      - my-app2:my-app2
      - my-app3:my-app3
    volumes:
      - ./logs/nginx/:/opt/my-logs/nginx/
  my-app1:
    build: ./my
    expose:
      - 8080
      - 8081
    volumes:
      - ./logs/node1:/opt/my-logs/node1/
  my-app2:
    build: ./my
    volumes:
      - ./logs/node2/:/opt/my-logs/node2/
    expose:
      - 8080
      - 8081
  my-app3:
    build: ./my
    volumes:
      - ./logs/node3:/opt/my-logs/node3
    expose:
      - 8080
      - 8081

用于nginx的启用站点的conf如下所示:

代码语言:javascript
复制
upstream node-app {
      least_conn;
      server my-app1:8080;
      server my-app2:8080;
      server my-app3:8080;
}

server {
      listen 80 default;
      server_name _;
      location / {
        proxy_pass http://node-app;
        include /etc/nginx/uwsgi_params;
      }
}

编辑这是NGINX的my Docker文件,我还没有对默认的nginx.conf文件做任何更改

代码语言:javascript
复制
From nginx

MAINTAINER  DevOps

# Update the container
RUN apt-get update

# Create directories and set working directory
RUN mkdir /opt/myapp/
RUN mkdir /opt/myapp/django-static/
RUN mkdir /opt/myapp/django-media/
RUN mkdir /opt/myapp/webroot/
run mkdir -p /opt/myapp-logs/nginx/
WORKDIR /opt/myapp/

# Copy configs and code to Container
ADD config/nginx.conf /etc/nginx/nginx.conf
ADD config/nginx-site.conf /etc/nginx/sites-enabled/nginx.conf
ADD config/uwsgi_params /etc/nginx/uwsgi_params

EXPOSE 80
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-24 17:57:04

默认站点的Nginx配置文件包括行:

代码语言:javascript
复制
    server_name  localhost;

因此,当您转到http://localhost:9999时使用此配置;另外- nginx不处理/etc/nginx/sites-enabled目录及其内容;来自默认的nginx.conf

代码语言:javascript
复制
    include /etc/nginx/conf.d/*.conf;

修改您的Dockerfile -而不是:

代码语言:javascript
复制
ADD config/nginx-site.conf /etc/nginx/sites-enabled/nginx.conf

用途:

代码语言:javascript
复制
RUN rm /etc/nginx/conf.d/default.conf
ADD config/nginx-site.conf /etc/nginx/conf.d/nginx.conf
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38554349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档