Так что я использую цифровой океан и nginx. Я хочу разместить несколько сайтов (мои проекты), но не хочу покупать домен для каждого из них.
Есть ли способ разместить несколько сайтов на nginx и digital ocean при доступе к ним с помощью этого ip?
Существует два способа достигнуть этого. Или Вы делаете все IP-адресом с местоположениями подпапки, или необходимо будет купить один домен и затем иметь несколько субдоменов на том домене (субдомены ничего не должны стоить, если Вы покупаете домен, но согласовываете с Вашим регистратором).
Я не советую методу IP-адреса, если только потому, что это является очень злым для запоминания IP-адресов, и при попытке делиться информацией другим, у Вас также есть та же проблема других, имеющих необходимость помнить IP-адрес.
ЗАМЕТЬТЕ! У нас нет информации о Ваших проектах, Вы продолжаете работать. Мы должны знать больше, чтобы определить, можно ли сделать этот подход, поскольку много веб-платформ не будут работать без истинного доменного имени, связанного с ним.
ПРЕДУПРЕЖДЕНИЕ: В продолжающемся тестировании этих примеров было обнаружено, что "Один домен, много подкаталогов" подход не берут любезно к проксирующим реверс данным к бэкенду, поскольку требуемый URI будет включать подкаталоги в URI; это могло бы заставить серверы бэкэнда иметь проблемы при поведении правильно.
На nginx
сторона, мы должны сделать 'злой' подход к этому - один IP-адрес, много docroots и местоположения подпапки. Это - очень очень злой подход и может вызвать много проблем с некоторыми веб-платформами.
Принятие значения по умолчанию nginx
установите как основа из репозиториев, затем мы должны создать конфигурацию сайта для обрабатывания каждого запроса подкаталога проекта. Затем у нас есть к символьной ссылке он в правильном месте.
Создать /etc/nginx/sites-available/my-projects
со следующим (используют это в качестве шаблона/руководства - он принимает три проекта со статическим HTML и никакие динамические веб-приложения в PHP или Python или подобный, и можно скопировать отдельные блоки местоположения и сделать новые местоположения соответственно; это также предполагает, что Ваш IP сервера 1.2.3.4
).
server {
listen 80 default_server;
server_name 1.2.3.4;
location / {
return 410; # Default root of site won't exist.
}
location /proj1/ {
alias /var/www/proj1;
try_files $uri $uri/ =404;
# any additional configuration for non-static content
}
location /proj2/ {
alias /var/www/proj2;
try_files $uri $uri/ =404;
# any additional configuration for non-static content
}
location /proj3/ {
alias /var/www/proj3;
try_files $uri $uri/ =404;
# any additional configuration for non-static content
}
}
Теперь мы заменяем конфигурацию по умолчанию (удалите ее), и добавьте наш:
sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/my-projects /etc/nginx/sites-enabled
И затем перезапуск nginx
сервис:
# If on 14.04, use this:
sudo service nginx restart
# If on 15.10 or newer, use this:
sudo systemctl restart nginx
Этот раздел ответа предполагает, что у Вас есть один домен и несколько субдоменов там. Если у Вас нет этого, разъясните это в своем вопросе
С каждым nginx
server {}
блок в конфигурации, необходимо будет определить имя сервера и вероятно установить четвертый блок сервера как 'выгоду все' для других запросов.
Пример: у Меня есть три проекта,
proj1
,proj2
,proj3
. Мне назвали доменevil-projects.net
(ПРИМЕЧАНИЕ: не существует действительно). Я хочу три различных субдомена, один для каждогоnginx
конфигурация, которая укажет на один проект на каждого. Мой сервер находится в 1.2.3.4, и он будет служить всем сайтам.
С вышеупомянутым сценарием у нас есть две части: домены и субдомены и конфигурация сервера.
Настройте свой DNS в Вашем хосте, таким образом, что следующее верно с записями DNS:
evil-projects.net IN A 1.2.3.4
proj1.evil-projects.net IN A 1.2.3.4
proj2.evil-projects.net IN A 1.2.3.4
proj3.evil-projects.net IN A 1.2.3.4
Теперь для Вашего nginx
конфигурации. Я предполагаю, что Вы собираетесь иметь значение по умолчанию nginx установки и пакеты из Репозиториев (я собираюсь использовать 14.04 в качестве основного примера). У нас будет четыре конфигурационных файла помещенными в /etc/nginx/sites-available
, сначала. Вы, возможно, должны использовать sudo
при создании этих файлов, поскольку рассматриваемая папка принадлежит root
.
/etc/nginx/sites-available/catch-all
- это будет 'выгодой все' для любых недопустимых доменов. Мне нравится возвращаться, ошибка HTTP кодируют 410 (УВЕДЕННЫЙ).
server {
listen 80 default_server;
server_name _;
return 410;
}
Затем, мы настраиваем конфигурацию для Ваших сайтов/проектов. Я собираюсь предположить, что они - все статические файлы, все же. Каждый из них подразумевает, что у Вас есть различные веб-каталоги для каждого проекта на сервере также (различные 'корни документа').
/etc/nginx/sites-available/proj1.evil-projects.net
:
server {
listen 80;
server_name proj1.evil-projects.net;
root /var/www/proj1;
index index.htm index.html;
location / {
try_files $uri $uri/ =404;
}
}
/etc/nginx/sites-available/proj2.evil-projects.net
:
server {
listen 80;
server_name proj2.evil-projects.net;
root /var/www/proj2;
index index.htm index.html;
location / {
try_files $uri $uri/ =404;
}
}
/etc/nginx/sites-available/proj3.evil-projects.net
:
server {
listen 80;
server_name proj3.evil-projects.net;
root /var/www/proj3;
index index.htm index.html;
location / {
try_files $uri $uri/ =404;
}
}
Мы затем должны удалить конфигурацию 'по умолчанию' из /etc/nginx/sites-enabled
, и добавьте наше собственное. Снова, sudo
необходим здесь.
sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/proj1.evil-projects.net /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/proj2.evil-projects.net /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/proj3.evil-projects.net /etc/nginx/sites-enabled/
И затем мы перезапускаем nginx
процесс:
# If on 14.04, use this:
sudo service nginx restart
# If on 15.04 or newer, use this:
sudo systemctl restart nginx
После того как DNS распространяет, сайты будут работать, как они должны.
/dev/sda3 ends after the last sector of /dev/sda
, указывает на поврежденную таблицу разделов, которая могла бы создать проблемы. Возможно, Ваши наблюдения в исходном вопросе о RAID подключены к этой проблеме. у меня нет опыта RAID, таким образом, я не могу помочь Вам, если существует RAID. , С другой стороны, если нет RAID, можно ли сказать мне о втором диске,/dev/sdb
? – sudodus 8 October 2017 в 05:14