Linux环境部署Python Web服务

"姑娘,再见面就要靠运气了,可别装作不认识,那句"好久不见"可干万别打颤..."

将使用 Python 编写的后端 API 部署到 Linux 环境中,可以按照以下详细步骤操作。本文将涵盖环境准备、API 编写、使用 Gunicorn 作为 WSGI 服务器、配置 Nginx 作为反向代理以及使用 Systemd 管理服务。

1. 准备环境

安装 Python

如果你的 Linux 系统上还没有安装 Python,可以使用以下命令进行安装:

sh 复制代码
sudo yum update
sudo yum install python3 python3-pip

安装必要的库

假设你使用的是 Flask 或 Django 框架,先安装所需的库:

python 复制代码
pip3 install flask  # 如果你使用的是 Flask
pip3 install django  # 如果你使用的是 Django

2. 编写 API 代码

Flask 示例

创建一个简单的 Flask API 示例:

python 复制代码
from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/api', methods=['GET'])
def api():
    return jsonify({'message': 'Hello, World!'})

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

Django 示例

创建一个新的 Django 项目并添加 API:

sh 复制代码
django-admin startproject myproject
cd myproject
django-admin startapp myapp

myapp/views.py 中添加 API 视图:

python 复制代码
from django.http import JsonResponse
def api(request):
    return JsonResponse({'message': 'Hello, World!'})

myproject/urls.py 中配置 URL 路由:

python 复制代码
from django.contrib import admin
from django.urls import path
from myapp.views import api

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/', api),
]

3. 方式一------直接启动

想在开发或测试环境中快速启动应用,可以直接运行:

bash 复制代码
python main.py 或者 nohup python main.py
Django 示例:

Django 有自己的开发服务器,你可以用以下命令启动:

bash 复制代码
python manage.py runserver 0.0.0.0:8000

生产环境推荐使用 Gunicorn ,为了在生产环境中确保应用的性能和稳定性,建议你使用 Gunicorn ,Gunicorn 作为应用服务器,处理 Python 代码的执行和多进程管理。

4.方式二------ 配置 Gunicorn(生产环境的 WSGI 服务器)

安装 Gunicorn

安装 Gunicorn:

sh 复制代码
pip3 install gunicorn

运行 Flask 应用

使用 Gunicorn 运行 Flask 应用:

sh 复制代码
gunicorn --bind 0.0.0.0:8000 app:app

运行 Django 应用

使用 Gunicorn 运行 Django 应用:

sh 复制代码
gunicorn --bind 0.0.0.0:8000 myproject.wsgi:application

5. 使用 Nginx 作为反向代理

安装 Nginx

安装 Nginx:

sh 复制代码
sudo yum install nginx

配置 Nginx

编辑配置文件 /etc/nginx/sites-available/default

sh 复制代码
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 配置:

sh 复制代码
sudo systemctl restart nginx

6. 使用 Systemd 管理 Gunicorn

创建 Systemd 服务文件

创建一个新的 Systemd 服务文件:

sh 复制代码
sudo vim /etc/systemd/system/myproject.service

添加服务配置

Flask 应用
sh 复制代码
[Unit]
Description=Gunicorn instance to serve myproject
After=network.target

[Service]
User=your_user
Group=www-data
WorkingDirectory=/path/to/your/project
ExecStart=/usr/bin/gunicorn --workers 3 --bind unix:myproject.sock -m 007 app:app

[Install]
WantedBy=multi-user.target
Django 应用

ExecStart 行改为:

sh 复制代码
ExecStart=/usr/bin/gunicorn --workers 3 --bind unix:myproject.sock -m 007 myproject.wsgi:application

启动并启用服务

启动并启用服务:

sh 复制代码
sudo systemctl start myproject
sudo systemctl enable myproject

7. 检查服务状态

确保服务正在运行:

sh 复制代码
sudo systemctl status myproject

这样,你的 Python API 就成功部署到 Linux 环境中了。你可以根据需要调整配置,以适应具体的项目需求。希望这篇详细的指南对你有所帮助!

相关推荐
粉末的沉淀16 分钟前
css:制作带边框的气泡框
前端·javascript·css
w***488217 分钟前
Linux安装redis
linux·运维·redis
门框研究员1 小时前
解锁Python的强大能力:深入理解描述符
python
N***73852 小时前
Vue网络编程详解
前端·javascript·vue.js
e***71672 小时前
Spring Boot项目接收前端参数的11种方式
前端·spring boot·后端
程序猿小蒜2 小时前
基于springboot的的学生干部管理系统开发与设计
java·前端·spring boot·后端·spring
银空飞羽2 小时前
让Trae CN SOLO自主发挥,看看能做出一个什么样的项目
前端·人工智能·trae
python百炼成钢2 小时前
28.嵌入式 Linux LED 驱动开发实验
linux·运维·驱动开发
子不语1802 小时前
Python——函数
开发语言·python
daidaidaiyu2 小时前
一文入门 LangChain 开发
python·ai