在Ubuntu上配置Python Web服務器,你可以選擇多種Web框架,如Flask、Django等。以下是使用Flask和Gunicorn作為WSGI服務器來配置一個簡單的Python Web應用程序的步驟:
安裝Python和pip: Ubuntu系統通常已經預裝了Python和pip。你可以通過運行以下命令來檢查它們的版本:
python3 --version
pip3 --version
如果沒有安裝,可以使用以下命令安裝:
sudo apt update
sudo apt install python3 python3-pip
安裝Flask: 使用pip安裝Flask:
pip3 install Flask
創建Flask應用:
創建一個新的Python文件,例如app.py
,并編寫一個簡單的Flask應用:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run(debug=True)
安裝Gunicorn: Gunicorn是一個WSGI HTTP服務器,適合部署Python Web應用程序。使用pip安裝Gunicorn:
pip3 install gunicorn
運行Flask應用:
在終端中,導航到包含app.py
的目錄,并使用Gunicorn運行應用:
gunicorn -w 4 app:app
-w 4
表示使用4個工作進程。你可以根據服務器的CPU核心數來調整這個數字。
配置Nginx作為反向代理(可選): 為了更好地處理靜態文件、負載均衡和提高安全性,你可以使用Nginx作為Gunicorn的前端代理。
安裝Nginx:
sudo apt install nginx
配置Nginx:
創建一個新的Nginx配置文件,例如/etc/nginx/sites-available/yourapp
,并添加以下內容:
server {
listen 80;
server_name yourdomain.com; # 替換為你的域名或公網IP
location / {
proxy_pass http://127.0.0.1:8000; # Gunicorn默認運行在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;
}
}
啟用配置:
創建一個到sites-enabled
的符號鏈接:
sudo ln -s /etc/nginx/sites-available/yourapp /etc/nginx/sites-enabled/
測試Nginx配置并重啟服務:
sudo nginx -t
sudo systemctl restart nginx
配置防火墻(可選): 如果你的服務器運行在云上,確保開放HTTP(80)和HTTPS(443)端口:
sudo ufw allow 'Nginx Full'
現在,你的Python Web應用程序應該可以通過互聯網訪問了。記得將yourdomain.com
替換為你的實際域名或公網IP地址。如果你打算使用HTTPS,請確保配置SSL證書并相應地更新Nginx配置。