我们有一个使用AWS的服务器设置,必须满足以下要求: 1:必须允许源自负载平衡器的传入请求(具体来说,运行状况检查和延迟检查)到达Web服务器。 2:必须允许包含正确Hoststring的有效请求到达Web服务器。 3:所有其他的请求必须被拒绝,非标准的Nginx'444'拒绝,这意味着它们将被忽略。 另外,我们的网站有几个子域,每个子域对不同的客户端运行基本相同的代码。 我们设置Nginx将所有httpstream量redirect到这些子域名到https。 我将调用这些子域名“a.example.com”,“b.example.com”和“c.example.com”。 我们已经注意到,在我们的日志中,我们的Django代码由于虚假的主机string超过了Nginx而返回了大量的500个错误。 我们看到的每个请求的主机string是“* .example.com”,它匹配我们的任何一个子域,因此使它成为Django代码。 由于该主机string无法识别,Django返回500错误。 以下是我们的Nginx站点可用文件的近似近似值: # Repeat this for each subdomain: server { server_name a.example.com; listen 80; return 301 https://a.example.com$request_uri; } server { server_name a.example.com; listen 443; location / { set $my_host $host; if ($host ~ "\d+\.\d+\.\d+\.\d+") { set $my_host "elb.example.com"; } } } 我们试图在Nginx中使用下面的“黑洞”服务器定义来捕获这个错误的主机string: server { server_name […]
假设我有一个nginx服务器,Django应用程序设置为“/ djangoapps / exampleapp1 /”和“/ djangoapps / exampleapp2 /”。 假设我刚刚注册了一个域名“www.exampleapp2.com”。 如何将www.exampleapp2.com指向我的django应用程序? 从阅读nginx文档看来,如果我只是在提供静态文件,这似乎是相当简单的。 一旦我扔进Django,它就变得困难了。 我的nginxconfiguration看起来像这样: server { server_name www.exampleapp2.com; location / { # What do I put here? } } server { root /var/www; location /djangoapps { include fastcgi_params; fastcgi_pass 127.0.0.1:8080; fastcgi_split_path_info ^()(.*)$; } }
我试图设置我的Django应用程序使用uWSGI和Nginx。 我正在学习这个教程: http : //uwsgi-docs.readthedocs.org/en/latest/tutorials/Django_and_nginx.html 我在“使用Unix套接字而不是端口”步骤。 我试过了 uwsgi –socket mysite.sock –wsgi-file test.py 但它没有工作(作为教程怀疑)。 我在看 /var/log/nginx/error.log 它说 2015/05/11 00:20:17 [crit] 1964#0: *13 connect() to unix:///home/a/Documents/CMS/CMS.sock failed (13: Permission denied) while connecting to upstream, client: 127.0.0.1, server: 192.168.174.131, request: "GET / HTTP/1.1", upstream: "uwsgi://unix:///home/a/Documents/CMS/CMS.sock:", host: "127.0.0.1:8000" 当我做 uwsgi –socket mysite.sock –wsgi-file test.py –chmod-socket=666 它工作,但是当我这样做 uwsgi –socket mysite.sock […]
我目前正在设置nginx + gunicorn来服务一个django应用程序,这个应用程序将被最多60个用户使用。 该应用程序是非常基本的,6个Django表格由10个字段和10个报告页面提交的答案。 以及以csv格式导出响应的能力。 使用本教程中提供的默认configuration,使用3名worker的gunicorn,并使用postgresql默认configuration,而不进行任何调整,系统可以处理多less个并发用户? 我一直在试图用围攻来模拟并发用户,但我不确定这是否是检查并发用户的正确方法。 是否还有其他工具可用来更好地了解有多less用户可以处理?
看了很多相关的post,大部分都指向了一个过时的版本的python,在uwsgi启动过程中导致了'no module named os'。 我跑了 print sys.version_info 它显示了Python 2.7,所有其他来源说,这是足够新的。 我的.ini文件看起来像: [uwsgi] chdir = app/app/ module = wsgi.py:application no-site = true virtualenv = app_venv master = true processes = 10 socket = app.sock chmod-socket = 777 vacuum = true die-on-term = true 而当我运行: uwsgi –ini app.ini 我懂了: Traceback (most recent call last): File "./wsgi.py", line 10, […]
我有Ubuntu 12.04.5 LTS,django(supervisorctl,gunicorn)的网站。 它工作1年没有问题,但今天我的zabbix服务器发送有关警报(每3-7分钟)关于超时(1-2秒)的消息。 我为nginx运行debugging模式: 2015/08/26 06:24:09 [debug] 24236#0: *214786 http upstream temp fd: -1 2015/08/26 06:24:09 [debug] 24236#0: *214786 http output filter "/management/verify/[email protected]&app_version=4.1&warehouse=131&only_hash=0&pin_number=" 2015/08/26 06:24:09 [debug] 24236#0: *214786 http copy filter: "/management/verify/[email protected]&app_version=4.1&warehouse=131&only_hash=0&pin_number=" 2015/08/26 06:24:09 [debug] 24236#0: *214786 image filter 2015/08/26 06:24:09 [debug] 24236#0: *214786 xslt filter body 2015/08/26 06:24:09 [debug] 24236#0: *214786 http postpone […]
我正在按照此存储库中给出的configuration。 我决定将我的dockerconfiguration和实际代码保存在不同的仓库中 – 我使用Dockerfile克隆代码仓库。 我正在使用docker-machine(本地,使用Virtualbox驱动程序)和docker-compose setup。 代码回购的目录结构大致如下 – : |– bower.json |– CONTRIBUTORS |– defsec | |– defsec | | |– aws_settings.py | | |– heroku_settings.py | | |– __init__.py | | |– settings.py | | |– urls.py | | |– views.py | | `– wsgi.py | |– manage.py | |– quiz_restful | | |– […]
我有一个运行在Apache上的mod_wsgi的Ubuntu EC2实例(t1.micro,内存为600mb),可以为Django应用程序提供服务。 这都是负载均衡器的后面。 我一直遇到的问题是,我似乎只能得到几天的正常运行时间,在我的网站停止前,我开始获得503状态。 我的logging是大约4周,没有停机。 重新启动apache没有帮助,我通常必须完全停止并重新启动EC2实例。 我已经尝试使用Dowser来诊断内存泄漏,但没有什么突出的。 我试过调整mpm_prefork设置。 我没有使用任何C扩展模块,任何外部API调用都有超时设置,我只有两个cron作业每天运行一次。 我的访问日志没有显示任何不寻常的东西,可能会显示DDOSing。 我完全不知道是什么导致服务器不断下降。 以下是停机时间段中apachectl状态的输出: 这里是htop的输出: 这些是我的prefork设置: <IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxRequestWorkers 40 MaxConnectionsPerChild 0 </IfModule> 我应该升级到更大的EC2实例吗? 或者升级mod_wsgi(因为我在旧版本)? 我试过从Djangoangular度的一切,所以我开始认为我只是mod_wsgiconfiguration不正确…
所以我已经使用NGIX与docker和许多应用程序django与UWSGI服务器Linux。 所以我需要创build一个在Docker容器内执行的工作。 这个工作将做一个应用程序Django的一些url的请求。 但是,当我试图提出请求时,我没有收到任何回应。 命令 wget localhost:3031 –bind-address=127.0.0.1 响应: –2015-09-23 14:20:15– http://localhost:3031/ Resolving localhost (localhost)… ::1, 127.0.0.1 Connecting to localhost (localhost)|::1|:3031… failed: Invalid argument. Connecting to localhost (localhost)|127.0.0.1|:3031… connected. HTTP request sent, awaiting response… No data received. Retrying. –2015-09-23 14:20:16– (try: 2) http://localhost:3031/ Connecting to localhost (localhost)|127.0.0.1|:3031… connected. HTTP request sent, awaiting response… No data […]
我有一个运行在nginx后面的django应用程序。 所有这些都在负载平衡器后面运行。 负载均衡器正在使用HTTP健康检查来启用/禁用节点。 问题是,运行状况检查不会发送主机标题,Django无法执行请求。 我试图覆盖HOST在Nginx,但没有运气。 location /health-check { access_log off; uwsgi_pass application; proxy_read_timeout 10; proxy_pass_header Server; proxy_set_header Host health-check.xxxxx.com; proxy_set_header X-Forwarded-Host health-check.xxxxx.com; include /opt/conf/uwsgi_params; } 任何方式来pipe理它?