溫馨提示×

如何在CentOS上部署Python Web應用

小樊
47
2025-05-09 04:38:11
欄目: 編程語言

在CentOS上部署Python Web應用可以通過多種方式實現,以下是一個基本的步驟指南,使用Gunicorn作為WSGI服務器和Nginx作為反向代理服務器。

1. 安裝必要的軟件

首先,確保你的CentOS系統是最新的,并且已經安裝了必要的軟件包。

sudo yum update -y
sudo yum install -y python3 python3-pip git nginx

2. 創建Python虛擬環境

為了隔離你的Python應用環境,建議創建一個虛擬環境。

sudo yum install -y python3-venv
python3 -m venv myenv
source myenv/bin/activate

3. 安裝Flask(或其他Web框架)

在你的虛擬環境中安裝Flask。

pip install Flask

4. 創建一個簡單的Flask應用

創建一個簡單的Flask應用文件,例如app.py。

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello, World!"

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

5. 安裝Gunicorn

Gunicorn是一個WSGI HTTP服務器,適合用于生產環境。

pip install gunicorn

6. 啟動Gunicorn

在虛擬環境中啟動Gunicorn。

gunicorn -w 4 -b 127.0.0.1:8000 app:app

這會啟動Gunicorn,并監聽本地的8000端口。

7. 配置Nginx

編輯Nginx配置文件以將請求轉發到Gunicorn。

sudo vi /etc/nginx/conf.d/myapp.conf

添加以下內容:

server {
    listen 80;
    server_name your_server_ip_or_domain;

    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 systemctl reload nginx

8. 設置防火墻規則

確保防火墻允許HTTP和HTTPS流量。

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

9. 啟動Gunicorn服務

為了使Gunicorn在系統啟動時自動運行,可以創建一個systemd服務文件。

sudo vi /etc/systemd/system/myapp.service

添加以下內容:

[Unit]
Description=gunicorn daemon for myapp
After=network.target

[Service]
User=your_username
Group=nginx
WorkingDirectory=/path/to/your/app
ExecStart=/path/to/your/venv/bin/gunicorn -w 4 -b 127.0.0.1:8000 app:app

[Install]
WantedBy=multi-user.target

保存并退出編輯器,然后啟動并啟用該服務。

sudo systemctl start myapp
sudo systemctl enable myapp

10. 測試部署

打開瀏覽器,訪問你的服務器IP地址或域名,你應該能看到Flask應用的輸出。

通過以上步驟,你已經成功在CentOS上部署了一個Python Web應用。根據實際需求,你可能還需要配置SSL證書、數據庫連接等。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女