后端反向代理设置流程

[复制链接]
查看: 515   回复: 0

352

主题

352

帖子

2029

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2029
2025-7-22 08:43:51   显示全部楼层   阅读模式  
1.通过nginx配置找到 nginx得文件配置根目录

图片1.png

2.然后新建*.conf配置文件设置反向代理引导


图片2.png

一般nginx配置目录
/www/server/panel/vhost/nginx


3.查看监听端口口令
激活虚拟环境
source myenv/bin/activate 

端口占用口令
netstat -tunlp
重启nginx口令
nginx -s reload

4. django后端大概配置样板
server {
    listen 304;
    # 绑定IP和域名(如有域名可添加,多个用空格分隔)
    server_name 115.190.91.3; 
    
    # 根目录和索引文件(代理场景下可简化)
    root /www/wwwroot/codexf1.codexr.cn;
    index index.html index.htm;
    
    # 日志配置(区分访问和错误日志,添加时间戳)
    access_log  /www/wwwlogs/codexrBk.log  ;
    error_log   /www/wwwlogs/codexrBk.error.log  warn;  # 错误级别设为warn,避免日志过大
    
    # 代理核心配置
    location / {
        # 代理目标(后端服务地址)
        proxy_pass http://127.0.0.1:305;
        
        # 关键头信息配置(修复原配置语法错误)
        proxy_set_header Host $hostserver_port;  # 传递客户端请求的Host,而非固定127.0.0.1
        proxy_set_header X-Real-IP $remote_addr;   # 后端可获取真实客户端IP
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;  # 传递协议(http/https)
        proxy_set_header X-Forwarded-Port $server_port;
        
        # 连接与超时优化(避免后端无响应时Nginx长期等待)
        proxy_connect_timeout 30s;        # 连接后端超时
        proxy_send_timeout 60s;           # 发送请求到后端超时
        proxy_read_timeout 60s;           # 等待后端响应超时
        proxy_buffering on;               # 启用缓冲区,提升大响应处理性能
        proxy_buffer_size 16k;            # 缓冲区大小(根据业务调整)
        proxy_buffers 4 64k;              # 缓冲区数量和大小
        
        # 支持WebSocket(如果后端有WebSocket服务,需添加)
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        
        # 传递客户端IP到后端日志(可选)
        proxy_set_header REMOTE-HOST $remote_addr;
    }
    
    # 静态文件直接处理(如果根目录下有静态资源,避免代理到后端)
    location ~* \.(html|css|js|jpg|jpeg|png|gif|ico|svg|woff|woff2|ttf)$ {
        expires 30d;  # 静态资源缓存30天,减少重复请求
        add_header Cache-Control "public, max-age=2592000";
    }
    
    # 禁止访问隐藏文件(如.git、.env等,增强安全性)
    location ~ /\. {
        deny all;
        access_log off;
        log_not_found off;
    }
    
    # 错误页面配置(可选,自定义错误页面)
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
}
5.查看python进程
ps aux | grep python

6.安装gunicorn 多线程启动策略
pip install gunicorn

7.看结构树
1.png
gunicorn xiefanAdmin.wsgi:application --bind 0.0.0.0:8000
3. 配置多线程(可选,优化性能)[color=rgba(0, 0, 0, 0.85) !important]如果需要启用多线程,添加 --worker-class gthread 和 --threads 参数:
[color=rgba(0, 0, 0, 0.85) !important]
# 示例:4个工作进程,每个进程3个线程,绑定8000端口
gunicorn xiefanAdmin.wsgi:application --bind 0.0.0.0:8000 --workers 4 --worker-class gthread --threads 3
2.png



4.进程占用解决方案
3.png

sudo lsof -i :305  # 查看占用305端口的进程
# 或
sudo netstat -tulpn | grep 305
sudo kill -9 1234  # 替换1234为实际的PID
多线程启动口令
gunicorn xiefanAdmin.wsgi:application --bind 0.0.0.0:305 --workers 4 --worker-class gthread --threads 3

1.png
nohup gunicorn xiefanAdmin.wsgi:application --bind 0.0.0.0:305 --workers 4 --worker-class gthread --threads 3 &
tail -f nohup.out
ps aux | grep gunicorn
kill -9 PID

回复

使用道具 举报

您需要登录后才可以回帖   登录 立即注册

高级模式

南通谢凡软件科技有限公司