我用mod_wsgi在Apache2中部署了一个WSGI应用程序。 如果用户在表单中提供的数据无效,则应用程序将以400响应代码进行响应。 该响应还包含带有高亮显示的表单和无效字段的HTML,以便用户可以更正数据。 这完美地使用像Waitress这样的开发服务器。 但是,当用相当标准的configuration在Apache中部署时, Apache吞噬HTML,从而妨碍了客户纠正他/她的错误的能力。 有没有办法configurationApache,以便错误消息来自WSGI应用程序?
我们在nginx后面运行我们的python应用程序。 首先我们使用uWSGI,因为它是快速,可靠和易于部署的。 接下来,随着并发客户端(使用服务器发送的事件/事件stream)数量的增加,我们已经部分切换到gunicorn + gevent的应用程序。 目前,该应用程序是这样的服务: 静态是由nginx直接处理的; 短请求(REST API)由uWSGI(通过unix套接字连接的nginx < – > uwsgi)处理, 长的请求(服务器发送的事件)由gunicorn + gevent处理(而nginx作为rev代理) 我们应该保持这种设置还是有任何理由从uWSGI切换到gunicorn?
我有一个奇怪的问题,我试图在Apache下CentOS 7 mod_wsgi下运行一个烧瓶应用程序( https://github.com/pyfarm/pyfarm-master )无法连接到本地postgresql服务器 – 但只有当说apache已经使用systemctl从systemd启动。 如果我在命令行上使用/usr/sbin/httpd -DFOREGROUND手动启动apache(systemd说明使用相同的命令),一切正常。 Apache,Postgresql和mod_wsgi几乎没有改变来自CentOS仓库或EPEL的默认安装。 pyfarm-core和pyfarm-master已经在pip的帮助下安装了。 除了将基于主机的身份validation设置为“信任”localhost的所有内容之外,postgresqlconfiguration与默认值没有任何关系: # "local" is for Unix domain socket connections only local all all trust # IPv4 local connections: host all all 127.0.0.1/32 trust # IPv6 local connections: host all all ::1/128 trust 之后,我创build了一个用户和一个数据库 CREATE USER pyfarm WITH PASSWORD 'pyfarmpw'; CREATE DATABASE pyfarm WITH OWNER […]
根据官方uWSGI文档:networking服务器面向外部世界。 它可以直接从文件系统提供文件(HTML,图像,CSS等)。 但是,它不能直接与Django应用程序进行对话; 它需要运行应用程序的东西,从Web客户端(如浏览器)提供请求并返回响应。 Web服务器网关接口 – WSGI – 完成这项工作。 WSGI是一个Python标准。uWSGI是一个WSGI实现。 这是否意味着如果我想在Web服务器上部署一个Django应用程序,uWSGI是必须的?
我正在使用Python,Flask和Apache,而且我被卡住了。 当我尝试访问使用www的mywebsite,它工作正常。 然而,当我删除www,该网站正在显示“索引/”下一个空的文件列表。 我读过所有可能的解决scheme,在我的情况下没有任何作用。 我正在使用WSGI,这意味着DocumentRoot是不相关的,因为我使用WSGIScriptAliasvariables。 按照指示使用ServerAlias – 不起作用。 我已经在我的DNS选项中设置了2个独立的Alogging,都指向相同的IP。 当我用www平网站,没有它,相同的IP地址显示 <VirtualHost *:80> ServerName mysite.com ServerAlias www.mysite.com WSGIScriptAlias / /var/www/mysite/mysite.wsgi <Directory /var/www/mysite/mysite/> Order allow,deny Allow from all </Directory> Alias /static /var/www/mysite/mysite/app/static <Directory /var/www/mysite/mysite/app/static/> Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined … </VirtualHost> 有任何想法吗? 这是“apachectl -S”命令的输出: VirtualHost configuration: *:80 is a […]
我是一个Python和Django的完全新手,但有一个需要build立一个网站。 我可以将什么命令/参数添加到types为* .wsgi的文件中,该文件可以在Django上下文中指定特定的settings.py文件? 谢谢!
到目前为止,我一直在尝试使用uWSGIreplace构build的许多kludgy服务器代码,并在监督下为Python wsgi应用程序进行设置。 我正在同时运行几十个这样的小项目(Django,Flask等)。 目前我在Virtualhost模式下运行,我允许NGINX基本上调用应用程序。 但是,似乎重新加载function“触摸重新加载”是为了一个特定的文件。 有没有办法使用“触摸重新加载”来监视正在运行的模块,通过指定每个站点或自动? 或者有没有办法让触摸重新加载被configuration为每个应用程序? 我也看到了皇帝模式,这似乎可能是一个稍微不好的替代品,但我不确定我的用例是否会导致数十甚至数百个进程产卵。 我喜欢虚拟主机模式,因为它基本上共享了所有应用程序的工作者池,这对我来说似乎是最有效的。 当前configuration: uWSGI <uwsgi> <vhost-host/> <master/> <gid>www-data</gid> <uid>www-data</uid> <catch-exceptions/> <socket>/var/tmp/uwsgi.sock</socket> <chmod-socket/> <idle>300</idle> <processes>6</processes> <no-orphans/> <enable-threads/> <reload-mercy>5</reload-mercy> <threads>10</threads> <no-default-app/> <touch-reload/> <!– <reload-on-rss>128</reload-on-rss> Reload at 128MB of RSS (memory usage) –> </uwsgi> 更新: 在做了一些关于uWSGI如何处理closures空闲工作人员的研究后,我想我终究需要皇帝模式。 我想要做的是让很less使用的应用程序不占用资源,而且使用的应用程序占用更多的资源。 我试图做到这一点,同时保持一个像PHP-FPM一样简单的托pipe部署。 虚拟模式实现了这一点,但似乎closures所有的工作人员,只有所有的应用程序已经空闲,这是没有用的,如果任何应用程序收到稳定的stream量。 如果不真实,我很乐意在这个问题上予以纠正。 使用皇帝模式的缺点是我将不得不为每个应用程序(Blech!)制作套接字文件和configuration文件。 我仍然想知道是否有可能实现上述每个应用程序重新加载。
我有一个运行于端口8080的Bottle-webserver的Python应用程序。现在我将通过wsgi文件将Nginx连接到Bottle-webserver。 现在,我有一个wsgi文件,但我怎么能用Nginx执行这个? Nginxconfiguration中的哪些命令(default.conf)是否需要? 也许我的想法是错误的。 有人能给我一些清晰吗? 我有这个在Nginx的configuration: server { location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8080; } } 现在,我在日志中看到(111: Connection refused) while connecting to upstream)的错误(111: Connection refused) while connecting to upstream) 。 任何人的想法?
我想确保对于我的网站的一些URL,SSL将被使用。 我已经看到了很多答案。 https://stackoverflow.com/questions/724968/force-redirect-to-ssl-for-all-pages-apart-from-one 所以我想我会用mod_rewrite。 我的问题是更多关于如何configuration虚拟主机通过HTTP和HTTPS运行我的Django应用程序没有问题。 我正在使用WSGI。 是否通过*:443和*:80复制configuration是一个问题? 我应该如何做最好的configuration? 谢谢。 雷米
我正在考虑用mod_wsgi部署Nginx。 不过我读了这个博客: http://blogg.ingspree.net/blog/2007/11/24/nginx-mod-wsgi-vs-fastcgi/ 在这里,nginx的mod_wsgi的作者说很less有工作线程可以被阻塞相当长的时间,等待你的脚本返回,这将减慢服务器。 这是多么真实? 我应该坚持fastcgi还是有更好的?