среда:
Докер и контейнер ubuntu (не предварительно определены, порт = 6000-> 8080), колба (serve.py), gunicorn, nginx. ip сервера: 123.456.789.101
Я хочу, чтобы другие люди могли получить доступ к сети (123.456.789.101:6000), которая работает в контейнере Docker, и посетить статические изображения (123.456.789.101:6000/static/1.jpg).
Когда я использую только колбу и огнестрельное оружие и запускаю guincorn -w 2 -b 0.0.0.0:8080 serve:app
, я могу получить доступ к сети (123.456.789.101:6000) успешно.
Но если я использую прокси nginx, это не удалось.
подробно, как следует:
сначала, $ gunicorn -w 2 -b 127.0.0.1:8080 serve:app
, успех, я могу свернуть его в контейнерной системе.
second, $ service nginx start
и загрузите файл conf в site-enable.
nginx conf detail:
server {
listen 6000;
server_name 123.456.789.101;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /static/ {
root /www;
expires 30d;
}
}
Финал, это не удалось. Я не могу получить доступ к Интернету (123.456.789.101:6000).
Чтобы найти, что не так, я пытаюсь запустить gunicorn -w 2 -b 127.0.0.1:8080 serve:app
и изменить файл конфигурации nginx
server {
listen 80;
server_name 127.0.0.1;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /static/ {
root /www;
expires 30d;
}
}
и curl 127.0.0.1
в контейнерной системе. это успех. это означает, что nginx может работать, он может отображать 80 на 8080.
Итак, что не так, как я могу это решить. Спасибо.