美文网首页
Nginx Ubuntu 下部署 vue 单页面应用实践

Nginx Ubuntu 下部署 vue 单页面应用实践

作者: czins | 来源:发表于2019-02-03 22:00 被阅读14次

一、在 Ubuntu 上安装 Nginx

sudo apt-get update

sudo apt install curl gnupg2 ca-certificates lsb-release

echo "deb http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -

sudo apt-key fingerprint ABF5BD827BD9BF62

sudo apt install nginx

// 启动 nginx 
service nginx restart // service nginx reload

至此,访问域名应该可以看到 nginx 的欢迎页了。

image.png
二、配置 nginx 的 nginx.conf,主配置文件的路径为:/etc/nginx/nginx.conf
vim /etc/nginx/nginx.conf

查看该文件包含了两个文件目录:

image.png
实际的配置文件是 /etc/nginx/sites-enabled/default
现在需要修改该文件的server节点:
修改前:
image.png
修改后:
server {
        listen 80;
        listen [::]:80;

        server_name qzsjfc.xyz; # 这里是网站的域名

        root /var/www/qzsjfc.xyz; # /vue/dist/ 打包后的dist目录

        location / {
                try_files $uri $uri/ @router; # 指向下面的 @router否则会出现 404
                index index.html index.htm;
        }

        # 对应上面的 @router,主要Vue请求并不是真实路径,无法找到文件,需要重定向到 index.html 中,然后交给路由处理
        location @router {
                rewrite ^.*$ /index.html last;
        }
}

重新加载 nginx 配置文件:

nginx -s reload

这是在访问时报错,说明生效了:

image.png
三、编译vue并上传到 /var/www/qzsjfc.xyz 目录
npm run build
image.png

编译后的 dist 目录:


image.png

上传之后,就可以访问了。
四、解决跨域问题。
Vue 开发时,设置了 proxyTable 解决跨域访问后台的问题。


image.png
当部署到 nginx 后,需要重新配置代理,将请求转发到 tomcat 上。
location /api/ {
    proxy_pass http://localhost:8080/; # 代理接口的地址,配置后请求会自动转发到 http://localhost:8080/api/ 上
}

相关文章

网友评论

      本文标题:Nginx Ubuntu 下部署 vue 单页面应用实践

      本文链接:https://www.haomeiwen.com/subject/iirusqtx.html