2026-04-08 07:36PM
我有一个项目,前端使用的是 react,后端使用的是 go,我的 yarn build 文件在 /tmp 文件夹下存放(注意:要记得给build文件增加权限,不然会导致页面 403 Forbidden),go 启动的端口是 8000
我想要在服务器上面部署,直接使用 ip 访问,下面是 nginx 实现的具体步骤:
1. 打开 /etc/nginx/sites-available/default 文件
$ sudo vim /etc/nginx/sites-available/default
2. 在文件里面实现
server {
listen 80;
server_name _;
# 前端目录
root /tmp/build;
index index.html;
# React 路由支持(非常关键)
location / {
try_files $uri /index.html;
}
# 后端接口代理
location /api/ {
proxy_pass http://127.0.0.1:8000/;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
3. 启动/重启 nginx
$ sudo nginx -t
$ sudo systemctl restart nginx
这样就可以了。
注意:
你的 Go 服务必须是:http.ListenAndServe(":8000", nil)
或者 Docker:docker run -d -p 8000:8000 xxx
前端请求必须这样写:fetch("/api/xxx")
不要写:fetch("http://localhost:8000/api/xxx")
否则线上直接炸~
登录
请登录后再发表评论。
评论列表:
目前还没有人发表评论