下面是在阿里云服务器上配置CentOS+Nginx+Python+Flask环境的完整攻略:
环境准备
- 选购适合的阿里云服务器,选择 CentOS 7 系统的实例。
- 配置服务器的安全组规则,开放80端口和SSH端口22。
- 登录到服务器,在终端中输入以下命令进行更新和安装:
sudo yum update
sudo yum install nginx python3 python3-devel gcc
安装和配置 Nginx
- 安装完毕后,启动并开机自启动 Nginx:
sudo systemctl start nginx
sudo systemctl enable nginx
-
确认 Nginx 是否能正常工作, 打开浏览器,访问服务器 IP,若出现“Welcome to Nginx!”则说明运行正常。
-
修改 Nginx 配置文件,将其配置为反向代理 Flask 应用(假设 Flask 应用监听在 127.0.0.1:5000 上):
sudo vim /etc/nginx/nginx.conf
- 将以下内容添加在 http 区块内:
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://127.0.0.1:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
- 输入以下命令进行 Nginx 配置文件重载:
sudo nginx -t && sudo service nginx reload
安装和配置 Python3
- 切换到 root 用户,安装 pip:
sudo su root
curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
python3 get-pip.py
rm get-pip.py
- 安装 Flask 应用所需的依赖包:
cd /your/project/directory
pip install -r requirements.txt
- 用 gunicorn 启动 Flask 应用:
gunicorn -w 4 -b 127.0.0.1:5000 yourapplication:app
注意修改 yourapplication
部分为应用主模块名字。
示例说明1:使用 Flask 搭建个人博客网站
-
使用 Flask-Blog 建立基本框架:在你选择的 Flask 目录下下载并解压缩 Flask-Blog 基础框架,安装与升级所有 package 依赖(requirements.txt)。
-
在 CentOS 7 上实现 Gunicorn 后台启动:
- 确保 Flask 项目能够正常在前台运行。
- 在前台使用 Gunicorn 测试是否可以开启 Gunicorn。
gunicorn --bind 0.0.0.0:80 --reload yourapp:app
- 后台启动 Gunicorn
nohup gunicorn --bind 0.0.0.0:80 yourapp:app &
-
愉快地访问刚刚搭好的 Flask 博客站点。
示例说明2:连接 MySQL 数据库并使用 Flask 进行 CRUD 操作
- 首先,需要在你的服务器上安装 MySQL:
sudo yum install mysql-server
- 启动 MySQL 并开启自启:
sudo systemctl start mysqld
sudo systemctl enable mysqld
- 连接 MySQL,并创建新的数据库:
mysql -u root -p
# 输入 root 的密码
CREATE DATABASE your_database_name CHARACTER SET utf8 COLLATE utf8_general_ci;
- 安装 pymysql:
pip install pymysql
- 连接 MySQL 数据库,将 CRUD 操作与数据库连接起来,编写对应的代码,实现相关功能。例如:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import pymysql
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:password@localhost:3306/your_database_name'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
db = SQLAlchemy(app)
class User(db.Model):
uid = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100), nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
def __repr__(self):
return '<User %r>' % self.username
以上代码是使用 Flask 操作 MySQL 数据库的基础代码示例,其他 CRUD 操作可根据实际需求进行实现。
以上均属于粗略的流程和步骤,需要在实际操作中进行实践和调试,具体操作中还需注意确保服务器的安全性以及数据的备份等问题。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在阿里云服务器上配置CentOS+Nginx+Python+Flask环境 - Python技术站