我的应用程序有一些先决条件,这意味着从需求安装将不会工作,直到几个脚本运行。 我一直在阅读关于自定义Python容器的文档,但是它不能完全清楚如何控制.ebextensions中的脚本何时运行,以及我所做的所有testing都表明它在部署应用程序后发生,或者至less在使用pip安装来自requirements.txt的包之后。 AWS论坛上的这篇文章build议创build一个脚本文件名,将其插入到hooks文件夹中,但这并不是build议的: 将文件直接放入钩子目录是有风险的,因为这不是logging的方法,在一些容器中是不同的,并且可能在将来会改变。 我想知道是否有人已经成功地build立了脚本在requirements.txt文件之前运行,如果是的话,我可能会做错了什么。 这是我的.ebextensions文件: packages: yum: # packages needed for my app files: "/home/ec2-user/setup-script.sh": mode: "00755" owner: ec2-user group: ec2-user encoding: plain content: | #!/bin/bash echo $(date -u) >> /tmp/debug.log echo "Running as $(whoami)" >> /tmp/debug.log # rest of script commands: 01-setup-script: command: "sh -x /home/ec2-user/setup-script.sh" 部署在安装需求的过程中停止,似乎不运行脚本,或更新脚本,因为它存在于用户文件夹中。
我想在我的Django服务器上用gunicorn和Nginx运行主pipe,但是当我运行“supervisord”时,主pipe日志说: 2015-11-06 23:23:36,746 INFO daemonizing the supervisord process 2015-11-06 23:23:36,749 INFO supervisord started with pid 13766 2015-11-06 23:23:37,758 INFO spawned: 'gunicorn' with pid 13773 2015-11-06 23:23:37,767 INFO exited: gunicorn (exit status 127; not expected) 2015-11-06 23:23:38,771 INFO spawned: 'gunicorn' with pid 13774 2015-11-06 23:23:38,802 INFO exited: gunicorn (exit status 127; not expected) 2015-11-06 23:23:40,807 INFO […]
我想为nginx设置ssl,我的项目是django,我也使用gunicorn作为wsgi http服务器。 我在settings.py代码中添加以下几行代码: CSRF_COOKIE_SECURE = True SESSION_COOKIE_SECURE = True 我不知道是否有必要这样做,然后我configuration我的nginx在以下forms: server { listen 80; server_name <name>; return 301 https://$host$request_uri; } server { #listen 80; listen 443 default ssl; client_max_body_size 4G; server_name <name>; #ssl on; ssl_certificate /etc/nginx/ssl/ssl.crt; ssl_certificate_key /etc/nginx/ssl/ssl.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; keepalive_timeout 5; # path for static files […]
我pipe理一个django-1.6应用程序,我想让工作人员用户可以通过/django界面删除特定模型的实例,而不需要该工作人员用户访问来更改该模型的实例。 对于每个模型,有三个权限可以单独add , change和delete 。 所以我试图授予工作人员只有delete权限,而没有其他两个。 这没有达到预期的结果。 工作人员用户现在可以在总览中看到模型的名称,但不是链接。 所以尽pipe这个员工用户已经被授予了delete权限,但是他无法进入他将find要删除的实例的页面。 django-1.6有没有办法让工作人员删除一个模型的实例而不被授予change权限?
我试试这个栈:nginx + uwsgi + django + postgresql,请求可以到达django的视图,客户端显示500 server internal fault ,我查了postgres日志,发现错误could not receive data from client: Connection reset by peer 。 如何debugging呢?
我一直在Django Cookie Cutter的地方项目中玩耍,想把它作为一个半生产阶段环境放在我的DO Droplet上。 服务器设置Nginx的反向代理到各种项目,一些服务与Gunicorn,一个裸瓶,一个与uWSGI。 每个项目都有自己的virtualenv。 在部署这个项目并进行设置时,我有以下一系列的错误。 Nginx的conf如下(这反映在这个液滴上的其他网站): server { server_name test.myserver.com; access_log off; location /static/ { alias /var/www/myproject/static/; } location / { proxy_pass http://127.0.0.1:8085; proxy_set_header X-Forwarded-Host $server_name; proxy_set_header X-Real-IP $remote_addr; add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"'; } } 在第一个例子中,重置nginx并且不设置Gunicorn后,这个“工作”/做我所期望的:抛出一个502错误的网关错误和nginx日志注意: 2016/02/25 11:27:25 [error] 21217#0: *275 connect() failed (111: […]
我有一个web服务器,通过Apache 2.4与Ubuntu 14.04上的mod_wsgi和Python 2.7服务Django 。 第一次安装时,使用Python库urllib3从这个web服务器发出的连接成功。 目前,使用urllib3的传出连接可能使用Python命令行客户端,但是Apache服务器在达到最大重试次数后,将会以错误0使其失败。 我不确定最近有什么变化可能导致这个问题。 是否有推荐的技术来诊断和解决Apache突然无法使用urllib3进行传出请求?
我从Digital Ocean中托pipe的Django 1.7应用程序中收到错误。 无效的HTTP_HOST标头:'\ x80 \ xc7 \ xda \ x9e'。 根据RFC 1034/1035提供的域名无效。 Request repr(): <WSGIRequest path:/xmlrpc.php, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'HTTP_CONNECTION': 'close', 'HTTP_HOST': '\x80\xc7\xda\x9e', 'HTTP_USER_AGENT': 'Mozilla/5.0 (Windows NT xy; Win64; x64; rv:10.0)Gecko/20100101 Firefox/10.0', 'HTTP_X_FORWARDED_FOR': '181.214.92.100', 'PATH_INFO': u'/xmlrpc.php', 'QUERY_STRING': '', 'RAW_URI': '/xmlrpc.php', 'REMOTE_ADDR': '181.214.92.100', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'POST', 'SCRIPT_NAME': u'', 'SERVER_NAME': '\x80\xc7\xda\x9e', 'SERVER_PORT': '80', […]
我花了整整一天的时间试图find我的问题的答案,但我失败了,决定在这里发布我的问题。 所以我开发了一个Django应用程序,现在我在将它部署到apache(httpd)服务器时遇到了问题。 如果相关,我正在运行CentOS 7.2。 我一直在遵循这个教程为了做我想要的: https : //www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-apache-and-mod_wsgi-on-centos- 7 显然,我没有从头开始创build一个新的项目,因为我已经有了一个,只是调整它,以适应教程。 一旦我完成并重新启动httpd服务,当试图访问该网站时,我收到以下错误消息: Forbidden You don't have permission to access / on this server. 这不是防火墙的问题,因为当我删除django.conf(即恢复更改)显示默认的Apache网站。 我的django.conf文件如下所示: Alias /static /home/dudu/DjangoProject/mysite/static <Directory /home/dudu/DjangoProject/mysite/static> Require all granted </Directory> <Directory /home/dudu/DjangoProject/mysite> <Files wsgi.py> Require all granted </Files> </Directory> WSGIDaemonProcess DjangoProject python-path=/home/dudu/DjangoProject:/home/dudu/DjangoProject/DjangoProjectEnv/lib/python2.7/site-packages WSGIProcessGroup DjangoProject WSGIScriptAlias / /home/dudu/DjangoProject/mysite/wsgi.py 相关的文件夹结构: /home/dudu/ |–DjangoProject | |–manage.py […]
我最近开始开发Django网站,我想用mod_wsgi和Apache将它们部署在CentOS VPS上。 我遵循这个指南 ,它完美的工作,但我想同时运行多个Django网站,所以我试图创build多个虚拟主机内的一个适当的configuration文件,并出现了问题。 <VirtualHost the.ip.of.server:80> ErrorLog /root/praxis.error.log Alias /static /root/Praxis/static <Directory /root/Praxis/static> Require all granted </Directory> <Directory /root/Praxis/Praxis> <Files wsgi.py> Require all granted </Files> </Directory> WSGIDaemonProcess Praxis python-path=/root/Praxis:/root/Env/Praxis/lib/python2.7/site-packages WSGIProcessGroup Praxis WSGIScriptAlias /praxis /root/Praxis/Praxis/wsgi.py </VirtualHost> 如果我删除了VirtualHost的开关标签,网站将按预期工作,但如果我保留这些标签,我将不断收到404错误。 我真的不明白为什么一切工作正常,只有没有标签。 我也尝试在基于IP的虚拟主机和基于名称的虚拟主机之间切换,但没有任何改变。 这里还有wsgi.py wsgi.py import os from django.core.wsgi import get_wsgi_application sys.path.append('/root/Praxis/Praxis') os.environ['PYTHON_EGG_CACHE'] = '/root/Praxis/.python-egg' os.environ['DJANGO_SETTINGS_MODULE'] = 'Praxis.settings' application = […]