

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Node.js 應用程式伺服器 OpsWorks 堆疊層
<a name="workinglayers-node"></a>

**重要**  
 AWS OpsWorks Stacks 此服務已於 2024 年 5 月 26 日終止，並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載遷移至其他解決方案。如果您對遷移有任何疑問，請透過 [AWS re：Post](https://repost.aws/) 或透過 [AWS Premium Support](https://aws.amazon.com/support) 聯絡 AWS 支援 團隊。

**注意**  
此 layer 僅適用於 Linux 類型堆疊。

Node.js App Server layer 是一種 OpsWorks Stacks layer，為做為 [Node.js](http://nodejs.org/) 應用程式伺服器的執行個體提供藍圖。 OpsWorks Stacks 也會安裝 [Express](http://expressjs.com/)，因此 layer 的執行個體同時支援標準和 Express 應用程式。

**Installation (安裝)**：Node.js 安裝在 `/usr/local/bin/node` 中。

**Add Layer (新增 Layer)** 頁面提供下列組態選項：

**Node.js 版本**  
如需目前所支援版本的清單，請參閱[OpsWorks Stacks 作業系統](workinginstances-os.md)。

**自訂安全群組**  
如果您選擇不自動將內建 OpsWorks Stacks 安全群組與 layer 建立關聯，則會顯示此設定。您必須指定要和 layer 關聯的安全群組有哪些。如需詳細資訊，請參閱[建立新的堆疊](workingstacks-creating.md)。

**Elastic Load Balancer**  
您可以將 Elastic Load Balancing 負載平衡器連接至 layer 的執行個體。

**重要**  
如果您的 Node.js 應用程式使用 SSL，則建議您盡可能停用 SSLv3 來處理 [CVE-2015-8027](http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-8027) 中所述的漏洞。若要這麼做，您必須將 **Node.js version (Node.js 版本)** 設定為 `0.12.9`。

## 部署 Node.js 應用程式
<a name="w2ab1c14c71b9c21c21c19c17"></a>

如需如何實作 OpsWorks Stacks 簡單 Node.js 應用程式並將其部署至堆疊的詳細演練，請參閱[建立您的第一個 Node.js 堆疊](gettingstarted-node.md)。一般而言， OpsWorks Stacks 的 Node.js 應用程式應該會符合下列條件：
+ 主要檔案必須命名為 `server.js` 並且位在已部署應用程式的根目錄中。
+ [Express](http://expressjs.com/) 應用程式必須在應用程式的根目錄中包括 `package.json` 檔案。
+ 根據預設，應用程式必須接聽連接埠 80 (HTTP) 或連接埠 443 (HTTPS)。

  您可以監聽其他連接埠，但 Node.js App Server 層的內建安全群組 **AWS-OpsWorks-nodejs-App-Server** 僅允許傳入使用者流量至連接埠 80、443 和 22 (SSH)。若要允許傳入使用者流量到其他連接埠，請使用適當的傳入規則[建立安全群組](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html)[，並將其指派給 Node.js App Server layer](workinglayers-basics-edit.md#workinglayers-basics-edit-security)。請勿透過編輯內建安全群組來修改傳入規則。每次建立堆疊時， OpsWorks Stacks 都會以標準設定覆寫內建的安全群組，因此您所做的任何變更都會遺失。

**注意**  
OpsWorks Stacks 會將 PORT 環境變數設定為 80 （預設） 或 443 （如果您啟用 SSL)，因此您可以使用下列程式碼來接聽請求。  

```
app.listen(process.env.PORT);
```

如果您將 [Node.js 應用程式設定為支援 SSL](workingapps-creating.md#workingapps-creating-domain-ssl)，則必須指定金鑰和憑證。 OpsWorks Stacks 會將每個應用程式伺服器執行個體的資料做為個別檔案放入 `/srv/www/app_shortname/shared/config`目錄中，如下所示。
+ `ssl.crt` – SSL 憑證。
+ `ssl.key` – SSL 金鑰。
+ `ssl.ca` – 鏈結憑證，如果您已指定。

您的應用程式可以從這些檔案中取得 SSL 金鑰和憑證。