我有个linux的虚拟主机,我想运行django网站,怎么办?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我有个linux的虚拟主机,我想运行django网站,怎么办?相关的知识,希望对你有一定的参考价值。
服务器是apache的,在网站的目录下有cgi-bin目录,官方说可以运行.py文件,其实我想在里面运行个django网站,但客服说不支持,哪位高手可以指点下,还有其他的办法吗
我以前在Windows下配置过mod_python方法运行django,但是在虚拟主机上运行不太现实,那个是可以自己单独上传个django,我在想这个我能单独上传个django吗,然后使用吗?
1 在终端进入django项目的文件夹,是有manage.py的那个目录
2 然后运行 python manage.py runserver
就可以跑起来了 参考技术A 我是linux主机,我这样在本地运行django
1 在终端进入django项目的文件夹,是有manage.py的那个目录
2 然后运行 python manage.py runserver
就可以跑起来了 参考技术B 我们没有linux的,华夏名网大多数是linux主机
使用 Docker 创建缓慢的 django 模型实例
【中文标题】使用 Docker 创建缓慢的 django 模型实例【英文标题】:Slow django model instance creation with Docker 【发布时间】:2017-06-27 10:32:59 【问题描述】:我有一些模型的 django 应用程序。我有manage.py
命令创建n
模型并将其保存到数据库。它在我的主机上运行速度不错。
但如果我在 docker 中运行它,它运行速度非常慢,在 40-50 秒内创建并保存了 1 个实例。我想我在 Docker 的工作原理上遗漏了一些东西,有人能指出为什么性能低,我能用它做什么吗?
docker-compose.yml:
version: '2'
services:
db:
restart: always
image: "postgres:9.6"
ports:
- "5432:5432"
volumes:
- /usr/local/var/postgres:/var/lib/postgresql
environment:
- POSTGRES_PASSWORD=postgres
- POSTGRES_DB=my_db
- POSTGRES_USER=postgres
web:
build: .
command: bash -c "./wait-for-it.sh db:5432 --timeout=15; python manage.py migrate; python manage.py runserver 0.0.0.0:8000; python manage.py mock 5"
ports:
- "8000:8000"
expose:
- "8000"
depends_on:
- db
用于网络服务的dockerfile:
FROM python:3.6
ENV PYTHONBUFFERED 1
ADD . .
WORKDIR .
RUN pip install -r requirements.txt
RUN chmod +x wait-for-it.sh
【问题讨论】:
您是在服务器/VM 上执行此操作吗?试过在没有 docker 的同一台机器上做吗? @lorenzvth7 在本地机器 (mac) 上使用最大计算资源执行此操作。在没有 docker 的情况下执行此操作要快得多。 【参考方案1】:这里的问题很可能是您在 Mac 上使用的卷 /usr/local/var/postgres:/var/lib/postgresql
。据我了解 Docker for Mac 解决方案,它使用文件共享来实现主机卷,这比本地文件系统访问要慢很多。
一种可能的解决方法是使用 docker 卷而不是主机卷。这是一个例子:
version: '2'
volumes:
postgres_data:
services:
db:
restart: always
image: "postgres:9.6"
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql
environment:
- POSTGRES_PASSWORD=postgres
- POSTGRES_DB=my_db
- POSTGRES_USER=postgres
web:
build: .
command: bash -c "./wait-for-it.sh db:5432 --timeout=15; python manage.py migrate; python manage.py runserver 0.0.0.0:8000; python manage.py mock 5"
ports:
- "8000:8000"
expose:
- "8000"
depends_on:
- db
请注意,这可能会使 postgres 数据的管理复杂化,因为您不能简单地从 Mac 访问数据。您只能使用 docker CLI 或容器来访问、修改和备份这些数据。另外,我不确定如果你从 Mac 上卸载 Docker 会发生什么,可能是你丢失了这些数据。
【讨论】:
卸载 docker 不会丢失数据。我有一个用于 postgres+django 的音量集,效果很好【参考方案2】:两件事,可能是一个可能的原因:
-
启动 docker 容器需要一些时间,因此如果您为每个实例启动新容器,这可能会累加。
您使用什么存储驱动程序? Docker(通常)默认为设备映射器环回存储驱动程序,这是慢。这里是some context。这将是痛苦的,尤其是如果您经常启动此容器。
除此之外,您的配置看起来很合理,并且那里没有明显的原因问题。因此,如果上述两点不适用于您,请添加一些额外的 cmets --- 就像您实际添加这些模型实例的方式一样。
【讨论】:
以上是关于我有个linux的虚拟主机,我想运行django网站,怎么办?的主要内容,如果未能解决你的问题,请参考以下文章