UWSGIコンテナをNGINXコンテナに接続できません[Docker]

kotmsk

私は自分の間違いを自分で見つけることができません、誰かが私を助けてくれませんか?そのため、さまざまな理由から、httpsとuWSGI + Flaskを使用してNginxを異なるコンテナーで実行したいと考えています。やりましたが、uwsgiコンテナからリクエスト届きませんnginx

私の告白:

N.B. -私のサーバーのIPアドレスは、提案例としてのみ11.11.11.1です。

Nginx Dockerfile:

FROM nginx:alpine

RUN apk add --no-cache openssl
RUN mkdir -p /etc/nginx/ssl/ \
        && cd /etc/nginx/ssl/ \
        && openssl req -newkey rsa:2048 -sha256 -nodes \
                -keyout cert.key \
                -x509 \
                -days 9999 \
                -out cert.pem \
                -subj "/C=US/ST=New York/L=Brooklyn/O=Me/CN=11.11.11.1"

ADD nginx.conf /etc/nginx/nginx.conf
ADD nginx.custom.conf /etc/nginx/conf.d/nginx.custom.conf

EXPOSE 443
EXPOSE 80

uwsgi Dockerfile

FROM alpine:3.7

ADD requirements.txt requirements.txt
# Install uWSGI
RUN apk add --no-cache uwsgi-python3 python3 \
        && export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python3.6/site-packages:/usr/lib/python3.6/site-packages \
        && pip3 install --no-cache-dir -r requirements.txt

EXPOSE 4000

ADD ./app /app
WORKDIR /app

CMD [ "uwsgi", "--thunder-lock", "--ini", "/app/uwsgi.ini"]

uwsgi.ini:

[uwsgi]
app_base = /app
chmod-socket = 777
socket = 0.0.0.0:4000
chdir = %(app_base)
wsgi-file = uwsgi.py
callable = app
master = true
buffer-size = 32768
processes = 4
max-requests = 1000
harakiri = 20
vauum = true
reload-on-as = 512
die-on-term = true
plugins = python3

uwsgi.py:

from bot.controllers import app

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=4000, debug=True, use_reloader=False)

nginx.conf:

upstream flaskapp {
   server 0.0.0.0:4000;
}

server {
    listen 80;
        listen 443 ssl;
        server_name 11.11.11.1;

        ssl on;
        ssl_protocols       SSLv3 TLSv1;
    ssl_certificate     /etc/nginx/ssl/cert.pem;
    ssl_certificate_key /etc/nginx/ssl/cert.key;

    location / {
        include /etc/nginx/uwsgi_params;
        uwsgi_pass flaskapp;
    }
}

docker-compose.yml:

version: '0.1'
services:
  app:
    build: .
    ports:
    - "4000:4000"
    links:
    - nginx
  nginx:
    image: nginx_ssl:5.0
    ports:
    - "443:443"

log:

app_1    | uwsgi socket 0 bound to TCP address 0.0.0.0:4000 fd 3
app_1    | uWSGI running as root, you can use --uid/--gid/--chroot options
app_1    | *** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
app_1    | Python version: 3.6.3 (default, Nov 21 2017, 14:55:19)  [GCC 6.4.0]
app_1    | *** Python threads support is disabled. You can enable it with --enable-threads ***
app_1    | Python main interpreter initialized at 0x55e6e3cc5f40
app_1    | uWSGI running as root, you can use --uid/--gid/--chroot options
app_1    | *** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
app_1    | your server socket listen backlog is limited to 100 connections
app_1    | your mercy for graceful operations on workers is 60 seconds
app_1    | mapped 507960 bytes (496 KB) for 4 cores
app_1    | *** Operational MODE: preforking ***
app_1    | Set the MIATA_SERVER_IP environment variable
app_1    | Set the MIATA_PUBLIC_CERT environment variable
app_1    | WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x55e6e3cc5f40 pid: 1 (default app)
app_1    | uWSGI running as root, you can use --uid/--gid/--chroot options
app_1    | *** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
app_1    | *** uWSGI is running in multiple interpreter mode ***
app_1    | spawned uWSGI master process (pid: 1)
app_1    | spawned uWSGI worker 1 (pid: 8, cores: 1)
app_1    | spawned uWSGI worker 2 (pid: 9, cores: 1)
app_1    | spawned uWSGI worker 3 (pid: 10, cores: 1)
app_1    | spawned uWSGI worker 4 (pid: 11, cores: 1)
nginx_1  | 2018/04/12 14:15:33 [error] 7#7: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 172.17.0.1, server: 11.11.11.1, request: "GET / HTTP/1.1", upstream: "uwsgi://0.0.0.0:4000", host: "77.37.214.6"
nginx_1  | 172.17.0.1 - - [12/Apr/2018:14:15:33 +0000] "GET / HTTP/1.1" 502 174 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30" "-"

私の質問は、なぜNGINXがUWSGIに接続できないのですか?どこで間違えたのか、何をしなかったのか?

前もって感謝します!

正安

nginxコンテナはアプリコンテナにリンクする必要があります。nginxアップストリームでは、uwsgiコンテナーを参照する必要があります。これにより、nginxはuwsgiコンテナを参照してリクエストをプロキシできるようになります。

nginx.conf

upstream flaskapp {
   server app:4000;
}

server {
    listen 80;
        listen 443 ssl;
        server_name 11.11.11.1;

        ssl on;
        ssl_protocols       SSLv3 TLSv1;
    ssl_certificate     /etc/nginx/ssl/cert.pem;
    ssl_certificate_key /etc/nginx/ssl/cert.key;

    location / {
        include /etc/nginx/uwsgi_params;
        uwsgi_pass flaskapp;
    }
}

docker-compose.yml

version: '2'
services:
  app:
    build: .
    ports:
    - "4000:4000"
  nginx:
    image: nginx_ssl:5.0
    ports:
    - "443:443"
    links:
    - app

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Docker:SpringbootコンテナはPostgreSqlコンテナに接続できません

分類Dev

コンテナDockerでmongoに接続できません

分類Dev

mongoでDockerコンテナに接続できません

分類Dev

DockerコンテナでGoServerに接続できません

分類Dev

DockerコンテナにSSH接続できません

分類Dev

DockerコンテナにSSH接続できません

分類Dev

OSXのDockerコンテナに接続できません

分類Dev

DockerコンテナからSQLServerに接続できません

分類Dev

Dockerコンテナは相互に接続できません

分類Dev

Dockerコンテナのmongodbに接続できません

分類Dev

MySQL の Docker コンテナに接続できません

分類Dev

dockerはコンテナー接続を指定できません

分類Dev

DockerでMySQLコンテナをTomcatコンテナに接続できません

分類Dev

Dockerコンテナから別のコンテナに接続できません。接続拒否

分類Dev

DockerのSpringbootコンテナにMongodbを接続できません

分類Dev

Python-DockerコンテナはMariaDBに接続できません-Dockerコンテナ

分類Dev

PHPコンテナがMySQLコンテナに接続できません

分類Dev

logstashdockerコンテナからkafkadockerコンテナに接続できません

分類Dev

dockerwordpressコンテナがmysqlコンテナに接続できません

分類Dev

Dockerホストの外部のDockerコンテナに接続できません

分類Dev

Dockerコンテナはdocker0の外部に接続できません

分類Dev

docker-composeアプリコンテナーはmongoコンテナーに接続できません

分類Dev

PowershellISEはDockerコンテナー/ Windowsコンテナーに接続できません

分類Dev

GolangコンテナからPostgresのDockerコンテナに接続できません

分類Dev

Dockerコンテナー内にあるpostgresqlに接続できません

分類Dev

Dockerコンテナ:名前でSQL Serverに接続できません

分類Dev

docker-composeシナリオでnpmpgを使用してpostgresqlコンテナーに接続できません

分類Dev

名前でmongodockerコンテナに接続できません

分類Dev

GCEDockerコンテナにSSHで接続できません

Related 関連記事

  1. 1

    Docker:SpringbootコンテナはPostgreSqlコンテナに接続できません

  2. 2

    コンテナDockerでmongoに接続できません

  3. 3

    mongoでDockerコンテナに接続できません

  4. 4

    DockerコンテナでGoServerに接続できません

  5. 5

    DockerコンテナにSSH接続できません

  6. 6

    DockerコンテナにSSH接続できません

  7. 7

    OSXのDockerコンテナに接続できません

  8. 8

    DockerコンテナからSQLServerに接続できません

  9. 9

    Dockerコンテナは相互に接続できません

  10. 10

    Dockerコンテナのmongodbに接続できません

  11. 11

    MySQL の Docker コンテナに接続できません

  12. 12

    dockerはコンテナー接続を指定できません

  13. 13

    DockerでMySQLコンテナをTomcatコンテナに接続できません

  14. 14

    Dockerコンテナから別のコンテナに接続できません。接続拒否

  15. 15

    DockerのSpringbootコンテナにMongodbを接続できません

  16. 16

    Python-DockerコンテナはMariaDBに接続できません-Dockerコンテナ

  17. 17

    PHPコンテナがMySQLコンテナに接続できません

  18. 18

    logstashdockerコンテナからkafkadockerコンテナに接続できません

  19. 19

    dockerwordpressコンテナがmysqlコンテナに接続できません

  20. 20

    Dockerホストの外部のDockerコンテナに接続できません

  21. 21

    Dockerコンテナはdocker0の外部に接続できません

  22. 22

    docker-composeアプリコンテナーはmongoコンテナーに接続できません

  23. 23

    PowershellISEはDockerコンテナー/ Windowsコンテナーに接続できません

  24. 24

    GolangコンテナからPostgresのDockerコンテナに接続できません

  25. 25

    Dockerコンテナー内にあるpostgresqlに接続できません

  26. 26

    Dockerコンテナ:名前でSQL Serverに接続できません

  27. 27

    docker-composeシナリオでnpmpgを使用してpostgresqlコンテナーに接続できません

  28. 28

    名前でmongodockerコンテナに接続できません

  29. 29

    GCEDockerコンテナにSSHで接続できません

ホットタグ

アーカイブ