温馨提示×

Python在Debian上的Web服务器配置

小樊
50
2025-09-23 17:11:52
栏目: 云计算

在Debian上配置Python Web服务器有多种方法,以下是两种常见的方法:使用Apache和uWSGI,或者使用Nginx和Gunicorn。

方法一:使用Apache和uWSGI

  1. 安装必要的软件包

    sudo apt update
    sudo apt install apache2 python3-pip python3-dev libapache2-mod-wsgi-py3
    
  2. 安装uWSGI

    pip3 install uwsgi
    
  3. 创建一个简单的Python Web应用: 创建一个名为app.py的文件,内容如下:

    def application(env, start_response):
        start_response('200 OK', [('Content-Type','text/html')])
        return [b"Hello World!"]
    
  4. 配置uWSGI: 创建一个名为myapp.ini的文件,内容如下:

    [uwsgi]
    module = app
    callable = application
    master = true
    processes = 5
    socket = myapp.sock
    chmod-socket = 660
    vacuum = true
    die-on-term = true
    
  5. 配置Apache: 启用mod_wsgi模块并创建一个虚拟主机配置文件:

    sudo a2enmod wsgi
    sudo nano /etc/apache2/sites-available/myapp.conf
    

    在文件中添加以下内容:

    <VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html
    
        WSGIDaemonProcess myapp python-path=/var/www/html python-home=/var/www/html/venv
        WSGIProcessGroup myapp
        WSGIScriptAlias / /var/www/html/myapp.sock|uwsgi://localhost
    
        <Directory /var/www/html>
            Require all granted
        </Directory>
    
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
    
  6. 启用虚拟主机并重启Apache

    sudo a2ensite myapp.conf
    sudo systemctl restart apache2
    

方法二:使用Nginx和Gunicorn

  1. 安装必要的软件包

    sudo apt update
    sudo apt install nginx python3-pip python3-dev
    
  2. 安装Gunicorn

    pip3 install gunicorn
    
  3. 创建一个简单的Python Web应用: 创建一个名为app.py的文件,内容如下:

    def application(env, start_response):
        start_response('200 OK', [('Content-Type','text/html')])
        return [b"Hello World!"]
    
  4. 配置Gunicorn: 在项目目录下创建一个名为gunicorn_config.py的文件,内容如下:

    bind = '127.0.0.1:8000'
    workers = 3
    
  5. 配置Nginx: 创建一个名为myapp.conf的文件,内容如下:

    server {
        listen 80;
        server_name your_server_ip_or_domain;
    
        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;
        }
    }
    
  6. 启用Nginx配置并重启Nginx

    sudo nano /etc/nginx/sites-available/myapp
    

    将上述内容粘贴到文件中,然后执行以下命令:

    sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled
    sudo nginx -t
    sudo systemctl restart nginx
    
  7. 启动Gunicorn

    gunicorn -c gunicorn_config.py app:application
    

通过以上步骤,你可以在Debian上成功配置Python Web服务器。选择适合你需求的方法进行配置即可。

0