

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

# Node.js 應用程式伺服器層參考
<a name="layers-server-nodejs"></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 支援 [Node.js](http://nodejs.org/) 應用程式伺服器，這是實作高可擴展性網路應用程式伺服器的平台。程式以 JavaScript 撰寫，並使用事件驅動的非同步 I/O，將額外負荷降到最低，且將可擴展性提到最高。

**Short name: (簡短名稱：)** nodejs-app

**相容性：**Node.js App Server layer 與下列層相容：自訂、db-master、memcached 和 monitoring-master。

**開放連接埠：**Node.js App Server layer 允許從負載平衡器公開存取連接埠 22 (SSH)、80 (HTTP)、443 (HTTPS) 和所有連接埠。

**Autoassign Elastic IP addresses: (自動指派彈性 IP 地址：)** 預設為關閉

**Default EBS volume: (預設 EBS 磁碟區：)** 否

**Default security group: (預設安全群組：)** AWS-OpsWorks-nodejs-App-Server

**Setup recipes: (安裝配方：)**
+  opsworks\$1initial\$1setup
+ ssh\$1host\$1keys
+ ssh\$1users
+ mysql::client
+ dependencies
+ ebs
+ opsworks\$1ganglia::client
+ opsworks\$1nodejs
+ opsworks\$1nodejs::npm 

**Configure recipes: (設定配方：)**
+  opsworks\$1ganglia::configure-client
+ ssh\$1users
+ agent\$1version
+ opsworks\$1nodejs::configure 

**Deploy recipes: (部署配方：)**
+ deploy::default
+ opsworks\$1nodejs
+ opsworks\$1nodejs::npm
+ deploy::nodejs 

**Undeploy recipes: (解除部署配方：)**
+ deploy::nodejs-undeploy

**Shutdown recipes: (關機配方：)**
+ opsworks\$1shutdown::default
+ deploy::nodejs-stop

**安裝:**
+ Node.js 會安裝至 `/usr/local/bin/node`。
+ 如需如何產生日誌檔案的詳細資訊，請參閱 Nodejitsu 網站上的 [How to log in node.js](https://docs.nodejitsu.com/articles/intermediate/how-to-log/)。

**Node.js application configuration: (Node.js 應用程式組態：)**
+ Node.js 所執行的主要檔案必須命名為 `server.js` 並且位在已部署應用程式的根目錄中。
+ Node.js 應用程式必須設定為接聽連接埠 80，適用時，也可以接聽連接埠 443。

**注意**  
執行 Express 的 Node.js 應用程式普遍使用下列程式碼來設定接聽連接埠，其中 `process.env.PORT` 代表預設連接埠並解析為 80：  

```
app.set('port', process.env.PORT || 3000);
```
使用 OpsWorks Stacks，您必須明確指定連接埠 80，如下所示：  

```
app.set('port', 80);
```