[英]How to set up globally visible environment variables on Azure VM (v1)
是否可以通過Ubuntu OS在Azure VM(服務管理)上設置系統范圍/全局可見的環境變量? 我陷入了將它們設置在ubuntu的/etc/environment
/etc/profile
和/etc/bash.bashrc
情況,我的應用程序代碼未將其設置。 但是,它們確實出現在printenv
。 我的猜測是,由於設置我的Web服務器(Gunicorn + Nginx反向代理)的方式,它們以某種方式被繞開了。
但是,也許有一種方法可以在Azure VM上設置優先於所有內容的env變量? 我知道Heroku的儀表板中有該選項(我一直在使用它),Azure Web Apps也是如此(由於各種有據可查的兼容性問題,我無法使用它)。
作為參考,我在Azure VM上發布了我的步驟。 您可以檢查它們並與您的進行比較。
ssh user@vm-name.cloudapp.net
安裝工具pip
和virtualenv
:
sudo apt-get update sudo apt-get install python-pip sudo pip install virtualenv
准備gunicorn
以安裝gunicorn
和django
mkdir environments virtualenv environments/experiment/ cd environments/experiment/ source bin/activate pip install gunicorn django
創建一個django項目並使用gunicorn
運行它,然后嘗試訪問它:
django-admin startproject mysite bin/gunicorn --chdir=mysite -w 3 --env DJANGO_SETTINGS_MODULE=mysite.settings mysite.wsgi:application # using w3m to access http://localhost:8000 w3m http://localhost:8000
安裝Nginx並配置反向代理:
sudo apt-get install nginx sudo cp /etc/nginx/site-available/default /etc/nginx/site-available/default.bak sudo vim /etc/nginx/site-available/default
以下是Nginx的default
文件中配置的內容:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.html index.htm;
# Make site accessible from http://localhost/
server_name localhost;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
include proxy_params;
proxy_pass http://unix:/home/<user>/environments/experiment/mysite/mysite.sock;
# I also try to config `http://localhost:8000;`, it's ok too.
}
}
我也嘗試配置proxy_pass http://localhost:8000;
,也可以。
重新啟動nginx
服務並重新啟動gunicorn
:
sudo service nginx restart bin/gunicorn --chdir=mysite --bind unix:/home/<user>/environments/experiment/mysite/mysite.sock -w 3 --env DJANGO_SETTINGS_MODULE=mysite.settings mysite.wsgi:application
我發現應用程序啟動后無法獲得環境變量的設置。 因此,請在啟動gunicorn
之前運行命令source /etc/...
如有任何疑問,請隨時告訴我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.