Articles of django

用django和apacheconfigurationhtaccess

我正在尝试用djangoconfiguration我的apache服务器。 我遇到的问题与他们的观点匹配的url,我不太清楚问题的原因。 我有以下configuration: 的.htaccess: AddHandler fcgid-script .fcgi RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ cyber.fcgi/ [QSA,L] urls.py: from django.conf.urls import patterns, include, url from django.conf import settings from views import index, test from os import path urlpatterns = patterns('', (r'^$', index), (r'^test/$', test), ) 我遇到的问题是,所有不以/cyber.fcgi/开头的URL自动匹配索引视图。 为了testing,我正在打印视图所看到的url: www.example.com/test/ <= matches index with url /test/ www.example.com/test <= […]

Django在apache / mod_wsgi / windows上进行multithreading

对于apache和django的组合,我相当陌生,坦白地说,如何处理multithreading。 具体来说,我运行在Windows服务器上,所以我知道MPM只是基于线程的。 我有一个服务于网站页面的应用程序,另一个应用程序执行一个不断发生的cpu密集型后台进程,时间长达30秒左右。 我担心我可能会遇到性能问题,并有几个问题,我希望这些也可以帮助其他人… apache如何在线程之间分配并发请求? 和CPU之间? 什么样的逻辑驱动这个? 每个请求是否生成一个单独的线程? 我可以手动指定某个应用程序在独立的CPU上运行吗? 例如,如果我有一台带有4个CPU的机器,我可以为网站请求设置1个CPU,还可以根据需要设置3个CPU来运行后台进程? multithreading如何读/写同一个数据库? 我不希望有冲突,因为写作是按用户进行的,但是我不知道这是如何处理的。 如果我有多台这样的机器,例如在EC2上运行并且有多个实例,会发生什么? 如何分发请求? 谢谢

在nginx + gunicorn + django中上传文件和client_max_body_size

我需要configurationnginx + gunicorn才能够在两个服务器上传大于默认最大大小的文件。 我的nginx .conf文件如下所示: server { # … location / { proxy_pass_header Server; proxy_set_header Host $http_host; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_connect_timeout 60; proxy_pass http://localhost:8000/; } } 这个想法是允许两个地点20M的请求: /admin/path/to/upload?param=value /installer/other/path/to/upload?param=value 我已经尝试添加location指令在相同的水平比我在这里粘贴(获得404错误),也试图将它们添加到location /指令(获得413 Entity Too Large错误)。 我的位置指令看起来像这些最简单的forms: location /admin/path/to/upload/ { client_max_body_size 20M; } location /installer/other/path/to/upload/ { client_max_body_size 20M; } 但他们不工作(实际上我testing了很多组合,我绝望地想着这个。 请帮助如果可以的话:我需要设置哪些设置才能使其工作? 非常感谢!

在nginx fastcgi链接中的Unicode字符

我有一个与fastcgi通过nginx托pipe的django项目。 Django有一些用户使用西里尔文字符。 但是当我试图用这样的链接打开页面时,django告诉它没有这样的模型,因为链接被跳过了,并被带到django中,成为“%D0%BA%D0%BD%D0%B8%D0%B3 %D0%B8" 。 在Apache的同一个项目工作正常。 我需要什么样的select来告诉nginx不要逃避这样的链接?

nginx不再适用于ec2实例

我承认跑了这个: sudo update-rc.d nginx defaults 这似乎消灭了nginx的设置。 像sudo service nginx start这样的Nginx命令在执行时不再返回任何东西。 但是,我的django应用程序的nginx文件仍然存在于: sudo vim /etc/nginx/sites-enabled/myapp sudo vim /etc/nginx/sites-available/myapp 我在nginx上运行了一个GREP,得到: /etc/nginx/sites-available/myapp包含: server { server_name ec2-xxxx.compute-1.amazonaws.com; access_log /home/ubuntu/virtualenv/myapp/error/access.log; error_log /home/ubuntu/virtualenv/myapp/error/error.log warn; connection_pool_size 2048; root /home/ubuntu/virtualenv/myapp/homelaunch/; location /static/ { alias /home/ubuntu/virtualenv/myapp/homelaunch/static/; #alias /static/; #root /home/ubuntu/virtualenv/myapp/homelaunch/; } location / { proxy_pass http://127.0.0.1:8001; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #proxy_set_header X-Forwarded-Host […]

我应该为干净的Apacheconfiguration设置什么文件

我对Apache并不陌生,但我也不是专家(无论如何)。 我已经运行了WAMP和XAMP服务器设置的几个版本。 我的大部分Apacheconfiguration都很简单。 我通常运行一个默认主configuration文件( httpd.conf或apache.conf ),一个或两个包含(例如不同的端口)和一些站点特定的虚拟主机文件。 最近,我build立了一个使用HTTPS的服务器。 我买了证书,并设置了它。 这不是太糟糕,但它让我思考。 我设置的每个Apacheconfiguration似乎有点不同。 我不应用任何最佳做法; 只是使用这些更改来构build默认安装,使我的应用程序运行。 这现在困扰我了。 我目前运行Apache 2.2,并且希望为自己制定一个可以保持一致的约定,我可以更快地部署到更多的服务器上。 所以我的问题是,我应该使用什么文件,他们应该如何互动? 例如,我认为大多数人都同意用调整加载你的主Apacheconfiguration是一个坏主意。 那么你应该把它剥离到最低限度,并实施多个包括? 你如何正确设置sites-available目录( sites-enabled符号链接)? 因为有许多方法可以做,而且由于Apache允许在多个地方使用相同的影响,所以我发现在所有这些文件中都会散布出来,包括在.htaccess文件中使用类似mod_rewrite东西(我开始相信这是一个坏主意,除非你是共享主机,这是唯一的方法)。 对于SSL,您是否设置了default-ssl文件或project-ssl 。 我在一台服务器上运行了多less个虚拟主机? 我明白我的问题有些主观。 可能没有客观的答案。 但是我的目标是尽可能接近客观的答案。 然后是WSGI。 如果你部署Django的网站,这进一步复杂的事情。 我应该使用/home/user/project/project/wsgi.py还是/var/www/project/index.wsgi ? 这些文件如何与Apacheconfiguration交互? 以下是我关心的文件列表: /etc/apache2/apache.conf /etc/apache2/httpd.conf /etc/apache2/ports.conf /etc/apache2/envvars (mostly self explanatory) /etc/apache2/conf.d/project.conf /etc/apache2/conf.d/security /etc/apache2/sites-available/default /etc/apache2/sites-available/default-ssl /etc/apache2/sites-available/project /etc/apache2/sites-available/project-ssl 为什么一些Apache安装有一个Apache主configuration,其中包含模块,其他的有mods-available和mods-enabled ? 就像我上面所说,似乎有很多重叠,所以我不惊讶这是一个棘手的话题要掌握。 另外,如果有人知道一个很好的参考步骤,我会有兴趣看到它。 我有几本旧的阿帕奇书籍,他们只是没有把它分解。 他们认为你是完整的初学者,并且只保留默认值。 Apache的文档是相当不错的,我经常去他们,但我所寻找的一个全面的来源似乎并不存在(或者,我还没有find最好的search条件来find它)。

Ubuntu 12.04服务器 – Django与uWsgi不能正常工作

我对于使用服务器相当陌生。 我试图在uwsgi&nginx的Ubuntu 12.04 AWS上运行Django。 我find了一个我正在学习的教程: http : //uwsgi.readthedocs.org/en/latest/tutorials/Django_and_nginx.html 我创build了一个虚拟evn: virtualenv uwsgi-tutorial cd uwsgi-tutorial source bin/activate 然后我使用pip安装了Python&Django。 然后我开始了一个名为mysite的Django项目 然后我安装了uwsgi pip install uwsgi 然后我创build了一个test.py文件: def application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) return "Hello World" 然后我跑了uwsgi: uwsgi –http :8000 –wsgi-file test.py 如果我的浏览器指向我的http://myip:8000我将在浏览器中看到Hello World 。 但是,我的浏览器正在等待,因为它根本不连接到服务器。 当我运行uwsgi –http :8000 –wsgi-file test.py我得到这个输出在terminal: *** Starting uWSGI 2.0.1 (64bit) on [Tue Feb 25 […]

使用lighttpd和regex将所有子域redirect到主域

是否有可能将所有*.domain.comredirect到我的domain.com ? 我一直在与正则expression式搞乱,但没有任何运气: $HTTP["host"] =~ ".*\.domain\.com" { url.redirect = ("^/(.*)" => "http://domain.com/$1") } $HTTP["host"] =~ “domain\.com" { server.document-root = "/var/www/servers/domain.com/awesomesite" accesslog.filename = "/var/www/logs/domain.com/access.log" server.errorlog = "/var/www/logs/domain.com/error.log" fastcgi.server = ( ".fcgi" => ( "main" => ( # Use host / port instead of socket for TCP fastcgi "bin-path" => "/var/www/servers/domain.com/awesomesite/domain.fcgi", "socket" => "/tmp/domain.sock", "check-local" => "disable", […]

调整基于django的网站部署使用Apache的wsgi更好的性能

我正在使用Apache + mod_wsgi运行Django应用程序,我已经在Amazon EC2上安装了6个中等Ubuntu服务器,其中2个用于mongo,4个用于Django和apache,使用ebs作为postgresql并在所有Apache服务器周围configuration了一个负载均衡器,每个服务器有4 GB的内存,但在重负载系统变得缓慢,我看到使用顶部命令,Apache使用7个进程,吃大约2.4 GB的RAM。 下面是apache MPM prefork模块configuration <IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 MaxRequestsPerChild 0 </IfModule> 这是wsgi守护进程 WSGIDaemonProcess example user=abc group=abc processes=2 threads=25 然后我通过以下这篇文章http://fuscata.com/kb/set-maxclients-apache-prefork改变MaxClients到12,但我得到“请求标头读取超时”错误在Apache错误日志。 请帮助我调整Apache以获得更好的性能。

从Django App分配负载

我正在接近将我的第一个大型应用程序从开发中移出的阶段。 我曾经和一些知道他们在谈论什么的CTO谈过,而且我被告知要做以下工作: 将发射阶段分成4个步骤 I.启动单个结构化的应用程序。 assets /和db.sqlite3在应用程序内,全部在一台服务器上。 II。 将数据库移到自己的服务器上,使用CDN(如aws-s3)来保存资产/ III。 设置负载平衡 IV。 使用NoSQL解决scheme而不是rdbms。 所以! 我关心的主要问题是项目2: 我必须设置一个环境来运行sqlite3,创build一个用户,然后给我的django应用程序专门的身份validation? 我熟悉将资产存储在外部,但是我从来不需要移出数据库,不包括执行parsing的非django解决scheme。 tldr; 我是一个业余的专业开发人员,我从来没有build立任何曾经有超过1000个用户的任何东西,并且好奇创build一个django应用程序的stream程stream程看起来如何,通过使用另一个服务器来成功减less服务器负载。 我的想法可能有缺陷:我不明白这是如何分配负载,因为对我来说,似乎应用程序将不得不进一步请求与数据库进行通信。 它实际上只是作为一个在客户端和服务器之间来回传递消息的中间人吗? 计划使用Apache的托pipe,可能在一个EC2的Ubuntu 14.04实例(多?)。 谢谢。