- 准备工作:更新系统和安装必要工具。
- Python 环境管理:使用
venv创建虚拟环境,这是最佳实践。 - 使用 Flask 搭建简单服务器:适合小型应用和 API。
- 使用 Django 搭建服务器:功能齐全的 Web 框架,适合大型项目。
- 部署到生产环境:使用 Gunicorn 和 Nginx,让你的服务器更稳定、更高效、更安全。
- 开机自启:使用
systemd让你的服务在服务器重启后自动运行。
第 1 步:准备工作
连接到你的 Ubuntu 服务器(例如通过 SSH),然后更新系统软件包列表并升级已安装的软件。

# 登录到你的 Ubuntu 服务器 # ssh your_username@your_server_ip # 更新包列表和升级已安装的包 sudo apt update sudo apt upgrade -y
安装一些常用的开发工具,git(用于拉取代码)、pip(Python 包管理器)和 python3-venv(用于创建虚拟环境)。
sudo apt install -y git python3-pip python3-venv
第 2 步:Python 环境管理 (虚拟环境)
为了避免项目之间的依赖冲突,并为每个项目创建一个干净、隔离的环境,我们强烈推荐使用 Python 虚拟环境。
-
创建项目目录
mkdir my_python_project cd my_python_project
-
创建虚拟环境 我们将创建一个名为
venv的文件夹来存放虚拟环境。
(图片来源网络,侵删)python3 -m venv venv
这会创建一个包含独立 Python 解释器和
pip的目录。 -
激活虚拟环境 在使用虚拟环境之前,必须先激活它,激活后,你的终端提示符前面会出现
(venv),表示你正在虚拟环境中工作。source venv/bin/activate
重要提示:之后每次你通过 SSH 登录服务器并进入此项目目录时,都需要运行
source venv/bin/activate来激活环境。 -
退出虚拟环境 当你完成工作后,可以使用以下命令退出虚拟环境。
(图片来源网络,侵删)deactivate
第 3 步:使用 Flask 搭建简单服务器
Flask 是一个轻量级的 Web 框架,非常适合快速开发和构建 API。
-
安装 Flask 确保你的虚拟环境已经激活 (
(venv)提示符可见),然后使用pip安装 Flask。pip install Flask
-
创建一个简单的 Flask 应用 创建一个名为
app.py的文件:nano app.py
将以下代码粘贴到
app.py文件中:from flask import Flask # 创建一个 Flask 应用实例 app = Flask(__name__) # 定义路由,当用户访问根 URL ('/') 时,执行 hello_world 函数 @app.route('/') def hello_world(): return '<h1>Hello from a Python Server on Ubuntu!</h1><p>This is running Flask.</p>' # 定义另一个路由 @app.route('/user/<username>') def show_user_profile(username): return f'<h1>Hello, {username}!</h1>' # 如果直接运行此脚本,则启动开发服务器 if __name__ == '__main__': # host='0.0.0.0' 表示服务器监听所有可用的网络接口, # port=5000 是 Flask 默认端口 app.run(host='0.0.0.0', port=5000) -
运行 Flask 开发服务器 在终端中,确保虚拟环境已激活,然后运行:
python app.py
你会看到类似下面的输出:
* Running on all addresses (0.0.0.0) * Running on http://127.0.0.1:5000 * Running on http://your_server_ip:5000 -
测试服务器 在你的本地电脑浏览器中,输入
http://your_server_ip:5000,你应该能看到 "Hello from a Python Server on Ubuntu!" 的字样。
注意:Flask 自带的服务器仅用于开发,不适合生产环境,它性能较低且不安全,下一步我们将把它部署到生产环境。
第 4 步:使用 Django 搭建服务器
Django 是一个功能更全面的“全能型”框架,自带了后台管理、ORM、表单处理等功能,适合构建复杂的 Web 应用。
-
安装 Django 同样,确保虚拟环境已激活。
pip install Django
-
创建一个 Django 项目 我们将创建一个名为
mywebapp的项目。django-admin startproject mywebapp cd mywebapp
-
运行 Django 开发服务器 Django 会自动创建一个
manage.py文件,我们可以用它来运行开发服务器。python manage.py runserver 0.0.0.0:8000
你会看到输出,提示服务器正在运行,并且可以通过服务器的 IP 地址和端口 8000 访问。
-
测试服务器 在浏览器中访问
http://your_server_ip:8000,你会看到 Django 的欢迎页面,表明项目已成功创建。
注意:和 Flask 一样,Django 的开发服务器也不能用于生产环境。
第 5 步:部署到生产环境 (Gunicorn + Nginx)
为了在生产环境中运行 Python 应用,我们需要一个更强大的应用服务器来处理并发请求,以及一个反向代理服务器来接收外部请求并转发给应用服务器,我们选择 Gunicorn 和 Nginx 这个黄金组合。
- Gunicorn:一个 Python WSGI HTTP 服务器,它接收来自 Nginx 的请求,并将其传递给你的 Flask 或 Django 应用。
- Nginx:一个高性能的反向代理和 Web 服务器,它负责处理静态文件(如 CSS, JS, 图片)、管理客户端连接,并将动态请求(需要 Python 处理的)转发给 Gunicorn。
1 安装 Gunicorn 和 Nginx
-
安装 Gunicorn 在你的虚拟环境中安装:
pip install gunicorn
-
安装 Nginx 使用系统的包管理器安装 Nginx:
sudo apt install -y nginx
2 配置 Gunicorn
-
Flask 应用配置 假设你的
app.py在/home/your_username/my_python_project目录下。-
启动命令:
gunicorn --bind 0.0.0.0:8000 app:app
--bind 0.0.0.0:8000:绑定到所有网络接口的 8000 端口。app:app:第一个app是app.py文件名,第二个app是 Flask 应用实例的变量名(在app.py中是app = Flask(__name__))。
-
使用配置文件:为了更好的管理,创建一个
gunicorn.conf.py文件。nano gunicorn.conf.py
内容如下:
bind = "0.0.0.0:8000" workers = 4 # 根据服务器 CPU 核心数设置,通常为 2*CPU核心数+1 worker_class = "sync" worker_connections = 1000 max_requests = 1000 max_requests_jitter = 100 preload_app = True
-
-
Django 应用配置 假设你的 Django 项目在
/home/your_username/my_python_project/mywebapp目录下。- 启动命令:
gunicorn --bind 0.0.0.0:8000 mywebapp.wsgi
mywebapp.wsgi:Django 项目的 WSGI 入口文件路径。
- 启动命令:
3 配置 Nginx
Nginx 将作为反向代理,监听 80 端口(HTTP),并将所有请求转发给 Gunicorn。
**创建 Nginx 配
