全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

VUE部署到NGINX如何访问后端

发布时间:2023-11-25 12:43:00
发布人:xqq

本文将从以下几个方面详细介绍如何将Vue部署到Nginx并访问后端:

一、配置反向代理

1、在Vue项目的config/index.js文件中添加以下代码:

module.exports = {
  dev: {
    // ...
    proxyTable: {
      '/api': {
        target: 'http://your_backend_server_ip:port',
        changeOrigin: true,
        pathRewrite: {
          '^/api': ''
        }
      }
    }
    // ...
  }
}

其中,/api为代理的路径,target为后端服务的地址。changeOrigin设置为true,则请求头中的host会设置成target的域名,即可以跨域访问。pathRewrite将/api替换成“”空字符串,例如/api/user会被替换成/user,这是Nginx需要的统一路径。

2、修改Vue项目的main.js文件(或者在某个组件中import)。添加以下代码:

import axios from 'axios'

// 设置axios的默认请求路径
axios.defaults.baseURL = '/api'

3、修改Nginx的配置文件,在location / {}中添加以下代码:

location / {
  # ...
  proxy_redirect off;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Host $http_host;
  proxy_pass http://your_backend_server_ip:port;
}

其中,设置proxy_pass为后端服务所在的地址。修改完毕后重启Nginx服务。

二、CORS跨域访问

1、在Nginx配置文件中添加以下代码:

add_header 'Access-Control-Allow-Origin' *;
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE';
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type, Range';
add_header 'Access-Control-Allow-Credentials' 'true';

2、在后端服务的响应头中添加以下代码:

Access-Control-Allow-Origin: *

3、在前端代码中使用axios发送请求时,设置withCredentials为true。以下是示例代码:

axios.get('/user', {
  withCredentials: true
})

三、HTTPS协议

1、购买SSL证书并发布到Nginx服务器上。

2、在Nginx配置文件中添加以下代码:

server {
  listen 443 ssl;
  server_name your_domain_name;
  ssl_certificate /path/to/your_domain_name.crt;
  ssl_certificate_key /path/to/your_domain_name.key;
  location / {
    # ...
  }
}

其中,your_domain_name为域名,/path/to/your_domain_name.crt和/path/to/your_domain_name.key为SSL证书与私钥的路径。

四、Nginx的负载均衡

在Nginx的配置文件中添加以下代码:

upstream backend_servers {
  server your_backend_server1_ip:port;
  server your_backend_server2_ip:port;
  server your_backend_server3_ip:port;
}
server {
  listen 80;
  server_name your_domain_name;
  location / {
    proxy_pass http://backend_servers;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

其中,backend_servers为后端服务器组名,包含多个后端服务器。我们将所有的后端服务器组织成一个组,然后按照一定的策略进行分发,实现负载均衡的目的。

五、Nginx的缓存

在Nginx的配置文件中添加以下代码:

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m;
server {
  listen 80;
  server_name your_domain_name;
  location / {
    proxy_cache my_cache;
    proxy_cache_valid 200 304 12h;
    proxy_cache_valid 301 1d;
    proxy_cache_valid 404 1m;
    proxy_cache_bypass $http_pragma;
    proxy_cache_revalidate on;
  }
}

其中,将缓存存储到/var/cache/nginx目录下,my_cache为缓存的名称,10m为缓存的大小。在location / {}中对缓存进行设置,例如:

proxy_cache_valid 200 304 12h:设置2XX和3XX状态码的响应缓存有效期为12小时。 proxy_cache_valid 301 1d:设置301状态码的响应缓存有效期为1天。 proxy_cache_bypass $http_pragma:根据请求头判断是否需要使用缓存。 proxy_cache_revalidate on:不使用缓存验证。
vue部署到nginx如何访问后端

相关文章

DR4.5未经正确签署引发的法律风险

DR4.5未经正确签署引发的法律风险

2023-11-25
unix系统与linux系统版本,unix和linux操作系统各有什么特点和联系

unix系统与linux系统版本,unix和linux操作系统各有什么特点和联系

2023-11-25
从多个方面用法介绍FFmpeg抽帧

从多个方面用法介绍FFmpeg抽帧

2023-11-25
Mybatis Limit用法详解

Mybatis Limit用法详解

2023-11-25

最新文章

武汉新媒体行业公司排名

武汉新媒体行业公司排名

2023-11-01
武汉新媒体就业现状好吗

武汉新媒体就业现状好吗

2023-11-01
武汉全媒体行业发展现状及趋势

武汉全媒体行业发展现状及趋势

2023-10-31
武汉全媒体现状

武汉全媒体现状

2023-10-31