7 React Nginx初始化配置等

69 阅读2分钟

最新新增一些请求代理相关的问题

1. apple的写法,开发阶段,.env.development里面配置了baseURL,比如 http://www.baidu.com/
但是它引用在vite.config.ts的server代理对象里。如下面这种写法
 proxy: {
      "/allocation": {
        target: process.env.VUE_FAST_BASEURL,
        changeOrigin: true
        }
       }
 .env环境变量中的值只用在了这里,.env.production中根本也没有用到,前端上线后,服务器配置代理,根据一个路径,比如“/product”   直接转到真正的后端接口上了。
2. 我自己的测试  
vite.config.ts中配置了代理,然后在request.ts中配置baseURL, 
// 如果赋值全路径“http://www.baidu.com/”(不管是用环境变量还是字符串),proxy的代理就都不生效了
// 如果不配置 或者 配置一段比如 "/server2",代理就能正常使用
// baseURL应该是一段公共路径如 ‘/server2’,项目的代理匹配的路径可以也是它
// 以上总结算是踩坑
//

// 最新测试, 总结:
1. request的url,得是和本地服务同端口的地址,配置的代理才会起作用,比如本地是5173, 请求的地址就得是5173,代理再转发给9998(代理想要生效,就得是访问同域才行)
2. 即使dev开发代理没有生效,接口后端配置CORS,也能拿到数据
3. 生产环境,如果baseURL为全路径,打包以后,即使Nginx配置反向代理也会报 CORS err,还需要接口后端配置cors
4. 所以,还是那句话,baseURL不要配置全路径,只配置匹配代理的一段路径,Nginx只需配置反向代理,就能够拿到接口数据

Nginx

服务端相关
1. 开发环境可以baseURL用环境变量赋值全路径,再配置代理,报CORS error,再需要后端cors
 // 不用baseURL = 环境变量赋值全路径, 开发环境代理生效
2. 生产环境,Nginx服务器,不用.env.production作为 baseURL,前端项目的Nginx服务器直接设置反向代理,就能够访问到后端接口
用.env.production作为 baseURL,  Nginx即使配置了反向代理,我自己测试一个报CORS,一个正常,
// 总之, baseURL配置  生产环境变量的全路径是不对的(只有访问自己同域的接口,代理才会生效转发)
服务器地址:http://localhost:8080/
1. common+shift+G 查看隐藏目录
2. cd 到 usr local bin目录(这里都是执行文件)
## 启动命令: nginx
## 快速停止命令 nginx -s stop
## 平稳退出命令:nginx -s quit
## common+shift+G -> usr -> local -> 
bin-可执行 
etc-配置环境 
var-源代码

重新加载配置文件命令:nginx -s reload
检查配置文件正确性:nginx -t
查询nginx主进程号:ps -ef | grep nginx
正常停止:kill -QUIT 主进程号
快速停止:kill -TERM 主进程号 /kill -INT 主进程号
强制停止:kill -9 主进程号

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png