Linux环境部署Python Web服务

在这里插入图片描述

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

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

1. 准备环境

安装 Python

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

sudo yum update
sudo yum install python3 python3-pip

安装必要的库

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

pip3 install flask  # 如果你使用的是 Flask
pip3 install django  # 如果你使用的是 Django

2. 编写 API 代码

Flask 示例

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

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:

django-admin startproject myproject
cd myproject
django-admin startapp myapp

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

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

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

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. 方式一——直接启动

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

python main.py 或者 nohup python main.py
Django 示例:

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

python manage.py runserver 0.0.0.0:8000

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

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

安装 Gunicorn

安装 Gunicorn:

pip3 install gunicorn

运行 Flask 应用

使用 Gunicorn 运行 Flask 应用:

gunicorn --bind 0.0.0.0:8000 app:app

运行 Django 应用

使用 Gunicorn 运行 Django 应用:

gunicorn --bind 0.0.0.0:8000 myproject.wsgi:application

5. 使用 Nginx 作为反向代理

安装 Nginx

安装 Nginx:

sudo yum install nginx

配置 Nginx

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

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 配置:

sudo systemctl restart nginx

6. 使用 Systemd 管理 Gunicorn

创建 Systemd 服务文件

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

sudo vim /etc/systemd/system/myproject.service

添加服务配置

Flask 应用
[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 行改为:

ExecStart=/usr/bin/gunicorn --workers 3 --bind unix:myproject.sock -m 007 myproject.wsgi:application

启动并启用服务

启动并启用服务:

sudo systemctl start myproject
sudo systemctl enable myproject

7. 检查服务状态

确保服务正在运行:

sudo systemctl status myproject

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

相关推荐

  1. Linux 环境部署RabbitMQ

    2024-07-12 05:34:04       57 阅读
  2. linux环境部署

    2024-07-12 05:34:04       41 阅读
  3. Linux环境部署MySQL

    2024-07-12 05:34:04       27 阅读
  4. Linux部署FTP服务

    2024-07-12 05:34:04       18 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 05:34:04       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 05:34:04       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 05:34:04       57 阅读
  4. Python语言-面向对象

    2024-07-12 05:34:04       68 阅读

热门阅读

  1. 漏侧bug解决策略

    2024-07-12 05:34:04       22 阅读
  2. C++开篇

    2024-07-12 05:34:04       28 阅读
  3. python图形用户界面和游戏开发_day010

    2024-07-12 05:34:04       26 阅读
  4. v-bind指令——03

    2024-07-12 05:34:04       27 阅读
  5. 【C++】CMake入门

    2024-07-12 05:34:04       22 阅读
  6. C# - 异步编程和同步编程总结

    2024-07-12 05:34:04       25 阅读
  7. 微服务中的 “服务发现机制” 简介

    2024-07-12 05:34:04       24 阅读
  8. Vuetify3 + Nuxt3:跳转详情

    2024-07-12 05:34:04       23 阅读
  9. Django ORM中ExpressionWrapper的用途

    2024-07-12 05:34:04       21 阅读
  10. 【算法】反转链表

    2024-07-12 05:34:04       26 阅读
  11. NoSQL之REDIS配置与优化

    2024-07-12 05:34:04       20 阅读
  12. 阿里云API安全2.0全新发布

    2024-07-12 05:34:04       24 阅读