我可以将 DigitalOcean 上的 JSP 个页面与 LEMP 一起使用吗?
Can I use JSP pages on DigitalOcean with LEMP?
我一直在寻找网络托管服务有一段时间了,以便与我目前在大学勤工俭学中学习的内容一起学习。我倾向于 DigitalOcean,因为它们相对便宜并且目前是学生促销活动的一部分。目前,我们已经了解 Java/JSP 网络开发,并被鼓励研究 Java 网络服务。我认为在学习的同时编写一个教程网站来巩固概念是个好主意。
但是,根据我这里的 read/seen,JSP 需要安装 Tomcat。它也需要 Apache 吗?此外,我注意到 DigitalOcean 同时提供 LAMP 和 LEMP 作为 "one-click installs"。是否可以将 JSP 页面与 LEMP 一起使用(因为我还读到 LEMP 是 faster/better 而不是 LAMP)?或者我会被迫使用 LAMP?
最后,如果我可以使用 LEMP,我需要做什么才能使用 JSP?
如果我需要添加任何其他内容、清理某些内容等,请告诉我
谢谢!
双重任务
Apache Tomcat’s raison d’être is to be a state-of-the-art Servlet/JSP "container" (engine). Tomcat also comes with a very good web server 实施。
Tomcat确实是多个组件的集成,包括:
Jetty from Eclipse 是 Tomcat 的流行等价物。两者都是出色的经久耐用的产品。 "Jetty" 可能是 "Tomcat" 的同义词,贯穿我在这里的整个回答。
对于不寻常或极端的需求,有些人选择使用 Apache HTTP Server as their web server with Tomcat running "behind". In this scenario Tomcat is used only for its Servlet/JSP container 服务。前端 Web 服务器处理对静态资源(.html 页面、图像等)的请求,同时传递带有针对 Servlet 和 JSPs 的 URL 的请求。对于大多数人的大多数项目来说,这个前端 Web 服务器是不必要的复杂化。
# Java 企业版
Tomcat & Jetty 仅提供 Servlet 和 JSP 作为 Java Enterprise Edition technology that extends Java Standard Edition 的一个窄子集。对于像我这样的许多人来说,Java SE + Tomcat/Jetty 就是我们构建和 运行 网络应用程序所需的全部。
您可以将一些单独的 Java EE 技术作为 .jar 库文件添加到您的应用程序中。或者,您可以升级到 TomEE, WildFly, Glassfish,而不是 Tomcat/Jetty,或者其他已经捆绑了这些额外库的 Java EE 服务器。所有这些 Java 产品都可以作为 Web 服务器独立运行。
端口 80
使用 Tomcat 或任何此类 Java 产品作为 Web 服务器的唯一问题是 Web 的默认端口 80。低编号端口在类 Unix 中出于安全考虑受到限制 OS是的。这就是为什么 Tomcat 默认为 8080 端口。因为 Java 是为了安全而构建的,所以 Java 应用程序很难以优雅的方式获取端口 80。
通常的解决方案是Port-Forwarding。将基于 Java 的 Web 服务器保持在高编号端口上,同时 OS 中的网络工具将传入请求转换为使用备用端口。
例如,使用现已过时的 ipfw 工具:
sudo ipfw add 100 fwd 127.0.0.1,8080 tcp from any to any 80 in
不需要LAMP/LEMP
至于LAMP/LEMP系列产品,专注于Servlet/JSP工作就没有必要了。
L
用于 Linux。没关系。但是请注意,世界上的 DigitalOcean now offers FreeBSD as well as Linux, discussed here and here. BSD has a reputation for rock-solid reliability and attention to security. Much of the technical underpinnings of Mac OS X and iOS are built on BSD, making BSD the highest-volume Unix-like OS.
A
和E
分别指Apache HTTP Server和Nginx。如上所述,很少需要这些 Web 服务器,因为 Tomcat 自己的 Web 服务器非常适合除最大或最复杂的项目之外的所有项目。
M
是MySQL,流行的数据库。我个人强烈建议使用纯 Java.
内置的 Postgres if you need a heavy-duty enterprise-quality relational SQL and/or a "NoSQL"/JSON/semi-structured database server. Or to start with something lighter and simpler, try the H2 Database Engine
P
是 PHP, a language and toolkit for building dynamic pages. No need for this, as Servlet/JSP technology serves the same purpose while being more advanced and sophisticated, including much more powerful multi-threading capabilities not to mention the many excellent Java libraries such as Joda-Time & java.time。
我的经历
这些年来我设置了多个网络服务器,用于静态服务或网络应用程序(通常是 Vaadin 应用程序)。我简单地使用:
- Mac OS X
- JavaSE(标准版)
- Tomcat
我发现它可靠、快速且易于管理。
对于某些项目,我使用 colo such as MacMiniVault.com。 Mac mini 具有 16 GB 内存和 1 TB 存储空间,每月价格为 30-50 美元,这可能比使用 DigitalOcean 等云服务器更划算,尽管硬件可能不如 reliable/enterprise-quality 作为 DigitalOcean 的底层硬件。但这只有在您全职需要大量内存、内核或流量时才有意义。当只是学习和试验时,像 DigitalOcean 这样的按小时付费的虚拟服务器是最佳选择。
我希望 DigitalOcean 是一个很好的入门方式。 [看到我在那里做了什么吗?]
我一直在寻找网络托管服务有一段时间了,以便与我目前在大学勤工俭学中学习的内容一起学习。我倾向于 DigitalOcean,因为它们相对便宜并且目前是学生促销活动的一部分。目前,我们已经了解 Java/JSP 网络开发,并被鼓励研究 Java 网络服务。我认为在学习的同时编写一个教程网站来巩固概念是个好主意。
但是,根据我这里的 read/seen,JSP 需要安装 Tomcat。它也需要 Apache 吗?此外,我注意到 DigitalOcean 同时提供 LAMP 和 LEMP 作为 "one-click installs"。是否可以将 JSP 页面与 LEMP 一起使用(因为我还读到 LEMP 是 faster/better 而不是 LAMP)?或者我会被迫使用 LAMP?
最后,如果我可以使用 LEMP,我需要做什么才能使用 JSP?
如果我需要添加任何其他内容、清理某些内容等,请告诉我
谢谢!
双重任务
Apache Tomcat’s raison d’être is to be a state-of-the-art Servlet/JSP "container" (engine). Tomcat also comes with a very good web server 实施。
Tomcat确实是多个组件的集成,包括:
Jetty from Eclipse 是 Tomcat 的流行等价物。两者都是出色的经久耐用的产品。 "Jetty" 可能是 "Tomcat" 的同义词,贯穿我在这里的整个回答。
对于不寻常或极端的需求,有些人选择使用 Apache HTTP Server as their web server with Tomcat running "behind". In this scenario Tomcat is used only for its Servlet/JSP container 服务。前端 Web 服务器处理对静态资源(.html 页面、图像等)的请求,同时传递带有针对 Servlet 和 JSPs 的 URL 的请求。对于大多数人的大多数项目来说,这个前端 Web 服务器是不必要的复杂化。
# Java 企业版
Tomcat & Jetty 仅提供 Servlet 和 JSP 作为 Java Enterprise Edition technology that extends Java Standard Edition 的一个窄子集。对于像我这样的许多人来说,Java SE + Tomcat/Jetty 就是我们构建和 运行 网络应用程序所需的全部。
您可以将一些单独的 Java EE 技术作为 .jar 库文件添加到您的应用程序中。或者,您可以升级到 TomEE, WildFly, Glassfish,而不是 Tomcat/Jetty,或者其他已经捆绑了这些额外库的 Java EE 服务器。所有这些 Java 产品都可以作为 Web 服务器独立运行。
端口 80
使用 Tomcat 或任何此类 Java 产品作为 Web 服务器的唯一问题是 Web 的默认端口 80。低编号端口在类 Unix 中出于安全考虑受到限制 OS是的。这就是为什么 Tomcat 默认为 8080 端口。因为 Java 是为了安全而构建的,所以 Java 应用程序很难以优雅的方式获取端口 80。
通常的解决方案是Port-Forwarding。将基于 Java 的 Web 服务器保持在高编号端口上,同时 OS 中的网络工具将传入请求转换为使用备用端口。
例如,使用现已过时的 ipfw 工具:
sudo ipfw add 100 fwd 127.0.0.1,8080 tcp from any to any 80 in
不需要LAMP/LEMP
至于LAMP/LEMP系列产品,专注于Servlet/JSP工作就没有必要了。
L
用于 Linux。没关系。但是请注意,世界上的 DigitalOcean now offers FreeBSD as well as Linux, discussed here and here. BSD has a reputation for rock-solid reliability and attention to security. Much of the technical underpinnings of Mac OS X and iOS are built on BSD, making BSD the highest-volume Unix-like OS.
A
和E
分别指Apache HTTP Server和Nginx。如上所述,很少需要这些 Web 服务器,因为 Tomcat 自己的 Web 服务器非常适合除最大或最复杂的项目之外的所有项目。
M
是MySQL,流行的数据库。我个人强烈建议使用纯 Java.
P
是 PHP, a language and toolkit for building dynamic pages. No need for this, as Servlet/JSP technology serves the same purpose while being more advanced and sophisticated, including much more powerful multi-threading capabilities not to mention the many excellent Java libraries such as Joda-Time & java.time。
我的经历
这些年来我设置了多个网络服务器,用于静态服务或网络应用程序(通常是 Vaadin 应用程序)。我简单地使用:
- Mac OS X
- JavaSE(标准版)
- Tomcat
我发现它可靠、快速且易于管理。
对于某些项目,我使用 colo such as MacMiniVault.com。 Mac mini 具有 16 GB 内存和 1 TB 存储空间,每月价格为 30-50 美元,这可能比使用 DigitalOcean 等云服务器更划算,尽管硬件可能不如 reliable/enterprise-quality 作为 DigitalOcean 的底层硬件。但这只有在您全职需要大量内存、内核或流量时才有意义。当只是学习和试验时,像 DigitalOcean 这样的按小时付费的虚拟服务器是最佳选择。
我希望 DigitalOcean 是一个很好的入门方式。 [看到我在那里做了什么吗?]