@Hecktosaurus
Люблю писать код под специфические задачи

Как повесить сервер на определённый домен?

Создал сервер на локальной машине (сопоставил через hosts), нужно, чтобы он реагировал только на обращения с определённого домена. Сейчас работает и на 'css.loc', и на 127.0.0.1.
Решаю вопрос проверкой request.headers.host; может, есть более правильное решение? Пытался просто указывать домен в .listen(port, host), но сервер всё равно реагирует на 127.0.0.1

const https = require('https');
const fs = require('fs');

const host = 'css.loc'; // настройка доменного имени
const port = 443; // настройка порта

const options = {
  key: fs.readFileSync('./_ssl/css.loc.key'),
  cert: fs.readFileSync('./_ssl/css.loc.crt')
};

https.createServer(options, function (request, response) {

    const receivedHost = request.headers.host.split(':')[0]; // узнаем доменное имя без порта
    console.log(receivedHost);
    
    if (receivedHost != host){
        return false; // не отвечаем на запрос и не продолжаем скрипт в случае 127.0.0.1, к примеру
    }

    response.end("Hello world!");

}).listen(port, host);
  • Вопрос задан
  • 68 просмотров
Пригласить эксперта
Ответы на вопрос 1
BasiC2k
@BasiC2k
.NET developer (open to job offers)
Разумеется он будет реагировать на 127.0.0.1, ведь на этой машине он и находится. Вам уже подсказали - nginx. Его можно установить и настроить так, чтобы обращения по 127.0.0.1 игнорировались.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы