nginx
在/etc/nginx/nginx.conf
的http
块中添加include servers/*;
然后把你的配置文件放在servers/目录下,这样不会对原配置文件大改动
在这里配置后端代理实际上是把客户端的请求都转发到了服务器的后端端口
在浏览器中查看网络请求会发现客户端请求的是前端端口,这一过程对客户端不可见,即反向代理
server {
listen xxx;//新的端口号
server_name xxx; # 使用你的域名或服务器 IP 地址
# 前端 React 应用配置
location / {
root /dist; # React build/dist 文件夹的路径
try_files $uri /index.html; # 处理 React Router 的客户端路由
}
# 后端 API 请求代理配置
location /api/ {
proxy_pass http://localhost:xxx/; # 将 客户端的/api/ 请求转发到 Gunicorn 服务
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;
proxy_set_header Access-Control-Allow-Methods "GET, POST, OPTIONS"; #允许的请求方法
}
# 404 错误页面
error_page 404 /404.html;
location = /404.html {}
# 50x 错误页面
error_page 500 502 503 504 /50x.html;
location = /50x.html {}
}
nginx -t #检查有无语法错误
nginx -t -c #path_to_your_file
nginx -s reload #重新加载配置文件
systemctl restart nginx #重新,启动!
在生产环境中,Nginx 对静态文件(如 HTML、CSS、JavaScript)有内置的缓存和热更新机制。当你修改这些静态文件时,Nginx 通常会自动检测到变化并提供最新版本。Flask 和 Gunicorn 默认不会自动检测到代码变更。
用kill -9 pid
杀死gunicorn进程会自动重启新进程,这时候也可以用fuser -k 8000/tcp
强制释放该进程占用的端口