2017-02-13 1 views
2

Я планирую разместить несколько веб-сайтов с использованием сервера Node.js Express (s?). Является ли хорошей практикой создание файла server.js для каждого веб-сайта в корне сайта?Хостинг 50+ сайтов с поддержкой Node.js (стек: Forever, Express, Nginx & Let's Encrypt)

например. /var/www/example1.com/server.js & /var/www/example2.com/server.js.

пример server.js:

const express = require('express') 
const app = express() 
const port = 3000 // 1 port for each website 

app.get('/', (request, response) => { 
    response.send('Hello from Express!') 
}) 

app.listen(port, (err) => { 
    if (err) { 
    return console.log('something bad happened', err) 
    } 

    console.log(`server is listening on ${port}`) 
}) 

Cronjob с правилом, чтобы начать каждый сервер - работает как шарм

#!/bin/sh 
export NODE_ENV=production 
export PATH=/usr/local/bin:$PATH 

for line in $(find /var/www/*/server.js); do 
    forever start $line > /dev/null 
done 
+0

это все разные сайты? разные кодовые базы? –

+0

Да, все разные сайты подключены к одной базе данных, а некоторые просто статичны. –

+2

Просто подумайте - но вы можете захотеть сохранить «node_modules» отдельно - в противном случае у вас есть 50+ сайтов, чтобы проверить, обновляется ли модуль. –

ответ

1

Да, вы должны были бы другой server.js для всех веб-сайтов, так как все они, вероятно, обрабатывают разные запросы/имеют разные API/differen t маршрутизации.

Кроме того, если вы должны перезапустить сервер для определенного веб-сайта, если вы используете только один server.js, все ваши сайты будут отключены во время перезагрузки, а не только те, которые нуждаются в изменениях, если у всех их есть разные server.js.

Смежные вопросы