Настройка Ubuntu 18.04 в качестве сервера веб-хостинга [закрыто]

Я использую Ubuntu 18.04 LTS, и я хотел настроить свою машину в качестве сервера веб-хостинга для размещения приложения Node.js, у меня уже есть приложение, и оно отлично работает на локальном порту 3000, и я купил домен сегодня утром, поэтому IDK, какой лучший подход к решению этой проблемы, я некоторое время искал в Интернете, но не нашел ничего подходящего, потому что IDK именно то, что мне нужно для запуска, потому что это мой первый раз, когда я делаю это, и это моя первая установка linux без виртуальной машины (все еще новичок в Linux), поэтому было бы здорово, если бы вы просто посоветовали мне, как это начать, или вы можете предложить хорошую статью, чтобы я начал.

Заранее спасибо.

0
задан 14 February 2020 в 22:30

2 ответа

У Вас есть некоторые варианты, некоторые лучше, чем другие и некоторые более безопасные, чем другие. То, что я сделал бы для хостинга node.js приложения, выполняется nginx (объявленный механизмом-x) как обратный прокси к приложению.

$> sudo apt install nginx

После того как это установлено, необходимо проверить, что это работает так, Вы знаете, что это работает. Чтобы сделать это, Вам будет нужен IP-адрес Вашего хоста.

$> ip address

Вывод будет иметь раздел с сетевым интерфейсом и под, это - IP-адрес. Для моего компьютера я получаю следующее:

$> ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:61:3d:43 brd ff:ff:ff:ff:ff:ff
    inet 10.0.20.11/23 brd 10.0.21.255 scope global dynamic ens3
       valid_lft 5987sec preferred_lft 5987sec
    inet6 fe80::5054:ff:fe61:3d43/64 scope link
       valid_lft forever preferred_lft forever

Таким образом, IP-адрес моего сервера 10.0.20.11 (/23 часть означает, что подсеть 255.255.254.0),

Если Вы имеете GUI, открытый окно браузера, и переходите к http://localhost. Если Вы выполняете сервер человечности без GUI, от другой машины переходят к http://10.0.20.11 (замените это IP Вашей собственной системы). Необходимо видеть Приветствие по умолчанию к nginx! страница говоря Вам работы сервера.

Таким образом, Ваш веб-сервер в порядке, теперь необходимо настроить обратный прокси:

Сначала удалите настройки по умолчанию:

$> sudo unlink /etc/nginx/sites-enabled/default

Теперь создайте новую конфигурацию:

$> sudo vi /etc/nginx/sites-available/reverse

Конечно, можно использовать любого редактора, Вы любите, просто заменяете vi нано, или gedit (замените sudo gksudo при использовании gedit). Вставьте следующее:

server {
    listen 80;
    server_name myserver.networkname.lan 10.0.20.11;

    location / {
        proxy_set_header   X-Forwarded-For $remote_addr;
        proxy_set_header   Host $http_host;
        proxy_pass         http://127.0.0.1:3000;
    }
}
}

server_name определение должно будет быть отредактировано, замена "myserver.networkname.lan" с fqdn Вашего сервера и IP-адресом с тем, который Вы нашли ранее. Я настроил свою сеть, чтобы иметь home.lan как название сети, таким образом, это был бы server.home.lan в моем случае. Если Вы не имеете, настраивают DNS для Вашей сети, можно пропустить его и просто вставить IP-адрес. Сохраните файл

Последний шаг должен связать Вашу виртуальную конфигурацию хоста с поддерживающим сайты

$> sudo ln -s /etc/nginx/sites-available/reverse /etc/nginx/sites-enabled/reverse

Тест конфигурация имеет правильный синтаксис

$> sudo nginx -t

Теперь перезапуск nginx

 $> sudo systemctl restart nginx

И перезагрузите окно браузера до.

** Конфигурация брандмауэра:

$> sudo ufw allow 'Nginx HTTP'

Если Вы имеете интернет-веб-сервер направления, получаете ssl сертификат от letsencrypt. Существует много руководств по тому, как сделать это в сети. Это потребует редактирования 'обратного' файла, таким образом, порт 443 будет использоваться nginx и был Вашим сертификатом, расположен. Если Вы не настроили DNS, необходимо рассмотреть выполнение так - это делает хостинг веб-приложения. Кроме того, если это - компьютер в Вашем доме, можно передать порт 80 (и 443) к хосту, таким образом, это доступно из Интернета. Затем можно использовать dynamicDNS, чтобы иметь любого в мировом движении к http (s)://your.dynamicdns.tld и использование Ваше приложение. Большая часть, это - все бесплатно все, в чем Вы нуждаетесь, компьютер.

Можно искать 'nginx, проксируют nodejs' для получения дополнительной информации обо всем вышеупомянутом и наборе руководств для обхода Вас через все.

0
ответ дан 20 February 2020 в 22:53

Каждый веб-сервер должен иметь среду, которая выполняет его и обрабатывает все сессии уровня 7 с Вашим приложением. Это происходит в каждой ОС и каждой машине. В Windows Server (и некоторые другие копии окон) у Вас даже есть примирительная встроенная функция, назвал IIS.

Ubuntu интегрируется очень хорошо с веб-серверами с открытым исходным кодом, такими как апач и nginx, у обоих есть за и против.

Как один из ответов, здесь предложенных и присоединенных nginx опция и руководство, я присоединю апачский подход с node.js и руководством, и выбор является чисто Вашим. Руководство было записано для версии 16.04, но те же шаги используются в 18,04.

Примечание: Вы не упоминали в своем вопросе, но я предполагаю, что Вы используете сервер человечности ОС для Вашего проекта.

Настройте приложение Node.js для веб-сайта с Apache на Ubuntu 16.04

0
ответ дан 20 February 2020 в 22:53

Другие вопросы по тегам:

Похожие вопросы: