我一直在寻找网络托管服务已有一段时间了,以便与我目前在大学工作学习计划中学习的东西一起学习。我倾向于DigitalOcean,因为它们相对便宜,目前是学生推广的一部分。目前,我们已经介绍了Java / JSP Web开发,并且已经鼓励我们研究Java Web服务。我认为在我学习的同时编写一个教程网站是一个好主意,以巩固这些概念。
但是,根据我在这里阅读/看到的内容,JSP需要安装Tomcat。它还需要Apache吗?此外,我注意到DigitalOcean提供LAMP和LEMP作为"一键安装"。是否可以将JSP页面与LEMP一起使用(因为我还读过LEMP比LAMP更快/更好)?或者我会被迫使用LAMP?
最后,如果我可以使用LEMP,我还需要做些什么来允许我使用JSP?
如果我需要包含其他内容,清理某些内容等,请告诉我。
谢谢!
答案 0 :(得分:6)
Apache Tomcat的 raison d'être将成为最先进的Servlet / JSP“容器“(引擎)。 Tomcat也有一个非常好的web server实现。
Tomcat实际上是多个组件的集成,包括:
来自Jetty的Eclipse与Tomcat相当。两者都是出色的磨损产品。在我的答案中,“Jetty”可能是“Tomcat”的同义词。
对于不寻常或极端的需求,有些人选择使用Apache HTTP Server作为他们的Web服务器,Tomcat运行“后面”。在这种情况下,Tomcat仅用于其Servlet/JSP container服务。前端Web服务器处理对静态资源(.html页面,图像等)的请求,同时传递具有针对Servlets&的URL的请求。 JSP页面。对于大多数人来说,这个前端Web服务器的大多数项目都是不必要的复杂功能。
#Java Enterprise Edition
Tomcat& Jetty只提供Servlet和JSP作为扩展Java Enterprise Edition的Java Standard Edition技术的一个狭窄子集。对于像我这样的很多人来说,Java SE + Tomcat / Jetty就是构建和运行Web应用程序所需要的。
您可以将一些单独的Java EE技术作为.jar库文件添加到您的应用程序中。或者,您可以升级到TomEE,WildFly,Glassfish或其他已捆绑的额外库附带的Java EE服务器,而不是Tomcat / Jetty。所有这些Java产品都可以作为Web服务器自行运行。
使用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
至于LAMP / LEMP产品系列,您无需专注于Servlet / JSP工作。
L
适用于Linux。没关系。但请注意DigitalOcean now offers FreeBSD以及Linux,讨论了here和here。 BSD以坚如磐石的可靠性和对安全的关注而闻名。 Mac OS X和iOS的许多技术基础都建立在BSD之上,使得BSD成为世界上容量最大的Unix-like操作系统。
A
和E
分别指Apache HTTP Server和Nginx。如上所述,很少需要那些Web服务器,因为Tomcat自己的Web服务器对除了最大或最复杂的项目之外的所有项目都非常有能力。
M
是受欢迎的数据库MySQL。就个人而言,如果您需要一个重型企业级关系SQL和/或“NoSQL”/ JSON /半结构化数据库服务器,我建议强烈使用Postgres。或者从更轻松,更简单的东西开始,尝试使用纯Java内置的H2 Database Engine。
P
是PHP,是用于构建动态网页的语言和工具包。不需要这样,因为Servlet / JSP技术在提供更高级和更复杂的功能时具有相同的目的,包括更强大的多线程功能,更不用说许多优秀的Java库,例如Joda-Time& java.time
多年来,我为静态服务或网络应用(通常为Vaadin个应用)设置了多个网络服务器。我简单地使用:
我发现它可靠,快速且易于管理。
对于某些项目,我使用colo,例如MacMiniVault.com。虽然硬件可能不如DigitalOcean的底层产品那么可靠/企业级质量,但是每月30美元至50美元的Mac mini配备16 gig内存和TB存储可能比使用DigitalOcean等云服务器更好。硬件。但是,只有当您需要大量内存,内核或流量全时时,这才有意义。在学习和试验时,像DigitalOcean这样的按小时付费的虚拟服务器就是您的选择。
我希望DigitalOcean是一个很好的方式来开始并让你的脚湿透。 [看我在那里做了什么?]