[ Https://stackoverflow.com/questions/21933955 වෙතින් හරස්-පළ කර සංස්කරණය කරන ලදි , එය ස්ටැක් ඕවර්ෆ්ලෝ සඳහා සයිසැඩ්මින් වැනි යැයි සැලකේ.]
මා සතුව ඩොකින් කන්ටේනරයක් එන්ජින්එක්ස් ධාවනය වන අතර එය වෙනත් ඩොකර් කන්ටේනරයකට සම්බන්ධ වේ. දෙවන බහාලුමේ ධාරක නාමය සහ IP ලිපිනය ආරම්භයේ දී පරිසර විචල්යයන් ලෙස Nginx බහාලුමට පටවනු ලැබේ, නමුත් ඊට පෙර එය නොදනී (එය ගතිකය). මට nginx.conf
මෙම අගයන් භාවිතා කිරීමට අවශ්යයි - උදා
upstream gunicorn {
server $APP_HOST_NAME:$APP_HOST_PORT;
}
ආරම්භයේ දී Nginx වින්යාසයට පරිසර විචල්යයන් ලබා ගන්නේ කෙසේද?
සංස්කරණය 1
පහත දැක්වෙන යෝජිත පිළිතුරෙන් පසුව සම්පූර්ණ ගොනුව මෙයයි:
env APP_WEB_1_PORT_5000_TCP_ADDR;
# Nginx host configuration for django_app
# Django app is served by Gunicorn, running under port 5000 (via Foreman)
upstream gunicorn {
server $ENV{"APP_WEB_1_PORT_5000_TCP_ADDR"}:5000;
}
server {
listen 80;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location /static/ {
alias /app/static/;
}
location /media/ {
alias /app/media/;
}
location / {
proxy_pass http://gunicorn;
}
}
Nginx නැවත පූරණය කිරීමෙන් පසුව දෝෂ:
$ nginx -s reload
nginx: [emerg] unknown directive "env" in /etc/nginx/sites-enabled/default:1
සංස්කරණය 2: වැඩි විස්තර
වත්මන් පරිසර විචල්යයන්
root@87ede56e0b11:/# env | grep APP_WEB_1
APP_WEB_1_NAME=/furious_turing/app_web_1
APP_WEB_1_PORT=tcp://172.17.0.63:5000
APP_WEB_1_PORT_5000_TCP=tcp://172.17.0.63:5000
APP_WEB_1_PORT_5000_TCP_PROTO=tcp
APP_WEB_1_PORT_5000_TCP_PORT=5000
APP_WEB_1_PORT_5000_TCP_ADDR=172.17.0.63
මූල nginx.conf:
root@87ede56e0b11:/# head /etc/nginx/nginx.conf
user www-data;
worker_processes 4;
pid /var/run/nginx.pid;
env APP_WEB_1_PORT_5000_TCP_ADDR;
අඩවි nginx වින්යාසය:
root@87ede56e0b11:/# head /etc/nginx/sites-available/default
# Django app is served by Gunicorn, running under port 5000 (via Foreman)
upstream gunicorn {
server $ENV{"APP_WEB_1_PORT_5000_TCP_ADDR"}:5000;
}
server {
listen 80;
Nginx වින්යාසය නැවත පූරණය කරන්න:
root@87ede56e0b11:/# nginx -s reload
nginx: [emerg] directive "server" is not terminated by ";" in /etc/nginx/sites-enabled/default:3
app_web_1
කළහොත් එයට නව IP ලිපිනයක් ලැබෙනු ඇත, එබැවින් ඔබට ඔබේ nginx බහාලුමද නැවත ආරම්භ කළ යුතුය. ඩොකර් එය යාවත්කාලීන කිරීමකින් නැවත ආරම්භ කරන /etc/hosts
බැවින් ඔබට nginx වින්යාස ගොනුව වෙනස් කිරීමට අවශ්ය නොවේ.
server $ENV{"APP_WEB_1_PORT_5000_TCP_ADDR"}:5000;
සමඟserver app_web_1:5000;