[英]Run Ghost blog as subfolder of website running on node http-server
首先,請原諒我對Joyent的智能機器實例缺乏了解。 我正在為這種情況運行NodeJS的免費開發層smartmachine實例。
我通過http-server在文件系統的[path]/server/public/
上運行一個網站,我想同時在端口80的[path]/server/public/blog/
上運行一個Ghost博客。
這可能嗎? 我怎么做到這一點?
使用express設置一個瘦的包裝器可能是一個很好的解決方案(正如保羅建議的那樣),但是如果你以一個帶有很多“不同服務”的大型應用程序結束,那么可能會很麻煩。
相反,我會在我的所有服務之上找代理(例如NGINX)。
使用此解決方案,如果服務失敗,則其余為否,因為它們是分離的。
您可以在端口80上偵聽並在內部代理每個服務端口:端口。
就像是:
0.0.0.0:80 ---> Proxy
└──path: / ─── localhost:3000 (Main Web)
└──path: /blog ─── localhost:4000 (Ghost)
...
如果您的其他網站是基於express
的網站,最簡單的方法可能是將您的ghost應用程序包含在同一個源代碼樹中(也許在子文件夾中)。 Express應用程序可以作為中間件安裝到其他快遞應用程序,因此您可以添加到主站點的路由,如:
var ghost = require('./path/to/ghost');
app.use('/blog', ghost);
假設你已經從https://github.com/tryghost/Ghost跟隨“從zip安裝(最快和最好的博主)”,你正在從/ public / with http-server提供靜態內容。
我的解決方案是使用Ghost的Express服務器來提供您的內容:
下載Ghost.zip並在[path]/server/
解壓縮
打開Ghost的config.js文件,將開發中的URL從http:// localhost:2368更改為http:// localhost:2368 / blog /
現在打開同一目錄中的index.js文件並添加以下內容:
parentApp.use(express.static(__dirname + '/public'));
after: parentApp = express();
其中'/ public'是包含靜態內容的目錄。
現在,如果您訪問: http:// localhost:2368,您將找到您的網站,您的博客將位於http:// localhost:2368 / blog /
要更改為生產,您需要進行適當的更改並從NODE_ENV=production npm start
。 要更改為端口80,您只需要更改config.js中的端口,這將在80上同時為您的站點和博客提供服務。這顯然會給您足夠的權限問題,並且有大量的教程向您展示如何設置端口80上的Node.js也是如此。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.