linux 前后端项目分离部署

1 前端vue项目打包部署:

1.1 vue项目打包

前端项目用vscode进行开发,项目整体目录如下

在config目录下的配置文件中配置好后端服务器的ip地址和端口;

在终端输入npm run build,系统会自动生成一个dist的文件夹,这就是打包后所需的项目文件;

把dist文件夹放在linux服务器上,路径要与nginx配置的路径一致。

1.2 安装并配置nginx

(1)下载nginx安装包:

wget http://nginx.org/download/nginx-1.21.4.tar.gz

(2)解压缩:

tar -zvxf nginx-1.21.4.tar.gz

(3)修改nginx配置:

vi /data/soft/nginx-1.21.4/conf/nginx.conf

nginx.config具体内容如下:

#user  nobody;
worker_processes  1;  #nginx进程数,建议按照cpu数目来指定,一般为它的倍数。
​
events {
    worker_connections  1024;  #单个后台worker process进程的最大并发链接数  
}
​
​
http {
    include       mime.types;   #设定mime类型,类型由mime.type文件定义  
    default_type  application/octet-stream;
​
    #sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,
    #对于普通应用,必须设为 on,
    #如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,
    #以平衡磁盘与网络I/O处理速度,降低系统的uptime
    sendfile  on;
    keepalive_timeout  65;  #用于设置客户端连接保持活动的超时时间,在超过这个时间之后服务器会关闭该链接。
    
    server {
        listen       9999;  #server全局快配置监听和服务
        server_name  192.168.20.188;  #说明该服务器的ip,server_name可直接注释掉
​
        location / {    #localtion块,配置自己的代理(这里是代理前端页面的路径)
            root   /data/front;   #站点根目录,可以是相对路径,也可以使绝对路径
            index  index.html index.htm; #默认主页
            add_header Cache-Contro no-store;
            add_header Access-Control-Allow-Origin *;
        }
        
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
​
        location /api/ {     #这里是转发后端接口的路径
                    proxy_connect_timeout 600;  #默认主页
                    proxy_read_timeout 600;
                    proxy_send_timeout 600;
​
                    # 后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
                    proxy_set_header Host $http_host;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_set_header X-Forwarded-Proto $scheme;
​
                    #反向代理配置
                    proxy_pass http://127.0.0.1:10020/gz-master/;  
        }
    }
}

如果当前用http://192.168.20.188:9999/api/getName进行访问,则会被代理到

http://127.0.0.1:10020/gz-master/getName这个url上。

注意:如果proxy_pass配置的地址漏了最后的 “ / ”,则会被代理到http://192.168.20.188:9999/gz-mastergetName,此时就会访问失败。

(4)启动nginx服务器:

cd /data/soft/nginx-1.21.4/sbin
./nginx

注意:./表示执行当前目录下的nginx文件,并且只能用于执行拥有执行权限的文件。

(5)查看运行状态(可查看nginx的进程号):

ps -ef | grep nginx

执行ps -ef命令显示内容如下:

显示内容说明:

 

扩展:nginx其余常用命令

1)停止nginx

./nginx –s stop

2)修改配置后重启nginx服务器

./nginx -s reload

3)检查配置文件是否正确

./nginx –t

4)强制停止Nginx服务器

kill -9 进程号 

2 后端部署

2.1 后端jar包部署

前提:jdk环境已部署

后端打包的jar放置在Linux服务器的/data/project上,在该目录下创建保存日志的文件。

cd /data/project
rz  #回车,选择本地上传的文件点确定上传文件

启动程序,存放日志的不同操作:

(1)存放在默认的日志文件内

touch nohup.out                     #创建文件nohup.out保存日志
nohup java -jar GzMaster.jar &      #启动程序,日志默认写到nohup.out文件
tail -f nohup.out                   #查看日志

(2)存放在指定的日志文件内

touch output.log                                    #创建文件output.log保存日志
nohup java -jar GzMaster.jar >> output.log 2>&1 &   #启动程序,日志写到指定的output.log文件中
tail -f output.log                                  #查看日志

退出查看日志使用 :Ctrl+Z

扩展:

查看当前所有启动的java程序:(可查看进程号)

jps -l

强制停止java程序:

kill -9 进程号   

通过进程号查看项目所在绝对路径:

ll /proc/进程号

2.2 后端war包部署

前提:jdk环境已部署

(1)下载apache-tomcat-8.0.50.tar.gz放在服务器上,解压tomcat

tar -zxvf apache-tomcat-8.0.50.tar.gz

(2)把war包放在Tomcat的webapps目录下

rz  #系统会弹出本地文件选择框,选择war包,点击确定上传

(3)启动Tomcat服务(执行Tomcat的bin目录下的startup.sh)

bash startup.sh

(4)进入到Tomcat下的logs目录,动态查看日志文件,退出查看日志使用 :Ctrl+Z

tail -f catalina.out 

扩展:

查看运行状态

ps -ef|grep tomcat   #可查看该tomcat的进程号和所在绝对路径

强制停止java程序:

kill -9 进程号   

3 常用命令扩展

(1)根据字符串查询日志中关键词出现的位置(显示该关键字前10行和后10行相关日志)

cat -n output.log | grep-n -B10 -A10 关键字

(2)查看某段时间内的日志:sed -n '/开始时间/,/结束时间/p' 日志文件

sed -n '/2021-01-01 12:00:00/,/2021-01-01 17:00:00/p' output.log | grep 关键字

(3)下载jar或war到本地

sz GzMaster.jar

可在本地用java反编译工具(jd-gui.exe或luyten.exe)来查看文件的源码。

(4)备份文件(比如备份之前的jar包)

mv GzMaster.jar GzMaster.jar20220128   #修改GzMaster.jar的文件名

(5)强制删除文件及其子目录(比如删除GzMaster.jar20220128文件)

rm -rf GzMaster.jar20220128

(6)查看服务器ip

ifconfig

 (7)清空nohup.out文件内容,不用rm文件,也不需要关闭服务

echo '' > nohup.out

(8)切换到超级用户权限

su - root

  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Linux部署前后端分离项目需要以下步骤: 1. 部署前端代码:将前端代码打包成静态文件,上传到服务器上的指定目录。 2. 部署后端代码:将后端代码上传到服务器上的指定目录,并安装所需的依赖包。 3. 配置Nginx反向代理:将Nginx配置文件中的location指向前端静态文件目录和后端接口地址。 4. 启动后端服务:使用命令行启动后端服务,确保服务正常运行。 5. 启动Nginx服务:使用命令行启动Nginx服务,确保反向代理正常工作。 6. 测试项目:在浏览器中输入服务器IP地址和端口号,查看项目是否正常运行。 以上是Linux部署前后端分离项目的基本步骤,具体操作需要根据项目实际情况进行调整。 ### 回答2: 随着互联网的高速发展,Web应用程序的规模不断扩大,系统架构越来越趋于分布式、微服务化,前后端分离技术也逐渐成为开发者们的常用工具之一。在分离前后端之后,不同的团队可以专注于各自的领域,这样就可以更好地分工合作,提高开发效率。因此,对于Linux服务器的部署前后端分离项目的注意点如下: 一、前后端如何分离? 在前后端分离的架构中,通常需要将前端展示层和后端业务逻辑层进行分离后端 API 接口返回 JSON 或 XML 格式的数据,前端负责根据返回数据进行页面渲染。如何实现前后端分离?通常有以下方案: 1、 Nginx反向代理跨域解决 在开发过程中,可能会因为域名或端口的限制导致跨域问题。可以通过配置 Nginx 反向代理来解决这个问题。 2、 后端API跨域设置 在后端应用程序中设置跨域头,允许前端的请求,包括 Access-Control-Allow-Origin、Access-Control-Allow-Credentials 等等。 3、 CORS(跨域资源共享) 在Web应用程序中,通常通过请求头和响应头来实现 CORS。因此,在前端项目中,需要在请求头中添加 origin 属性。 4、 JSONP JSONP 是一种跨域的解决方案,其核心是利用了 HTML 中的 iframe 标签来创造跨域环境。这种方案主要用于 GET 请求,不支持 POST 请求。 二、 确定API设计风格 在后端API的设计过程中,需要确定 API 的设计风格。通常常用的 API 设计风格有以下几种: 1、 RESTful API RESTful API 是一种基于 HTTP 协议,并使用 XML 或 JSON 格式构建的 Web API。它的请求方式有 GET、POST、PUT、PATCH、DELETE 等多种,可以满足各种需求。 2、 GraphQL GraphQL 是一种由 Facebook 开发的新型 API 查询语言。它允许开发者能够按需获取 API 中的数据,从而避免了不必要的数据获取和传输,提高了性能和效率。同时,GraphQL 也支持多个数据源的聚合,实现了 API 粒度的细化。 三、 部署前的准备工作 在进行部署前的准备工作中,需要确保以下几个环节: 1、 数据库设计 在后端应用程序的开发过程中,数据库是非常重要的组成部分。因此,需要确保数据库的设计符合需求,并具有一定的容错性。 2、 安全设置 在部署前,需要进行一定的安全设置,例如:开启 HTTPS,启用防火墙等。 3、 代码审查 在进行部署前,需要对部署代码进行审查,确保代码没有安全隐患,尤其是在前后端分离的情况下,应该对数据传输进行加密和验证。 四、 部署后的维护工作 在完成部署后,需要进行一些维护工作,以确保系统的正常运行。 1、 监控系统 需要设置一定的监控系统,以确保系统的健康运行。例如:设置系统监控告警,定期查看日志等。 2、 数据备份 在进行部署后,需要进行数据备份,以防止数据丢失或损坏。 3、 版本控制 在前后端分离的情况下,需要对前后端代码进行版本控制。可以使用 Git 或 SVN 等版本控制软件进行管理。 总之,前后端分离是一种实现高效开发模式的方式,对于 Linux 系统的部署是非常重要的。在分离前后端之后,需要注意多个方面,包括前后端如何分离、确定API设计风格、部署前的准备工作以及部署后的维护工作,这些都是非常重要的环节,需要进行仔细的规划和执行。 ### 回答3: Linux系统是一款开放源码的操作系统,它的开源性质使其成为了后端分离项目的理想部署环境。后端分离指的是将前端后端的代码进行分离后端专注于提供API接口服务,前端则负责展示数据和交互逻辑。 要在Linux系统上部署前后端分离项目,首先需要安装相应的开发环境和依赖库。对于后端,常用的语言有Python、Java、Node.js等,同时需要安装相应的框架和数据库。对于前端,常用的语言有HTML、CSS、JavaScript,需要安装Node.js和Vue、React、Angular等框架。 接着,需要将后端项目部署到服务器上,并开启API接口。可利用Nginx或Apache等服务器软件进行代理或负载均衡,提升系统的性能和稳定性。前端项目则可以使用Nginx或Apache进行静态文件服务器的部署。 在部署后端前端项目后,还需要遵循一些安全的规则和流程。例如,对于外部访问的API接口,需要进行访问权限控制,限制非法访问和保护用户数据安全。同时,还要设置日志记录系统,便于排查错误和优化系统。 总而言之,在Linux系统上部署前后端分离项目需要掌握一定的技术和经验。通过合理的架构设计和安全措施的实施,可以使项目Linux上运行稳定、高效。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值