這必定是一個非常普遍的問題。我已經看到了各種各樣的答案,但似乎沒有爲我工作。在Azure上將節點指向節點快速服務器
我在Windows Azure上的apache服務器上安裝了節點。我開發的應用,並準備去(下面摘錄):
var express = require("express");
var app = express();
//example api call
app.get("/api/example", function(req, res){
//do some process
res.send(data);
});
app.listen(8080);
console.log("App listening on port 8080");
現在,我自己的電腦上進行測試的時候,然後我可以去localhost:8080
,它的偉大工程。但是現在我已經把它放在Azure服務器上了,我無法讓外部域名正確指向它。因此,例如,我有域:
framework.example.com
我已經添加到了我的hosts文件在Azure中:
XXX.0.0.01 framework.example.com
起初我也試過編輯http-vhosts.conf
指向域到正確的目錄。這用於加載前端,但應用程序無法與後端進行通信。 API調用返回400找不到錯誤。
我也試過Express vhost方法,但認爲我做錯了,並沒有完全理解它。什麼是正確的方法?!
我的應用程序的結構是這樣的:
- package.json
- server.js
- server
- files used by server.js
- public
- all frontend files
所以要引導它運行在上面的代碼我跑server.js
服務器。 server.js使用下面的Express配置指向公用文件夾。
app.use(express.static(__dirname + "/public"));
感謝您的回答。我已經爲該域配置了DNS。就像我在我的問題中所說的,我可以加載前端,但我沒有正確地進行路由,所以後端API可以工作。是的,我對使用Azure相當陌生,但出於各種其他原因必須使用VM。我會看看你發佈的鏈接。 – Coop
我在你的問題中沒有看到有關DNS的任何信息。 hosts文件只會更新你的服務器處理請求的方式。如果您的API請求是從瀏覽器運行的,它將無濟於事。你能提供更多關於你想要做什麼的細節,哪些不起作用?後端是什麼?它如何被稱爲?你在哪裏看到400錯誤? –
我說在編輯http-vhosts.conf文件之後,加載了前端。如果DNS沒有正確配置,這將是不可能的。我用後臺的示例API調用更新了我的問題。 – Coop