

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Java 应用服务器 OpsWorks 堆栈层
<a name="layers-java"></a>

**重要**  
该 AWS OpsWorks Stacks 服务于 2024 年 5 月 26 日终止，新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问，请通过 re [AWS : Post 或通过 Pre](https://repost.aws/) mium Su [AWS pp](https://aws.amazon.com/support) ort 与 AWS 支持 团队联系。

**注意**  
此层仅适用于基于 Linux 的堆栈。

Java App Server 层是一个 OpsWorks 堆栈层，它为充当 Java 应用程序服务器的实例提供蓝图。该层基于 [Apache Tomcat 7.0](http://tomcat.apache.org/) 和 Ope [n](http://openjdk.java.net/) JDK 7。 OpsWorks Stacks 还会安装 Java 连接器库，该库允许 Java 应用程序使用 JDBC `DataSource` 对象连接到后端数据存储。

**安装**：Tomcat 安装在 `/usr/share/tomcat7` 中。

**Add Layer** 页面提供以下配置选项：

**Java VM 选项**  
您可以使用此设置来指定自定义 Java VM 选项；没有默认选项。例如，一组常见的选项是 `-Djava.awt.headless=true -Xmx128m -XX:+UseConcMarkSweepGC`。如果您使用 **Java VM 选项**，请确保传递了一组有效的选项； OpsWorks Stacks 不会验证字符串。如果您试图传递无效的选项，Tomcat 服务器通常会无法启动，这会导致设置失败。如果出现这种情况，您可以检查实例的设置 Chef 日志以了解详细信息。有关如何查看和解释 Chef 日志的更多信息，请参阅[Chef 日志](troubleshoot-debug-log.md)。

**自定义安全组**  
如果您选择不自动将内置 OpsWorks Stacks 安全组与您的图层关联，则会显示此设置。您必须指定要将哪一安全组与层关联起来。有关更多信息，请参阅 [创建新堆栈](workingstacks-creating.md)。

**Elastic Load Balancer**  
您可以将 Elastic Load Balancing 负载均衡器连接到层的实例。有关更多信息，请参阅 [Elastic Load Balancing 层](layers-elb.md)。

您可以通过使用自定义 JSON 或自定义属性文件指定其他配置设置。有关更多信息，请参阅 [自定义配置](layers-java-config.md)。

**重要**  
如果您的 Java 应用程序使用 SSL，我们建议您尽可能禁用 SSLv3 SSL 以解决 [CVE-2014-3566](http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3566) 中描述的漏洞。有关更多信息，请参阅 [SSLv3 对于 Apache 服务器禁用](#layers-java-sslv3)。

**Topics**
+ [SSLv3 对于 Apache 服务器禁用](#layers-java-sslv3)
+ [自定义配置](layers-java-config.md)
+ [部署 Java 应用程序](layers-java-deploy.md)

## SSLv3 对于 Apache 服务器禁用
<a name="layers-java-sslv3"></a>

要禁用 SSLv3，必须修改 Apache 服务器`ssl.conf`的文件`SSLProtocol`设置。为此，您必须覆盖内置 [apache2 说明书](https://github.com/aws/opsworks-cookbooks/tree/release-chef-11.10/apache2)的 `ssl.conf.erb` 模板文件，Java App Server 层的 Setup 配方将使用该文件创建 `ssl.conf`。具体细节取决于您为层的实例指定的操作系统。以下总结了亚马逊 Linux 和 Ubuntu 系统所需的修改。 SSLv3 对于红帽企业 Linux (RHEL) 系统，会自动禁用。有关如何覆盖内置模板的更多信息，请参阅[使用自定义模板](workingcookbook-template-override.md)。

**Amazon Linux**  
这些操作系统的 `ssl.conf.erb` 文件位于 `apache2` 说明书的 `apache2/templates/default/mods` 目录中。下面显示了内置文件的相关部分。  

```
...
#SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

# enable only secure protocols: SSLv3 and TLSv1.2, but not SSLv2
SSLProtocol all -SSLv2
</IfModule>
```
覆盖 `ssl.conf.erb` 并修改 `SSLProtocol` 设置，如下所示。  

```
...
#SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

# enable only secure protocols: SSLv3 and TLSv1.2, but not SSLv2
SSLProtocol all -SSLv3 -SSLv2
</IfModule>
```

**Ubuntu 14.04 LTS**  
此操作系统的 `ssl.conf.erb` 文件位于 `apache2` 说明书的 `apache2/templates/ubuntu-14.04/mods` 目录中。下面显示了内置文件的相关部分。  

```
...
# The protocols to enable.
# Available values: all, SSLv3, TLSv1.2
# SSL v2 is no longer supported
SSLProtocol all
...
```
将此设置更改为以下内容。  

```
...
# The protocols to enable.
# Available values: all, SSLv3, TLSv1.2
# SSL v2 is no longer supported
SSLProtocol all -SSLv3 -SSLv2
...
```