如何把 python 项目通过nginx 部署到外网

我写了一个简单 python 项目, 内网可以正常访问, 通过 nginx 部署到服务器上, 实现外网访问, 应该怎么配置 nginx. 内网地址是:127.0.0.1:8000 外网的 ip 是 118.89.203.79'

为了通过 Nginx 部署 Python 项目并实现外网访问,您可以使用 Nginx 作为反向代理。以下是一些步骤和示例配置:

确保 Python 项目正在运行:

在服务器上确保您的 Python 项目正在运行,并监听在 127.0.0.1:8000 上。

安装 Nginx:

如果尚未安装 Nginx,请使用以下命令进行安装:

sudo yum install nginx

创建 Nginx 配置文件:

创建一个新的 Nginx 配置文件,例如 /etc/nginx/conf.d/myproject.conf:

sudo nano /etc/nginx/conf.d/myproject.conf

在文件中添加以下配置,将其中的 server_name 替换为您的域名或服务器 IP:

server {
    listen 80;
    server_name 118.89.203.79;  # 替换为您的服务器 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;
    }

    location /static/ {
        alias /path/to/your/static/files;  # 替换为您的静态文件目录
    }

    location /media/ {
        alias /path/to/your/media/files;  # 替换为您的媒体文件目录
    }

    error_page 404 /404.html;
    location = /404.html {
        root /usr/share/nginx/html;
        internal;
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
        internal;
    }
}

请确保替换其中的占位符为您的实际值,特别是 server_name、proxy_pass、alias 部分。

检查 Nginx 配置并重新加载:

检查配置文件的语法是否正确:

sudo nginx -t

如果没有错误,重新加载 Nginx:

sudo systemctl reload nginx

现在, Python 项目应该通过 Nginx 进行反向代理,可以通过外网 IP 地址访问。确保在配置文件中根据您的实际情况进行适当的调整。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容