在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配置。