亚马逊Linux上的uwsgi新贵

我在amazon linux上的https://uwsgi.readthedocs.org/en/latest/Upstart.html教程中创build了一个uwsgi文件。 虽然Nginx似乎没有运行,只是说坏的网关。 如果我运行

/etc/init/uwsgi.conf

description "uwsgi tiny instance" start on runlevel [2345] stop on runlevel [06] exec /home/ec2-user/venv/bin/uwsgi --ini /home/ec2-user/uwsgi-prod_demo.ini 

如果我在shell中运行以下代码,则python应用程序将运行。

 /home/ec2-user/venv/bin/uwsgi --ini /home/ec2-user/uwsgi-prod_demo.ini 

uwsgi-prod_demo.ini

 [uwsgi] socket = :8080 chdir = /home/ec2-user/prod_demo master = True venv = /home/ec2-user/venv callable = app wsgi-file = /home/ec2-user/prod_demo/manage.py enable-threads = True https = =0,/home/ec2-user/xxx.com.au.pem,/home/ec2-user/newkey.pem,HIGH 

nginx.conf

 user ec2-user; worker_processes 1; error_log /var/log/nginx/error.log; #error_log /var/log/nginx/error.log notice; #error_log /var/log/nginx/error.log info; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; server { listen 80; listen 443 ssl; ssl_certificate /home/ec2-user/xxx.com.au.pem; ssl_certificate_key /home/ec2-user/newkey.pem; server_name import.xxx.com.au *.import.xxx.com.au; access_log /var/log/prod_demo/access_log; root /home/ec2-user/prod_demo; location / { uwsgi_pass 127.0.0.1:8080; include uwsgi_params; } location /static { alias /home/ec2-user/prod_demo/app/static; } location = /favicon.ico { alias /home/ec2-user/prod_demo/app/statichttp://img.dovov.comfavicon.ico; } } } 

为了解决这个问题,我做了一些事情。 – 将主目录中的所有脚本移动到/ var / www / – 创build一个www组和www用户,chown / var / www到www:www

完整说明

  1. 创build一个用户和组www和www

     sudo groupadd www sudo adduser www -g www 
  2. 创build一个目录,你的烧瓶应用程序将是/ var / www /

     sudo chown -R www:www /var/www 
  3. /etc/nginx/nginx.conf

     # /etc/nginx/nginx.conf # For more information on configuration, see: # * Official English Documentation: http://nginx.org/en/docs/ # * Official Russian Documentation: http://nginx.org/ru/docs/ user www; worker_processes 1; error_log /var/log/nginx/error.log; #error_log /var/log/nginx/error.log notice; #error_log /var/log/nginx/error.log info; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; client_max_body_size 20M; #keepalive_timeout 0; keepalive_timeout 0; uwsgi_read_timeout 86400; uwsgi_send_timeout 86400; #gzip on; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; server { listen 80; listen 443 ssl; ssl_certificate /var/www/test.com.au.pem; ssl_certificate_key /var/www/newkey.pem; server_name demo.test.com.au; access_log /var/log/prod_demo/access_log; root /var/www/prod_demo; location / { uwsgi_pass 127.0.0.1:28080; include uwsgi_params; } location /static { alias /var/www/prod_demo/app/static; } location = /favicon.ico { alias /var/www/prod_demo/app/statichttp://img.dovov.comfavicon.ico; } } server { listen 80; listen 443 ssl; ssl_certificate /var/www/test.com.au.pem; ssl_certificate_key /var/www/newkey.pem; server_name ajtravel.test.com.au; access_log /var/log/prod_demo_two/access_log; root /var/www/prod_demo_two; location / { uwsgi_pass 127.0.0.1:28082; include uwsgi_params; } location /static { alias /var/www/prod_demo_two/app/static; } location = /favicon.ico { alias /var/www/prod_demo_two/app/statichttp://img.dovov.comfavicon.ico; } } #test config server { listen 80; listen 443 ssl; ssl_certificate /var/www/test.com.au.pem; ssl_certificate_key /var/www/newkey.pem; server_name demo.test.test.com.au; access_log /var/log/prod_demo/access_log; root /var/www/prod_demo; location / { uwsgi_pass 127.0.0.1:28080; include uwsgi_params; } location /static { alias /var/www/prod_demo/app/static; } location = /favicon.ico { alias /var/www/prod_demo/app/statichttp://img.dovov.comfavicon.ico; } } server { listen 80; listen 443 ssl; ssl_certificate /var/www/test.com.au.pem; ssl_certificate_key /var/www/newkey.pem; server_name ajtravel.test.test.com.au; access_log /var/log/prod_demo_two/access_log; root /var/www/prod_demo_two; location / { uwsgi_pass 127.0.0.1:28082; include uwsgi_params; } location /static { alias /var/www/prod_demo_two/app/static; } location = /favicon.ico { alias /var/www/prod_demo_two/app/statichttp://img.dovov.comfavicon.ico; } } } 
  4. /etc/init/uwsgi-prod-demo.conf

     # https://uwsgi.readthedocs.org/en/latest/Upstart.html # /etc/init/uwsgi.conf # simple uWSGI script description "uwsgi tiny instance" #start on runlevel [2345] #stop on runlevel [06] start on started elastic-network-interfaces exec /var/www/venv/bin/uwsgi --ini /var/www/uwsgi-prod_demo.ini 
  5. /var/www/uwsgi-prod_demo.ini

     [uwsgi] uid = www gid = www socket = :28080 chdir = /var/www/prod_demo master = True venv = /var/www/venv callable = app wsgi-file = /var/www/prod_demo/manage.py enable-threads = True