2016-07-24 16 views
1

uwsgiでpythonアプリケーションを実行している3つのコンテナに直面しているnginx(コンテナ内で実行中)を使用したドッカー作成例を設定しようとしています。ローカルホストからアクセスするときに404エラーが発生しました:NGINX uWSGI

nginxをコンテナ用のdocker ipで試してみると、問題なくアプリケーションにアクセスできます。ただし、localhost:9999を使用してホストURL(nginxはポート9999を使用してホストにバインドされています)からアクセスしようとすると、nginxページにアクセスできますが、アプリケーションURLまたは/ admin/uriは404エラーで表示されます。

私は数多くのフォーラムやStackoverflowの回答を幸運にかけることなく、誰かがこの問題を解決するのを手伝ってもらえますか?

詳しい情報は、下記の添付:

私のドッキングウィンドウのコンファイルは、以下のようになります。

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; 
     } 
} 

EDITこの:nginxのための

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 

サイト対応のconfには、次のようになりますNGINX用のDockerファイルです。デフォルトのnginx.confファイルに変更を加えていません。

012デフォルトサイトの
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 
+0

404は、nginxのは、あなたの 'server' nginxのconfigブロックに到達していない示唆しています。おそらく、デフォルトのnginx設定ファイルのパラメータがあなたの設定を上書きしますか?あなたはそれを削除しようとしましたか?それがあなたのnginx/Dockerfileの内容を投稿してください助けていない場合。 – rafalmp

+0

nginxサーバは、nginxコンテナip(「sudo docker inspect | grep IPAddress」から入手しました。 – user2693188

+0

から取得したものです)をnginxサーバに追加しました。これは、Dockerfileをnginxに追加したものです。 .. – user2693188

答えて

1

nginxの設定ファイルには行が含まれています。あなたはhttp://localhost:9999に行くとき

server_name localhost; 

ので、この設定が使用されています。さらに - nginxは/etc/nginx/sites-enabledディレクトリとその内容を処理しません。デフォルトnginx.confから:

include /etc/nginx/conf.d/*.conf; 

あなたDockerfileを変更 - の代わりに:

ADD config/nginx-site.conf /etc/nginx/sites-enabled/nginx.conf 

使用:

RUN rm /etc/nginx/conf.d/default.conf 
ADD config/nginx-site.conf /etc/nginx/conf.d/nginx.conf 
+0

偉大な、それは働いた、ありがとう – user2693188

関連する問題