说到部署,在远古jsp时代,这时还没前端啥事情,那是前后端没分离时期,部署时其实是在服务器端部署Javaweb。当你访问.jsp时,服务器端动态解析生成Java,在编译成.class文件,最后把结果响应(response )给客户端。
out.write("<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">\r\n");
很明显返回html,到后来发展返回拼接html太麻烦就有了模板引擎FreeMarker,Velocity,Thymeleaf。这时已经越来越接近现在了。之后就出现了前后端分离,至此才有前端部署。那前端部署得实质就是静态资源,html,css,js等,下面我们就看看有哪些方案:
1.nginx
说到nginx,很多人都不陌生,或多或少得都听过,这个也是很常见得前端部署方案。使用很简单只需要把代码打包后上传到服务器上,只需要配置下root,你刚上传得目录,然后就可以了。
server {
listen 80; // 之前开放的端口
server_name localhost; // 项目访问的地址,项目正式上线后的域名地址
location / {
root /test/programs/项目文件夹
index index.html index.htm;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html
}
}
}
当然了,nginx还可以做反向代理,可以做资源重定向等,很方便,前端部署选择方案比较多得,还有一个好处,稳定加并发高(稳定2w并发)。
2.node
nodejs部署其实对于现在得前端来说很熟悉,nodejs做服务端时那些HTML就是用它部署得。还有我们平时开发时使用得运行npm run satrt什么得都是基于webpack-dev-server,还有配置devServer.proxy,代理什么得,这都是node服务,都是基于node部署得。
var express = require("express");
var app = express();
app.use(express.static("public")).listen(8080);
然后我们只需要将打包好得放到public目录下就好了。这个部署也很简单,node部署并发可很高,只不过单线程容易挂,需要启动守护线程来维持高稳定。
3.tomcat
这个对于Java很熟悉,使用起来可很简单,前端打包好后把有html的文件夹放在tomcat的webapps目录下,然后启动tomcat即可,也很方便。tomcat得并发并不是很高,使用他部署大多数是习惯Java得或者,项目部署交给Java处理得。我们所熟悉得springmvc,springboot等都可以部署前端,原理也就是tomcat,而使用springmvc,springboot打成jar,war然后用tomcat后动态得,这样可以做反向代理,跨域完全可以这样解决,和node部署做跨域处理一样得道理。
4.Apache
原理和tomcat,只需要将打包好得放到指定目录,当然这个目录可改,在httpd.conf文件中,具体在哪看你选得版本对应了。
5.JBoss
原理差不多,具体可以去看看JBoss使用
6.IIS
这个很古老了,上了年纪得估计知道
7.Lighttpd,IBM WebSphere
这个也可以,只不过使用不多,可以了解
之后遇到什么问题都可以讨论,不管你用得是docker,podman等容器部署,或者openshift,k8s等都不离其中