2012-11-14 36 views
1

我在VPS上有我的站點的生產版本,我部署到一個裸Git倉庫,它有一個鉤子檢出應用程序目錄的提交。我永遠使用,讓我的應用程序從應用程序目錄運行。我的Node.js站點的開發版本

我想要做的是建立一個開發版本,我可以推動。開發版本可以託管在我的VPS的子域下。但是,我需要一個身份驗證步驟來防止任何人和每個人訪問開發站點。我怎麼能把身份驗證放在整個站點的前面,而對我的應用程序進行很少(如果有的話)更改?

+0

也許有一種方法可以實現我想要的HTTP驗證?但HTTP驗證足夠安全嗎? – Sam

回答

1

你爲什麼不直接在一個公衆不能使用的端口上運行它,然後你可以創建一個ssh隧道並通過localhost訪問它?

將dev ssh用戶添加到您的VPS併爲其分配密碼。

你的SSH隧道是這樣的(只是相應地調整你的端口):

ssh -N -L8808:localhost:8808 [email protected] 

會提示您輸入密碼,然後你會離開你的終端會話開放,並通過去你的開發服務器「http:// localhost:8808」

另一種選擇(我通常會這樣做)。是使用配置信息(在這種情況下,您的用戶名/密碼[開發]限制)將文件簽入到名爲「config.sample.json」的回購站中。然後你也設置git來忽略「config.json」(所以你不會意外地將它提交到你的倉庫並且必須編輯生產部署中的文件)。

接下來,您將編寫一個函數,該函數將需要config.json文件,如果找到該文件,則使用它的配置數據,否則它將加載爲「生產」。

然後,您會將您的代碼部署到您的開發目錄中,然後將您的「config.sample.json」重命名爲「config.json」,並在該文件中進行所需的任何編輯以設置調試,訪問控制等。

+0

什麼是ssh隧道?它與連接相同嗎? – Sam

+0

ssh是(通常)從命令行(終端)發起的連接。 –

+0

連接與隧道有何不同? – Sam