在 Linux 上部署 Python Web 应用有多种方法,以下是一些常见的方法:
WSGI(Web Server Gateway Interface)是 Python Web 应用与 Web 服务器之间的标准接口。常见的 WSGI 服务器有 Gunicorn、uWSGI 和 mod_wsgi 等。
安装 Gunicorn:
pip install gunicorn
部署应用:
假设你的应用文件在 /path/to/your/app
目录下,且有一个 wsgi.py
文件,你可以使用以下命令启动 Gunicorn:
gunicorn -w 4 -b 127.0.0.1:8000 wsgi:application
其中 -w 4
表示启动 4 个工作进程,-b 127.0.0.1:8000
表示绑定到本地 IP 地址和端口 8000。
安装 uWSGI:
pip install uwsgi
创建 uWSGI 配置文件(例如 myapp_uwsgi.ini
):
[uwsgi]
chdir = /path/to/your/app
module = wsgi:application
master = true
processes = 4
socket = myapp.sock
chmod-socket = 660
vacuum = true
启动 uWSGI:
uwsgi --ini myapp_uwsgi.ini
常见的反向代理服务器有 Nginx 和 Apache。
安装 Nginx:
sudo apt update
sudo apt install nginx
配置 Nginx:
编辑 Nginx 配置文件(通常位于 /etc/nginx/sites-available/
目录下),添加以下内容:
server {
listen 80;
server_name yourdomain.com;
location / {
include uwsgi_params;
uwsgi_pass unix:/path/to/your/app/myapp.sock;
}
}
启用配置:
sudo ln -s /etc/nginx/sites-available/your_site /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
安装 Apache:
sudo apt update
sudo apt install apache2 libapache2-mod-wsgi-py3
配置 Apache:
编辑 Apache 配置文件(通常位于 /etc/apache2/sites-available/
目录下),添加以下内容:
<VirtualHost *:80>
ServerName yourdomain.com
WSGIDaemonProcess yourapp processes=4 threads=2 display-name=%{GROUP} python-path=/path/to/your/app
WSGIProcessGroup yourapp
WSGIScriptAlias / /path/to/your/app/wsgi.py
<Directory /path/to/your/app>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
</VirtualHost>
启用配置:
sudo a2ensite your_site.conf
sudo systemctl restart apache2
Docker 是一个流行的应用容器化工具,可以简化部署过程。
安装 Docker:
sudo apt update
sudo apt install docker.io
创建 Dockerfile(例如 Dockerfile
):
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY . .
CMD ["gunicorn", "-w", "4", "-b", "0.0.0.0:8000", "wsgi:application"]
构建 Docker 镜像:
docker build -t yourapp .
运行 Docker 容器:
docker run -d -p 8000:8000 yourapp
通过以上方法,你可以在 Linux 上成功部署 Python Web 应用。选择哪种方法取决于你的具体需求和环境。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。