2017-08-28 121 views
0

我得到一個錯誤502錯誤網關部署以下步驟簡單的角度2項目AWS EC2:部署角2到AWS EC2

輸入AWS地區俄勒岡州,並在EC2上單擊啓動新的實例。 選擇Ubuntu的LTS 16.04選擇 t2.micro 設置安全設置: SSH 0.0.0.0,(Anywhere或MYIP) HTTP 0.0.0.0(任意位置) HTTPS 0.0.0.0(任何地方,或者不設置) 下載從AWS爲.pem鍵 使用命令.pem文件移動到相應的文件夾在你的系統 更改用戶權限您的.pem文件:

chmod 400 {{mypem}}.pem 

導航到該文件夾​​在您的.pem文件! (你可以使用亞馬遜AWS「連接」按鈕獲取的下一行代碼) 對於PC,下面的命令可能

ssh -i {{mypem}}.pem [email protected]{{yourAWS.ip}} 

再次要求的小貓或膩子或bash終端,你可以得到這個確切的行來自AWS上的Connect代碼。 (該命令在下面的示例中找到)。

在ubuntu終端中: 這些爲部署和Linux服務器建立了一些基本的依賴關係。

sudo apt-get update 
sudo apt-get install -y build-essential openssl libssl-dev pkg-config 

在Ubuntu終端,一個是在因爲他們需要確認時間: (這些安裝基本節點和NPM)

sudo apt-get install npm 
sudo npm cache clean -f 
sudo npm install -g n 
sudo n stable (or whichever node version you want e.g. 5.9.0) 

sudo npm install -g @angular/[email protected] 

節點-v應該給你節點的穩定版本,或您剛剛安裝的版本。 安裝NGINX和git:

sudo apt-get install nginx 
sudo apt-get install git 

輸入文件夾:

cd /var/www 

克隆項目:

sudo git clone {{your project file path on github/bitbucket}} 

設置NGINX 轉到nginx的網站上的可用目錄:

cd /etc/nginx/sites-available 

輸入VIM:

sudo vim {{project_name}} 

VIM是更多信息基於終端的文本編輯器中看到:vim-adventures.com/或其他vim的學習工具。 我們的關鍵命令是我允許我們輸入esc,關閉插入,然後在esc:wq之後寫入並退出。 粘貼並修改下面的代碼到VIM打我後:

server { 
    listen 80; 
    location/{ 
     proxy_pass http://{{PRIVATE-IP}}:4200; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection 'upgrade'; 
     proxy_set_header Host $host; 
     proxy_cache_bypass $http_upgrade; 
    } 
} 

這個代碼表示:有反向代理服務器(nginx的)監聽端口80 當去根/, 偵聽HTTP請求的儘管你實際上是http://和服務器正在監聽的端口,例如@ 8000或@ 6789等。

借鑑nginx的更多:http://nginx.org/en/docs/http/ngx_http_proxy_module.html

從/ etc/nginx的/網站可用

sudo rm default 

創建從一個符號鏈接的網站,能夠提供網站的默認設置:

sudo ln -s /etc/nginx/sites-available/{{project_name}} /etc/nginx/sites-enabled/{{project_name}} 

6從默認的/ etc/nginx的/啓用的站點 -/

cd /etc/nginx/sites-enabled/ 
sudo rm default 

項目依賴項和PM2 全局安裝pm2(https://www.npmjs.com/package/pm2.5)(https://www.npmjs.com/package/pm2)。 這是一個生產過程管理,使我們能夠在後臺運行節點的進程。

sudo npm install pm2 -g 

嘗試一些與pm2的東西!

cd /var/www/{{project_name}} 
pm2 serve 
pm2 stop 0 
pm2 restart 0 
sudo service nginx reload && sudo service nginx restart 

在這一點上,nginx命令應該顯示2 OK,你應該關閉並運行。 轉到AWS公共IP並查看您的網站!

但是,我得到了502錯誤的網關錯誤, ,我也在protractor.conf.js中配置了端口8080。

控制檯輸出表示ONLINE:

Ubuntu的@ IP-172-31-35-149:在/ var/WWW /角mruanova $ PM2重啓0 使用--update-ENV更新環境變量 [ PM2]在App應用動作restartProcessId [0](IDS:0) [PM2]靜態頁面服務器8080✓ ┌───────────────────── ────┬────┬──────┬───────┬────────┬─────────┬────── ──┬─────┬───────────┬────────┬──────────┐ │應用程序名稱│ID ││模式PID││狀態重新啓動││正常運行CPU││MEM用戶││看 ├─────────────────────────┼─── ─┼──────┼───────┼────────┼─────────┼────────┼───── ┼───────────┼────────┼──────────┤ │靜態頁面服務器8080│0││叉11723│在線│1│0│0%│10.1 MB│的ubuntu│禁用│ └─────────────────────────┴────┴── ────┴───────┴────────┴─────────┴────────┴─────┴─── ────────┴────────┴──────────┘ 使用pm2 show <id|name>以獲得更多的細節瞭解應用

現在我得到這個在瀏覽器:

Welcome to nginx! 
If you see this page, the nginx web server is successfully installed and working. 
Further configuration is required. 
For online documentation and support please refer to nginx.org. 
Commercial support is available at nginx.com. 
Thank you for using nginx. 

然後我執行這些:

sudo ng build 
sudo ng serve 

控制檯輸出:

** NG現場開發服務器監聽在localhost:4200,打開http://localhost:4200 **

瀏覽器

我需要PM2在端口4200,而不是8080,而是如何運行?

相關How can I deploy my Angular 2 + Typescript + Webpack apphttps://angular.io/guide/deployment

+1

什麼是server.listen()用作輸入參數?你還可以提供控制檯輸出嗎? – BryceH

+0

我用更多的信息更新了這個問題,謝謝。 – mruanova

+0

[我怎樣才能部署我的Angular 2 + Typescript + Webpack應用程序](https://stackoverflow.com/questions/39612339/how-can-i-deploy-my-angular-2-typescript-webpack-app ) –

回答