我可以在DigitalOcean上使用LEMP的JSP页面吗?

Ken*_*all 1 java lamp jsp tomcat digital-ocean

我一直在寻找网络托管服务一段时间,以便与我目前在大学工作学习计划中学习的东西一起学习.我倾向于DigitalOcean,因为它们相对便宜,目前是学生推广的一部分.目前,我们已经介绍了Java/JSP Web开发,并且已经鼓励我们研究Java Web服务.我认为在我学习的同时编写一个教程网站是一个好主意,以巩固这些概念.

但是,根据我在这里阅读/看到的内容,JSP需要安装Tomcat.它还需要Apache吗?此外,我注意到DigitalOcean提供LAMP和LEMP作为"一键安装".是否可以将JSP页面与LEMP一起使用(因为我还读过LEMP比LAMP更快/更好)?或者我会被迫使用LAMP?

最后,如果我可以使用LEMP,我需要做些什么来允许我使用JSP?

如果我需要包含其他内容,清理某些内容等,请与我们联系.

谢谢!

Bas*_*que 6

双重责任

Apache Tomcat存在理由是成为最先进的Servlet/JSP "容器"(引擎).Tomcat还提供了非常好的Web服务器实现.

Tomcat实际上是多个组件的集成,包括:

码头Eclipse的是一种流行的相当于到Tomcat.两者都是出色的磨损产品.在我的答案中,"Jetty"可能是"Tomcat"的同义词.

对于不寻常或极端的需求,有些人选择使用Apache HTTP Server作为他们的Web服务器,Tomcat运行"后面".在这种情况下,Tomcat仅用于其Servlet/JSP容器服务.前端Web服务器处理对静态资源(.html页面,图像等)的请求,同时传递具有面向Servlet和JSP的URL的请求.对于大多数人来说,这个前端Web服务器的大多数项目都是不必要的复杂功能.

#Java企业版

Tomcat和Jetty只提供Servlet和JSP作为扩展Java标准版Java企业版技术的一个狭窄子集.对于像我这样的很多人来说,Java SE + Tomcat/Jetty就是构建和运行Web应用程序所需要的.

您可以将一些单独的Java EE技术作为.jar库文件添加到您的应用程序中.或者,您可以升级到TomEE,WildFly,Glassfish或其他已捆绑的额外库的Java EE服务器,而不是Tomcat/Jetty .所有这些Java产品都可以作​​为Web服务器自行运行.

80号港口

使用Tomcat或任何此类Java产品作为Web服务器的唯一问题是Web的默认端口80.低编号端口在类Unix操作系统中受到安全限制.这就是为什么Tomcat默认使用端口8080.因为Java是为安全而构建的,所以Java应用程序很难以优雅的方式获取端口80.

通常的解决方案是Port-Forwarding.将基于Java的Web服务器保留在高编号端口上,同时操作系统中的网络工具将传入请求转换为使用备用端口.

例如,使用现在过时的ipfw工具:

sudo ipfw add 100 fwd 127.0.0.1,8080 tcp from any to any 80 in
Run Code Online (Sandbox Code Playgroud)

不需要LAMP/LEMP

至于LAMP/LEMP产品集合,您无需专注于Servlet/JSP工作.

L是Linux.没关系.但请注意,DigitalOcean 现在提供 FreeBSD以及Linux,这里这里讨论.BSD以坚如磐石的可靠性和对安全性的关注而闻名.Mac OS X和iOS的许多技术基础都建立在BSD之上,使得BSD 成为世界上体积最大的类Unix操作系统.

AE分别指的是Apache HTTP服务器和Nginx等.如上所述,很少需要那些Web服务器,因为Tomcat自己的Web服务器除了最大或最复杂的项目之外几乎都能够运行.

M是MySQL的,流行的数据库.我个人建议如果你需要一个重型的企业级关系SQL和/或一个"NoSQL"/ JSON /半结构化数据库服务器,强烈使用Postgres.或者从更轻松,更简单的东西开始,尝试使用纯Java构建的H2数据库引擎.

PPHP,建立动态网页语言和工具包.不需要这样,因为Servlet/JSP技术具有相同的目的,同时更高级和更复杂,包括更强大的多线程功能,更不用说Joda-Timejava.time等许多优秀的Java库.

我的经验

多年来,我已经为静态服务或Web应用程序(通常是Vaadin应用程序)设置了多个Web服务器.我简单地使用:

  • Mac OS X.
  • Java SE(标准版)
  • Tomcat的

我发现它可靠,快速且易于管理.

对于某些项目,我使用colo,如MacMiniVault.com.虽然硬件可能不如DigitalOcean的底层产品那么可靠/企业级质量,但是每月30美元至50美元的Mac mini配备16 gig内存和TB存储可能比使用DigitalOcean等云服务器更好.硬件.但是,只有当您需要大量内存,内核或流量全时时,这才有意义.在学习和试验时,像DigitalOcean这样的按小时付费的虚拟服务器就是您的选择.

我期待DigitalOcean将是一个很好的方式来开始并让你的脚湿透.[看我在那里做了什么?]