用apache,减少MaxClients什么时候KeepAlive是合理的Off?当前,MaxClients设置为150,默认为mpm-worker.
0.8四核盒子谢谢!
我提出的每个解决方案都不是线程保存.
def uuid(cls,db):
u = hexlify(os.urandom(8)).decode('ascii')
db.execute('SELECT sid FROM sessions WHERE sid=?',(u,))
if db.fetch(): u=cls.uuid(db)
else: db.execute('INSERT INTO sessions (sid) VALUES (?)',(u,))
return u
Run Code Online (Sandbox Code Playgroud) 我通过如下设置apache服务器在apache2 / Mac OS X上使用mod_wsgi。
<Directory /Library/WebServer/Documents/wsgi/scripts>
Order allow,deny
Allow from all
</Directory>
<IfModule wsgi_module>
WSGIScriptAlias /test /Library/WebServer/Documents/wsgi/scripts/test.wsgi
</IfModule>
Run Code Online (Sandbox Code Playgroud)
使用此配置,我可以使用以下命令调用test.wsgi http://.../test
现在,我需要通过如下调用来执行它。
http://.../wsgi/test.wsgi
我有以下代码。
<Directory /Library/WebServer/Documents/wsgi/scripts>
Order allow,deny
Allow from all
AddHandler wsgi-script .wsgi
</Directory>
<IfModule wsgi_module>
WSGIScriptAlias /test /Library/WebServer/Documents/wsgi/scripts/test.wsgi
Alias /wsgi/ /Library/WebServer/Documents/wsgi/scripts/
</IfModule>
Run Code Online (Sandbox Code Playgroud)
我考虑过使用,Alias以便可以将wsgi脚本目录链接到/ wsgi /,并且我希望Addhandler可以处理wsgi文件,但是它不起作用。
我的apache2设置有什么问题?
<Directory /Library/WebServer/Documents/wsgi/scripts>
Options ExecCGI Indexes
AddHandler cgi-script .cgi
AddHandler wsgi-script .wsgi
Order allow,deny
Allow from all
</Directory>
Alias /wsgi/ /Library/WebServer/Documents/wsgi/scripts/
Run Code Online (Sandbox Code Playgroud) 我在其中一个视图中使用了subprocess.Popen:
path = os.path.join(os.path.dirname(__file__), 'foo/bar.py')
subprocess.Popen(["python",path])
Run Code Online (Sandbox Code Playgroud)
在我的wsgi文件中,我有
import os
import sys
ppath = '/home/socialsense/ss/src'
if ppath not in sys.path:
sys.path.append(ppath)
os.environ['DJANGO_SETTINGS_MODULE'] = 'ss.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Run Code Online (Sandbox Code Playgroud)
而在src我有ss,我的Django项目.
但是当我检查我的日志文件时,bar.py遇到了错误,ImportError: No module named ss.discovery.models.现在似乎模块ss本身在sys.path使用时不在Popen......
我在这里做错了什么?
我建立了Flask,一个带有mod_wsgi的apache下的python web微框架.
该应用程序正常工作,除了python confparser.这不会引发错误:
parser = ConfigParser.ConfigParser()
parser.read('snati.con')
Run Code Online (Sandbox Code Playgroud)
但是当我添加:
parser.get('database', 'user')
Run Code Online (Sandbox Code Playgroud)
我在Apache的error.log中没有任何内容时出现内部服务器错误
我也尝试过:
file = open("sample.txt")
Run Code Online (Sandbox Code Playgroud)
结果相同.
必须有一些配置问题,但我找不到它.
我的apache conf看起来像:
WSGIRestrictStdout Off
<VirtualHost *:80>
ServerName my.com
WSGIDaemonProcess myapp user=me group=me threads=5
WSGIScriptAlias / /home/me/www/myapp.wsgi
<Directory /home/me/www/myapp >
WSGIProcessGroup myapp
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
我的app.wsgi
#active the python virtualenv for this application
activate_this = '/home/gilles/www/snati/env/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))
import sys
sys.path.insert(0, '/home/gilles/www/snati/src')
sys.stdout = sys.stderr
from app import app as application
Run Code Online (Sandbox Code Playgroud)
什么可能是错的,为什么我不能在Apache日志中得到错误?
我最近更改了一些Django/Python站点的服务器,并立即陷入困境.我的Apache实例或WSGI守护进程就死了!没有日志,没有警告或错误.我必须以root身份重启Apache,我认为这是一个严重的权限漏洞.我的Linux知识是有限的,而且我是唯一一个遇到这个问题的人,因为我无法与迄今为止我发现的其他答案联系起来.
在Debian机器上,WSGI版本是3.3(multiprocess = True和multithread = True),Python 2.7和Django 1.4.我需要的一些python库,包括Django,并不是来自Debian的存储库; 我让它们"手动"安装.
有时,我不知道它是否重要,我得到这个错误:
"ImportError:无法导入_strptime,因为导入锁定由另一个线程持有."
我正在尝试使用Flask托管一个Web应用程序.我有运行CentOS的VPS.我安装了Apache 2.2.26.
当我pip install mod_wsgi在虚拟环境中运行或在我的主Python安装上运行时,我会收到以下错误
在Python跟踪之前打印第一个错误...
/usr/bin/ld: /home5/arguably/python27/lib/python2.7/config/libpython2.7.a(abstra ct.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when maki ng a shared object; recompile with -fPIC
/home5/arguably/python27/lib/python2.7/config/libpython2.7.a: could not read sym bols: Bad value
collect2: ld returned 1 exit status
error: command 'gcc' failed with exit status 1
Run Code Online (Sandbox Code Playgroud)
该错误正在查看我的主要Python安装.这不是virtualenv所在的位置
Python错误......
Traceback (most recent call last):
File "/home/arguably/webapps/ers_2/ers2venv/bin/pip", line 11, in <module>
sys.exit(main())
File "/home/arguably/webapps/ers_2/ers2venv/lib/python2.7/site-packages/pip/__ init__.py", line 185, in main
return command.main(cmd_args)
File "/home/arguably/webapps/ers_2/ers2venv/lib/python2.7/site-packages/pip/ba secommand.py", line 161, in main …Run Code Online (Sandbox Code Playgroud) 我正在学习后端的绳索,目前正在尝试使用apache规则阻止访问我的django应用程序的管理页面,一个là:
<Directory /admin>
Order deny,allow
Deny from all
Allow from xxx.xxx.xxx.xxx
</Directory>
Run Code Online (Sandbox Code Playgroud)
我也将我的django/mod_wsgi别名设置为
WSGIScriptAlias /app /home/django/Projects/backend/wsgi.py
Run Code Online (Sandbox Code Playgroud)
我正在阅读这里的文档,在这里,但是我仍然没有100%清楚我是如何做到这一点的,因为在django项目中,管理路径没有特别定义(尽管静态文件是).我对此的搜索也没有太大的影响,所以要么我想做一些无人问津的事,要么我想做错了(我不想要密码弹出,谢谢).
这里所需的结果是,如果您尝试从我指定的IP以外的任何IP访问我的管理页面,那么您的页面将永远不会加载或超时.
我在哪里可以获得mod_wsgi.soWindows 7 64位?
我已经研究过并且都指向我http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi
但是没有 mod_wsgi.so
我找到了另一个链接https://code.google.com/p/modwsgi/downloads/detail?name=mod_wsgi-win32-ap22py27-3.3.so
但我不确定它是否可以信任.此外,它似乎是32位.
有任何想法吗?
我最近完成了django 2应用程序的开发,部分要求是将其部署到centos计算机上的apache 2服务器上。django应用程序是使用python3编写的,并且centos计算机已预先安装了python2。
到目前为止,我一直很难在apache2服务器上安装mod_wsgi并部署应用程序。
任何帮助,将不胜感激。
编辑 我已经解决了问题。请参阅下面的答案
mod-wsgi ×10
python ×7
apache ×6
django ×4
flask ×1
permissions ×1
sql ×1
subprocess ×1
wsgi ×1