900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Nginx反向代理部署前端Vue项目

Nginx反向代理部署前端Vue项目

时间:2021-04-24 04:32:49

相关推荐

Nginx反向代理部署前端Vue项目

对于前后端分离的项目,前端项目和后端项目需要单独部署,通常会使用SpringBoot框架开发后端项目,使用Vue框架开发前端项目;后端项目的部署较为简单,一般来说就是先打成一个Jar包上传到服务器,然后使用nohup java -jar Jar包名 &命令启动项目即可;完整部署流程可参考文章:/can_chen/article/details/107225701 而对于前端Vue项目的部署,需要使用Nginx做反向代理,原因是开发的时候我们使用的是webpack提供的proxyTable做的代理从而解决了开发环境的跨域请求问题。以下给出部署前端Vue项目的步骤:

一、安装Nginx

对于Nginx安装的详细步骤,可参考文章:/can_chen/article/details/115315341

二、前端Vue项目打包

通常来说,执行命令npm run build即可打包Vue项目,打包成功之后会在项目的根目录下生成一个dist文件夹,该文件夹下包含的就是Vue项目打包之后的静态html、css、js文件;然后将dist目录上传到服务器的某个目录下,假设我 dist目录所在的绝对路径为:/root/baker/vue-recruit/dist

注意:需要给dist目录递归修改权限,否则后面可能会出现权限不足的问题,命令为:chmod -R 777 /root/baker/vue-recruit/dist

三、配置Nginx反向代理

对于Nginx反向代理的相关配置,是在nginx.conf配置文件中配置的,我的nginx.conf配置文件所在的路径为:/usr/local/nginx/conf/nginx.conf(安装方法不同,路径可能不同),以下给出nginx.conf的基本配置示例:

server {listen 80; # 监听的端口号server_name 129.204.189.149; # 服务器的ip或者域名#charset koi8-r;#access_log logs/host.access.log main;# 前端服务反向代理配置location / {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;root /root/baker/vue-recruit/dist; # dist目录在服务器的完整路径index index.html index.htm;}# 后端服务反向代理配置location /api {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;proxy_pass http://129.204.189.149:5000/; # 后端服务所部署的服务器地址以及端口号}}

通过以上配置之后,在浏览器输入服务器的ip地址或者域名即可访问到前端Vue项目的页面,如果以上配置监听的端口号是默认的80,则可以省略,否则在访问的时候需要加上监听的端口号。

(如果修改完nginx.conf配置文件之后没有生效,则需要重启一下nginx服务器:首先进入nginx的sbin目录,执行命令./nginx -s reload

原理:基于以上的nginx反向代理配置,在浏览器输入ip地址:129.204.189.149,那么会去 /root/baker/vue-recruit/dist目录下,运行index.html文件;如果浏览器访问的地址加上 /api,说明访问的是后端接口,则实际会去访问 http://129.204.189.149:5000/ 这个路径下的接口;注意: /api 这个路径的配置需要和前端vue项目中配置的生产环境访问后端接口路径对应起来,例如:(由于端口号是80可以省略,非80则记得加上端口号)

四、可能遇到的问题

1. 403权限不足

在部署的过程中,配置完nginx反向代理服务器之后,访问ip地址或者域名,可能会出现403权限不足的问题,例如:

出现这种问题,首先应该看看第二步打包上传dist目录到服务器时,有没有给dist目录赋予777权限,如果已经赋予权限,还出现权限不足的问题,那么可以去到nginx目录下的logs/error.log查看报错日志,我遇到的报错日志如下:

出现该问题的解决方案为:在nginx.conf配置文件的第一行看看有没有 user root;默认是 “# user nobody”,把注释去掉,并且改成 “user root”就可以了,如下:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。