Несколько сайтов на одном ip

Как разместить несколько сайтов на одном ip?

Допустим у вас возникла необходимость на своем веб-сервере(приложений) разместить несколько сайтов. Как это сделать? Тут нам на помощь приходит NGINX.

nginx [engine x] — это HTTP-сервер и обратный прокси-сервер, почтовый прокси-сервер, а также TCP/UDP прокси-сервер общего назначения, изначально написанный Игорем Сысоевым. Уже длительное время он обслуживает серверы многих высоконагруженных российских сайтов, таких как Яндекс, Mail.Ru, ВКонтакте и Рамблер. Согласно статистике Netcraft nginx обслуживал или проксировал 24.86% самых нагруженных сайтов в феврале 2016 года. Вот некоторые примеры успешного внедрения nginx (тексты на английском языке): Netflix, WordPress.com, FastMail.FM.

Особо в тонкости вдаваться не будем, разберем алгоритм и простой конфиг с двумя сайтами.

Удаляем файлы конфигов /etc/nginx/site-available/

sudo rm -r /etc/nginx/site-available/

Создаем конфиг default в /etc/nginx/site-available/

sudo touch /etc/nginx/site-available/default

В конфиг прописываем настройки(ниже);

 server {
 listen 80 default;
server_name site1.ru;
 location ~* \.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|swf|ico|flv|txt|xml|docx|xlsx)$ {
root /var/www/site1.ru;
index index.html index.php;
access_log off;
expires 30d;
error_page 404 = @fallback;
proxy_cache_valid 404 1m;
}
 location ~ /\.ht {
deny all;
}
 location / {
 proxy_pass https://127.0.0.1:8080/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-for $remote_addr;
proxy_set_header Host $host;
proxy_connect_timeout 60;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_redirect off;
proxy_set_header Connection close;
proxy_pass_header Content-Type;
proxy_pass_header Content-Disposition;
proxy_pass_header Content-Length;
}
 location @fallback {
proxy_pass https://127.0.0.1:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-for $remote_addr;
proxy_set_header Host $host;
}
}
 server {
 listen 80 default;
server_name site2.ru;
 location ~* \.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|swf|ico|flv|txt|xml|docx|xlsx)$ {
root /var/www/site2.ru;
index index.html index.php;
access_log off;
expires 30d;
error_page 404 = @fallback;
proxy_cache_valid 404 1m;
}
 location ~ /\.ht {
deny all;
}
 location / {
 proxy_pass https://127.0.0.1:8080/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-for $remote_addr;
proxy_set_header Host $host;
proxy_connect_timeout 60;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_redirect off;
proxy_set_header Connection close;
proxy_pass_header Content-Type;
proxy_pass_header Content-Disposition;
proxy_pass_header Content-Length;
}
 location @fallback {
proxy_pass https://127.0.0.1:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-for $remote_addr;
proxy_set_header Host $host;
}
}

Делаем симплинк:

sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default

Рестартим nginx

sudo service nginx restart

Profit

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

 

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.