关于部署vue项目在Linux上的两种方式tomcat以及nignx(3)使用nignx进行部署

这篇具有很好参考价值的文章主要介绍了关于部署vue项目在Linux上的两种方式tomcat以及nignx(3)使用nignx进行部署。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

阿丹有话说:

        前两篇文章主要讲解了将vue中tomcat部署研究了。解决了在后台代码中通过过滤器来解决跨域问题。后期会继续出在tomcat中的代理配置等。本篇文章来将vue项目部署在nignx上,并且通过反向代理来解决跨域请求以及请求转发。

linux部署vue项目,vue,阿丹服务器配置,vue.js,前端,javascript,linux,服务器

使用nginx来部署vue项目

 首先我们再来了解一下nginx

        Nginx是一款高性能、高可靠性的反向代理服务器,它可以作为HTTP服务器、负载均衡器以及邮件代理,在Web服务器领域得到广泛应用。Nginx有着优秀的多进程架构,支持异步非阻塞I/O模型,同时占用内存少,响应速度快,对于高并发量的网络环境有着较好的适应性。 Nginx的配置简单易懂,可扩展性强,在大型网站中极其受欢迎。它可以处理静态资源的请求,但更为重要的是,它可以缓存请求和加速静态内容的传输。Nginx还支持各种标准的Web服务协议,包括HTTP、HTTPS、SMTP和POP3等。总的来说,Nginx是一款开源、高性能、灵活、稳定的Web服务器软件,适用于各种规模的网站和Web应用程序。

主要配置思路

1、将vue项目打包(如何打包查看关于部署vue项目在Linux上的两种方式tomcat以及nignx(1)使用tomcat进行部署_艺舟先生的博客-CSDN博客)

2、将打包好的dist文件夹上传到nginx文件夹中的html文件夹下面。

3、找到nginx的配置文件,在conf下的nginx.conf配置文件中写相关的配置文件。

首先先确保你的服务器上安装了nginx,(后期阿丹会附上链接)。使用指令

whereis nginx

 linux部署vue项目,vue,阿丹服务器配置,vue.js,前端,javascript,linux,服务器

 会返回给你nginx的位置。

找到你对应nginx的项目存放文件夹

路径是在上面的返回值上加上html.展示一下文件夹的关系。

linux部署vue项目,vue,阿丹服务器配置,vue.js,前端,javascript,linux,服务器

 linux部署vue项目,vue,阿丹服务器配置,vue.js,前端,javascript,linux,服务器

这里的dist就是我上传的文件夹。

 超级重点!开始更改配置文件!

阿丹贴士:

        个人感觉修改nginx的配置文件是上传部署nginx的重点。

默认配置文件:


#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost:8080;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
	    proxy_pass http://127.0.0.1:8080;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

 对配置文件重点进行解读:

        linux部署vue项目,vue,阿丹服务器配置,vue.js,前端,javascript,linux,服务器

server这个模块是我们要配置的重点。

这个配置文件也是一个Nginx的服务器块(Server Block)。这个块定义了服务器监听的端口、服务器名称、请求的资源和如何处理请求。

首先是“listen 80”,它指示Nginx监听本地主机的80端口。而“server_name localhost:8080”则定义了服务器名称。这个名称包含了端口号,表示只有当请求的主机名为localhost且端口号为8080时才能匹配。

location块定义了如何处理路径中的请求。location /代表服务器的根路径的请求,root html意味着在Nginx中,它是服务器物理路径下的html。proxy_pass指令里是要代理的目标URL,通常为上游服务器。该配置中,它是将请求发送到“http://127.0.0.1:8080”,即代理的上游服务。

该配置文件解读让我们可以了解到如何通过Nginx实现反向代理,将发送到Nginx的请求转发到其他Web服务器或应用程序,以提高Web应用程序的可伸缩性和性能。同时,这个配置也展示了如何在Nginx中使用根路径、代理传输和索引文件的相关指令以处理请求。

 所以我们要使用nginx来反向代理我们的vue项目的时候就需要配置和我们vue项目对应的反向代理

nginx需要完成操作

 在后端已经写好过滤器允许跨域访问的情况下。可以参考这篇文章中写过滤器写法。

关于部署vue项目在Linux上的两种方式tomcat以及nignx(2)使用tomcat进行部署(1)解决上篇tomcat部署中问题_艺舟先生的博客-CSDN博客

现在需要nginx完成,监听服务器上的端口号对应的我们的项目。当这个端口号发送以“前台设置代理字段”为路径发送请求的时候。nginx就会拦截这个请求,并重写路径,并将他转发到我们处理请求的路径下,这样就能完成反向代理来隐藏我们的请求路径。

阿丹的前端项目接口介绍

linux部署vue项目,vue,阿丹服务器配置,vue.js,前端,javascript,linux,服务器

能看到我前端发送的请求都是使用了/api这个公共的路径。

那么我们就需要在nginx中设置监听有/api的请求路径,并将请求重写。

阿丹nginx的配置文件

给大家提供一下阿丹写好的配置文件,通过测试配置文件。

提供一些大家可能会用到的指令nginx

nginx -t

用于测试Nginx的配置文件是否正确,若正确则输出配置文件中加载的模块信息和语法规范。

nginx

 用于启动Nginx服务器,执行此命令后Nginx开始监听并处理来自客户端的请求。

nginx -s stop

 用于停止Nginx服务器,执行此命令后Nginx将解除绑定该端口并且停止处理来自客户端的请求

nginx -s reload

 用于重载配置文件,执行此命令后Nginx将会重新读取配置文件,重新载入新的配置,同时继续处理来自客户端的请求。

nginx -s quit

 用于优雅的关闭Nginx服务器,执行此命令后Nginx将处理完当前正在处理的请求后,再关闭服务。

如果在运行的时候报错,nginx显示他监听的端口号已经被占用了,那么使用一下我提供的指令查看对应的使用该端口号的进行然后使用kill来结束杀死,在尝试重启ngingx就可以了。

 使用lsof命令。lsof是一款常用的系统级别命令,可以列出系统打开文件管理表信息。可以使用以下命令查看指定端口上运行的进程:

lsof -i :<端口号>

 使用netstat命令。netstat是Unix/Linux系统的一个命令行工具,用于显示各种网络相关信息。以下命令可以查看指定端口号的运行进程:

netstat -lnp | grep <端口号>

 以上两种方法都可以用来查找指定端口上运行的进程。如果要终止指定端口号的进程,可以使用kill命令,并使用PID进行杀死。例如:

kill <PID>

指令注意:

这些命令可以在终端中执行,一般的,Nginx的可执行文件路径位于/usr/sbin/nginx或者/usr/local/nginx/sbin/nginx,具体路径需要根据安装的位置来定。同时,需要注意,在执行停止和重启操作之前,确保Nginx已经启动,可以使用ps命令或者systemctl status nginx命令来检查Nginx是否已经在运行中,以确保执行正确的操作。

阿丹会给大家提供讲解。

   server {
        listen       10001;
        server_name  XXX.XXX.XXXX:10001;#运行该项目的ip地址

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html/dist;
            index  index.html index.htm;
        }

    #监听如果有/api的请求路径。开始反向代理
        location /api {
            root   html;
	    proxy_pass http://XXX.XXX.XXXX;
	 fastcgi_pass   XXX.XXX.XXXX:10001;
            index  index.html index.htm;
        }

关键字段解释:

        root   html/dist;

#访问10001端口号时首页面,因为之前我们将vue打包好后,index.html页面在dist文件夹下面,并且我们将dist文件夹上传到了html文件夹中,这个字段指定了首页

         proxy_pass http://XXX.XXX.XXXX 后面是我们的后台服务器的IP地址

这行代码的意思是将当前请求转发到http://XXX.XXX.XXXX。
它是在Nginx中使用代理服务器的一个重要指令。
通常情况下,该命令将很有用,因为它可以将接收到的客户端请求代理到远程Web应用程序服务器上。
这是在Web应用程序中实现完全分离的常见模式,因为代理服务器可以为Web应用程序WEB服务器处理负载均衡,
同时提高系统的安全性和可伸缩性。
当Nginx接收到请求并被配置为使用proxy_pass来转发请求时,它将这些请求内容发送到所定义的URL地址上,
接收响应并将其发送回给客户端浏览器。

fastcgi_pass XXX.XXX.XXXX:10001

这行代码的意思是将当前请求以FastCGI协议的方式转发到IP地址为XXX.XXX.XXXX,端口号为10001的FastCGI服务器上处理。当Nginx接收到请求并且FastCGI服务器已经启动时,它将这些请求分派到FastCGI服务器,FastCGI服务器将其处理并将结果返回给Nginx。FastCGI是比CGI更高效的协议,它提供了一种通用接口,允许Web服务器代理请求并将它们传递给后端Web应用程序。这种代理模式称为FastCGI代理。

解释一下为什么是10001,是因为后台写的代码的网关的端口号是10001,具体要根据自己后台端口号来进行更改。

最后:一定要注意在使用的时候开放自己的对应端口号!文章来源地址https://www.toymoban.com/news/detail-759116.html

到了这里,关于关于部署vue项目在Linux上的两种方式tomcat以及nignx(3)使用nignx进行部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 学习笔记230810--vue项目中get请求的两种传参方式

    问题描述 今天写了一个对象方式传参的get请求接口方法,发现没有载荷,ip地址也没有带查询字符串,数据也没有响应。 代码展示 错误分析 实际上这里的 query 是对象方式带参跳转的参数名,而get方法对象方式传参的参数名是parmas 解决方法 get请求有两种带参的方式 方式1 :

    2024年02月10日
    浏览(44)
  • 数据交互系列:简述vue项目中的两种请求方式(axios和vueResource)

    今天学习了vue的两种发送请求的方式,vueResource和axios,比较了两种方式的使用 VueResource模块发送请求 1. VueResource概述 VueJS的生态圈除了VueRouter之外,还有很多的插件,在网络请求中,vue是借助于vue-resource模块来进行异步请求,跨域请求。 vue-resource是Vue.js的一款插件,它可以

    2024年02月02日
    浏览(47)
  • vue2创建项目的两种方式,配置路由vue-router,引入element-ui

    提示:vue2依赖node版本8.0以上 使用@vue/cli脚手架vue create创建 使用vue-cli脚手架vue init webpack创建 1、查看nodejs版本 2、全局安装vue脚手架和webpack脚手架 3、新建vue2项目 创建选项除了,Install vue-router??选择是,其他选择的否 4、安装依赖并启动文件 5、预览 6、目录结构 1、如果安

    2024年04月14日
    浏览(43)
  • 关于windows自带的两种远程访问方式

    实验环境:两台非家庭版的windows系统(我使用的win7和xp系统),在同一网段下 关于windows的两种远程访问方式:         1、将普通用户添加到远程桌面服务组(Remote Desktop Users组,该组账户专门用于为远程访问提供服务)         2、 telnet为用户提供命令行远程访问权限 使

    2024年02月07日
    浏览(32)
  • 关于axios的两种拦截方式:请求拦截和响应拦截

    提示:这里可以添加本文要记录的大概内容: 提示:以下是本篇文章正文内容,下面案例可供参考 axios.interceptors.request.use() 请求拦截 axios.interceptors.request.use( function ( config ) { return config }) 这个方法的参数是一个函数,发送请求之前就会执行这个函数,函数里面的参数就是执

    2024年01月24日
    浏览(41)
  • vue实现导出excel的两种方式

    通过vue实现导出有两种方式: (1)后端返回的是一个地址,直接拼接打开下载就行 (2)后端返回的是文件流的形式,这个时候就需要在请求头还有返回值的地方设置一下 (1)设置请求头 (2)设置返回结果,处理返回我文件流 (3)附加说明 有的时候做到上述几步还是不

    2024年02月12日
    浏览(51)
  • SpringBoot项目模块间通信的两种方式

    说明:在微服务架构开发中,一个请求是通过模块之间的互相通信来完成的,如下面这个场景: 创建两个子模块:订单模块(端口8081)、用户模块(端口8082),两个模块之间没有联系,现在需要查询订单,根据订单中的用户ID,查询该订单对应的用户信息。 (两个模块是独

    2024年02月15日
    浏览(46)
  • Vue中强制更新数据的两种方式

    有时候我们发现修改了数据源后视图并没有更新,这里提供两种解决方案 Vue中强制更新数据的方法有两种。 方法一: 使用forceUpdate强制渲染,更新视图和数据。 注:全局强制刷新,性能消耗高。 方法二: this.$set()方法是Vue自带的可对数组和对象进行赋值,并触发监听的方法

    2024年02月11日
    浏览(54)
  • vue前端实现上传文件的两种方式

    1.使用form表单的形式 第一种方式就是使用FormData的方式进行上传 html代码: JS代码: 2.使用element-ui的el-upload的方式进行上传 这里我是根据需求封装了一个组件

    2024年02月11日
    浏览(44)
  • vue 生成二维码的两种方式

    方式一:qrcode(无 icon 图标) 完整代码 方式二:vue-qr(有 icon 图标) 官网地址:vue-qr - npm import 引入方式 完整代码 相关配置属性 属性名 含义 text 编码内容 correctLevel 容错级别(0 - 3) size 尺寸,长宽一致, 包含外边距 margin 二维码图像的外边距,默认 20px colorDark 实点的颜色

    2024年02月15日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包