阿里雲配置 node.js + Nginx 反向代理

FREAKFILTH發表於2017-06-14

學如逆水行舟

1.首先你得安裝node.js,我是用nvm安裝的,這樣比較好控制版本,當然你也可以使用apt-get

2.下一步是安裝Nginx,不去管版本的話,直接sudo apt-get install nginx就行。

3.進入/etc/nginx目錄,檢視nginx.conf配置檔案,在http塊中找到這樣兩句:

# include /etc/nginx/conf.d/*.conf;
# include /etc/nginx/sites-enabled/*;複製程式碼

看看你的這兩句有沒有註釋掉,如果註釋了就把#號去掉,沒有註釋的話就跳過這一步。

4.進入/etc/nginx/conf.d目錄,建立我們自己的配置檔案,去名規則最好是域名加埠,這樣以後方便找,比如我的:rockjins-com-8081.conf,配置檔案寫入以下內容:

upstream rockjins {
    server 127.0.0.1:8081; # 這裡的埠號寫你node.js執行的埠號,也就是要代理的埠號,我的專案跑在8081埠上
    keepalive 64;
}

server {
    listen 80; #這裡的埠號是你要監聽的埠號
    server_name 39.108.55.xxx www.rockjins.com rockjins.com; # 這裡是你的伺服器名稱,也就是別人訪問你服務的ip地址或域名,可以寫多個,用空格隔開

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-Nginx-Proxy true;
        proxy_set_header Connection "";
        proxy_pass http://rockjins; # 這裡要和最上面upstream後的應用名一致,可以自定義
    }
}複製程式碼

5.儲存檔案後,輸入sudo nginx -t測試我們的配置檔案是否有錯誤,一般錯誤都是漏個分號,少個字母之類的,錯誤提示很精確,沒錯的話會輸出下面兩句:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful複製程式碼

6.現在我們需要重啟Nginx,我們的配置檔案才會生效,輸入sudo service nginx reload;

7.最後一步把我坑慘了,弄了一晚上,就是安全組的問題,之前有篇文章還寫到了這個問題,一轉眼就忘了。(ssh連線伺服器 Operation timed out)

因為服務跑在8081埠上,但是阿里雲的安全組預設是拒絕4000埠以上的授權策略的,大家一定記得去新增安全組規則,如圖:

阿里雲配置 node.js + Nginx 反向代理

8.開啟瀏覽器,輸入你的IP或域名,是不是把8081埠代理到80埠上了,哈哈。

希望這篇文章能夠幫到你,節省你一些沒必要浪費的時間,有什麼問題可以找我,大家一起進步!

本文作者:餘震(Shock)
本文出處:Rockjins Blog
版權宣告:本部落格所有文章除特別宣告外,均採用 CC BY-NC-SA 3.0 CN許可協議。轉載請註明出處!

相關文章