我写了一个简单 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 地址访问。确保在配置文件中根据您的实际情况进行适当的调整。