在Ubuntu上部署Python应用通常涉及以下几个步骤:
-
安装Python和pip:
sudo apt update sudo apt install python3 python3-pip
-
创建虚拟环境(推荐):
python3 -m venv myenv source myenv/bin/activate
-
安装项目依赖:
在项目目录中,使用
requirements.txt
文件安装依赖:pip install -r requirements.txt
-
上传项目文件:
将应用程序文件上传到生产服务器,确保所有的源代码文件和
requirements.txt
文件都已上传。 -
配置Nginx作为反向代理(可选):
-
安装Nginx:
sudo apt install nginx
-
配置Nginx:
编辑Nginx配置文件,通常位于
/etc/nginx/sites-available/default
,添加以下内容到配置文件中:server { listen 80; server_name your_domain_or_ip; location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host host; proxy_set_header X-Real-IP remote_addr; proxy_set_header X-Forwarded-For proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto scheme; } }
保存并退出编辑器。
-
测试Nginx配置:
sudo nginx -t
-
重新加载Nginx:
sudo systemctl reload nginx
-
-
设置系统服务(可选):
为了确保Python应用在系统重启后自动启动,可以创建一个systemd服务文件。
-
创建systemd服务文件:
sudo nano /etc/systemd/system/python-app.service
添加以下内容:
[Unit] Description=Python Application After=network.target [Service] User=your_user Group=your_group WorkingDirectory=/path/to/your/app ExecStart=/path/to/your/app/myenv/bin/python3 /path/to/your/app/app.py Restart=always [Install] WantedBy=multi-user.target
保存并退出编辑器。
-
重新加载systemd配置并启动服务:
sudo systemctl daemon-reload sudo systemctl start python-app.service sudo systemctl enable python-app.service
-
-
配置防火墙(如果需要):
sudo ufw allow 80 sudo ufw allow 8000
-
运行应用:
在项目目录中,运行以下命令启动Python应用:
python app.py
如果应用运行正常,会显示应用访问地址以及端口号。
以上步骤是在Ubuntu上部署Python应用的基本流程,具体的应用部署可能会根据应用的不同而有所差异。