在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應用的基本流程,具體的應用部署可能會根據應用的不同而有所差異。