如何为 mod_python 或 mod_wsgi 配置 ISPConfig 以进行类似 django 的应用程序部署?
我有一个在 Windows Server 2008 上的 IIS 7.5 中的 ISAPI 扩展下运行的 python WSGI 应用程序。我想增加工作进程的数量(我知道该怎么做)并减少每个进程的线程数(我不知道) t)。我担心我可能对 GIL 有太多的争论。
我已经看到诸如这些用于修改每个进程的线程的说明,但该设置似乎不会影响我的应用程序 - 我的 w3wp 进程仍然显示相同数量的线程。我认为这是因为该设置仅影响 ASP.NET 应用程序,而事实并非如此。
我知道我可以切换到不同的 python 运行时,例如 stackless 或 twisted。或者不同的主机,例如 Apache。或者不同的操作系统,例如 Linux。我现在负担不起这些任务,正在寻找一些短期调整。
即使我按照官方说明进行操作,当我使用 uWSGI 启动 Django 测试站点时,也不会加载管理界面的 CSS 文件。例如http://localhost:8443/static/admin/css/base.css,如果我打开 CSS 文件的 URL,则会收到 404 错误。我搜索了本地文件,我猜它的路径是/usr/local/lib/python3.3/dist-packages/django/contrib/admin/static/admin/css/base.css; 所以我也尝试以 root 身份运行 uwsgi,但没有任何改变。
我使用没有问题python3 manage.py runserver。如果我打开http://localhost:8000/static/admin/css/base.css,文件将加载到浏览器中,并将样式应用于管理页面。
这是我在 bash 中执行的命令:
uwsgi --ini ~/.uwsgi/conf/django.ini --set-placeholder project_name=mysite --set-placeholder port=8443
Run Code Online (Sandbox Code Playgroud)
这是 django.ini 的内容:
[uwsgi]
module = %(project_name).wsgi:application
https = :%(port),/usr/local/nginx/conf/server.crt,/usr/local/nginx/conf/server.key,HIGH
strict = true
chdir = /home/marco/django-projects/%(project_name)
env = DJANGO_SETTINGS_MODULE=%(project_name).settings
socket = /home/marco/.uwsgi/%(project_name).socket
pidfile = /home/marco/.uwsgi/%(project_name).pid
daemonize = /home/marco/.uwsgi/%(project_name).log
master = true
enable-threads = true
harakiri = 20
max-requests = 5000
vacuum …Run Code Online (Sandbox Code Playgroud) 我使用 nginx 作为几个 Flask 应用程序的代理,使用 uwsgi 作为中间件。这是我的测试应用程序的 nginx 配置。
server {
listen 80;
server_name test.myapp.com www.test.myapp.com;
charset utf-8;
client_max_body_size 250M;
location / { try_files $uri @testapp; }
location @testapp {
include uwsgi_params;
uwsgi_pass unix:/tmp/testapp_uwsgi.sock;
}
location /forecaster/components/ {
alias /opt/test/client/app/components/;
}
Run Code Online (Sandbox Code Playgroud)
}
Run Code Online (Sandbox Code Playgroud)
我很确定 nginx 实际上并没有为静态文件提供服务,即使我注释掉了该location块,文件也是从某些东西中获取的。我在 nginx 日志中看到了 200 个,在 uWsgi 日志中也看到了 200 个。你怎么知道哪个是服务静态文件的?我想烧瓶应用程序也可以为他们服务?
/opt/test/client/app/components/ 肯定存在,并且对其他人可读。有什么方法可以强制 uwsgi 不处理这些请求?
我想在collectd中使用Python 3解释器,但是没有(记录的)选项来设置解释器的路径或版本,并且它默认为也安装在我的系统上的Python 2解释器(位于/usr/bin/python2.7)。
我的 Python 3 解释器位于/usr/bin/python3并/usr/bin/python与其符号链接;运行“env python”和“python”都给我Python 3解释器。
Collectd 的 Python 插件的文档(不清楚,在 IMO 看来尚未完成)提到了 Python 3 :
编码名称 - 传递给collectd 的Unicode 对象的默认编码。如果省略此选项,它将在 Python 2 上默认为 ascii,在 Python 3 上默认为 utf-8。这是在 Python 中硬编码的,将忽略其他所有内容,包括您的语言环境。
但这并没有告诉我们如何实际使用 Python 3,而且 Google 似乎也不知道。
为了测试 salt-stack,我想将一个配置文件复制到另一个远程(我正在本地主机中测试 master 和 minion)
/etc/salt/minion :
master: 127.0.0.1
file_roots:
base:
- /srv/salt/base
Run Code Online (Sandbox Code Playgroud)
/etc/salt/master:
interface: 0.0.0.0
Run Code Online (Sandbox Code Playgroud)
/srv/salt 树:
# tree srv/
srv/
??? salt
? ??? base
? ??? env
? ??? envpy.template
? ??? init.sls
??? top.sls
Run Code Online (Sandbox Code Playgroud)
和模板文件:
# cat /srv/salt/base/env/envpy.template
This is a test !
Run Code Online (Sandbox Code Playgroud)
这是初始化文件:
# cat /srv/salt/base/env/init.sls
/home/myHome/env.py:
file:
- managed
- source: salt://base/env/envpy.template
Run Code Online (Sandbox Code Playgroud)
最后是顶级文件:
# cat /srv/salt/top.sls
base:
'*':
- base.env
Run Code Online (Sandbox Code Playgroud)
运行盐highstate:
# salt '*' state.highstate
myHost:
----------
ID: states
Function: no.None
Result: False
Comment: …Run Code Online (Sandbox Code Playgroud) 我正在努力从源代码编译 python 2.7.9,并被建议在这里提出这个问题。
按照此处描述的步骤安装 python 2.7.9 时,发生了以下错误:
python make: *** [libinstall] Error 1
Run Code Online (Sandbox Code Playgroud)
我尝试重新安装以前版本的python:
sudo apt-get install --reinstall python2.7-dev
Run Code Online (Sandbox Code Playgroud)
安装正常进行。但是,现在,当尝试导入 hashlib 时,我得到以下信息:
Traceback (most recent call last):
File "./server.py", line 5, in <module>
import hashlib
File "/usr/lib/python2.7/hashlib.py", line 138, in <module>
_hashlib.openssl_md_meth_names)
AttributeError: 'module' object has no attribute 'openssl_md_meth_names'
Run Code Online (Sandbox Code Playgroud)
我也无法使用pip安装任何软件包,因为提供的唯一输出是:
Traceback (most recent call last):
File "/usr/bin/pip", line 5, in <module>
from pkg_resources import load_entry_point
ImportError: No module named pkg_resources
Run Code Online (Sandbox Code Playgroud)
我安装了python-setuptools …
我有带有官方 python-2.7 墨盒的可扩展 openshift 在线应用程序。默认情况下,一切都由 mod_wsgi 处理程序提供。如何配置我的应用程序和/或 Apache 以使用 Apache 而不是 python 后端在我的存储库中提供一些静态文件(如图像、css 和 javascript)?
我正在使用 apache 网络服务器和 mod_wsgi 将请求传输到 django。
$ apache2ctl -v
Server version: Apache/2.4.10 (Raspbian)
Server built: Sep 17 2016 16:40:43
Run Code Online (Sandbox Code Playgroud)
我正在使用这个 apache 站点来声明 django 应用程序:
ServerName example.com
DocumentRoot /srv/webapps/myapp
<Directory /srv/wepapps/myapp/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess example.com python-path=/srv/webapps/myapp:/usr/local/lib/python3.4/dist-packages:/usr/lib/python3/dist-packages
WSGIProcessGroup example.com
WSGIScriptAlias / /srv/webapps/myapp/mysite/wsgi.py
LogLevel warn
ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
Run Code Online (Sandbox Code Playgroud)
它工作得很好,但如果引发异常,它会显示错误 500,但我的example.com_error.log. 如果我将设置修改为 set Debug = True,我可以在 Web 浏览器中看到错误,但在我的 /var/log/apache2 文件中也可以看到错误。但我真的不想在我的生产环境中保留这个设置。
你知道为什么我必须Debug = True允许 django 写入系统日志吗?
在此先感谢您的回答,如果我在英语方面犯了一些错误,我深表歉意;-)
在 GCP 中启动一些小型虚拟机,并认为我会给 Ubuntu 20.04 LTS 最小的尝试。执行“apt update; apt upgrade”后,我可以安装像 Apache 这样的软件包,但使用 PIP 的运气为零:
root@ubuntu-rr58:/home/me# apt install python-pip
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package python-pip
Run Code Online (Sandbox Code Playgroud)
我已经验证了 Universe、Multiverse 和 Restricted 存储库可用:
root@ubuntu-rr58:~# grep ^deb /etc/apt/sources.list
deb http://us-central1.gce.archive.ubuntu.com/ubuntu/ focal main restricted
deb http://us-central1.gce.archive.ubuntu.com/ubuntu/ focal-updates main restricted
deb http://us-central1.gce.archive.ubuntu.com/ubuntu/ focal universe
deb http://us-central1.gce.archive.ubuntu.com/ubuntu/ focal-updates universe
deb http://us-central1.gce.archive.ubuntu.com/ubuntu/ focal multiverse
deb http://us-central1.gce.archive.ubuntu.com/ubuntu/ focal-updates multiverse
deb http://us-central1.gce.archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse deb http://security.ubuntu.com/ubuntu focal-security …Run Code Online (Sandbox Code Playgroud) python ×10
apache-2.2 ×2
django ×2
uwsgi ×2
apache-2.4 ×1
apt ×1
collectd ×1
debian ×1
flask ×1
iis ×1
iis-7.5 ×1
installation ×1
isapi ×1
linux ×1
logging ×1
mod-python ×1
mod-wsgi ×1
nginx ×1
pip ×1
saltstack ×1
static-files ×1
threads ×1
ubuntu ×1
ubuntu-20.04 ×1
wsgi ×1