Skip to content

1.nginx 配置

如果前端部署在 Nginx 上面,可以使用 Nginx 的反向代理功能来访问后端接口。具体操作步骤如下:

在 Nginx 配置文件中添加反向代理配置:

nginx
location /api {
    proxy_pass localhost:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Proto $scheme;
}

其中,/api 是前端访问后端接口的 URL 前缀,localhost:8080 是后端接口的地址,具体根据实际情况进行修改。需要注意的是,proxy_pass 后面的地址是后端接口的地址,而不是前端打包生成的静态文件的地址。

2.前端请求接口

在前端项目中发送网络请求时,使用 Nginx 的反向代理地址来访问后端接口:

在使用 Nginx 的反向代理功能时,前端可以使用相对路径来访问后端接口,而无需使用绝对路径或者服务器的 IP 地址。因此,在前端使用 axios.get 发送网络请求时,可以直接使用相对路径,例如:

javascript
axios
  .get("/api/user")
  .then((response) => {
    console.log(response.data);
  })
  .catch((error) => {
    console.log(error);
  });

其中,/api 是前端访问后端接口的 URL 前缀,需要与 Nginx 配置文件中的一致。通过相对路径来访问后端接口,可以更加方便地维护和部署代码,同时也可以提高安全性,避免将后端接口的地址暴露给前端用户。

3.如果前后端在同一台服务器上,前端请求写 ip 还是 localhost?

在同一台服务器上,使用 localhost 访问后端接口与使用服务器的 IP 地址或者域名访问后端接口的速度是相同的,因为这些访问方式都是直接连接服务器内部的应用程序,不需要经过网络传输。因此,使用 localhost 访问后端接口与使用服务器的 IP 地址或者域名访问后端接口的速度并没有本质上的区别。 需要注意的是,在使用 Nginx 反向代理时,如果前端和后端部署在不同的服务器上,使用域名访问后端接口会比使用 IP 地址访问后端接口更快。这是因为使用域名访问时,浏览器会先进行 DNS 解析,将域名解析为 IP 地址,然后再进行网络连接。而使用 IP 地址访问时,浏览器直接进行网络连接,没有进行 DNS 解析的过程。因此,如果需要在不同服务器之间进行通信,建议使用域名访问后端接口,可以提高访问速度和可维护性。

使用域名访问后端接口的优势?

使用域名访问后端接口相比使用 IP 地址访问后端接口,主要有以下几点优势:

  1. DNS 缓存:浏览器在第一次访问某个域名时,会将域名解析为 IP 地址,并将结果缓存在本地。这样,在后续访问同一个域名时,浏览器可以直接使用缓存的 IP 地址,避免了再次进行 DNS 解析的过程,提高了访问速度。
  2. 负载均衡:在使用域名访问后端接口时,可以通过 DNS 解析将同一个域名映射到多个 IP 地址上,从而实现负载均衡。这样,每个请求都会被分配到不同的服务器上处理,避免了单个服务器负载过高的问题,提高了性能和可靠性。
  3. 隐藏 IP 地址:使用域名访问后端接口可以隐藏后端服务器的 IP 地址,从而提高了安全性。如果使用 IP 地址访问后端接口,那么攻击者可以通过暴力猜解的方式找到后端服务器的 IP 地址,并进行攻击。 总的来说,使用域名访问后端接口可以提高访问速度、性能、可靠性和安全性,是一种更加优秀的访问方式。

4.nginx 部署前端项目的好处?

1.nginx 用 proxy_pass 做反向代理可以隐藏后端端口及 ip,使其请求链接不会暴露在用户浏览器中,提高安全性

2.可以解决跨域问题,不再需要后端再进行配置