Я ищу способ запустить два веб-сайта в домене верхнего уровня на одном экземпляре ECS. Я новичок в Alibaba Cloud и ищу лучшие варианты для достижения этой цели.
Запуск 2 веб-сайтов на одном экземпляре ECS Alibaba Cloud
Ответы (2)
Есть разные способы сделать это,
- Подпапки («example.com/web1», «example.com/web2», «example.com/web3»)
- Виртуальный хостинг на основе порта (example.com:80, example.com:8080, example.com:8181)
- Поддомены ("web1.example.com", "web2.example.com", "web3.example.com")
- Виртуальный хостинг на основе имени ("web1.com", "web2.com", "web3.com")
Перед тем как это сделать, вам необходимо сопоставить записи A DNS ваших доменов верхнего уровня с общедоступным IP-адресом в Интернете экземпляра ECS. Теперь у вас есть два подхода к этому.
Один из способов - создать только один сайт, содержащий их содержимое, и обслуживать нужные страницы путем распознавания хоста с помощью заголовков HTTP в запросе, но это делает вашу информацию доступной для пользователя. Такой подход небезопасен.
Другой и лучший способ - поместить веб-сайты в контейнеры и использовать обратный прокси-сервер для сопоставления веб-сайтов.
Более подробные шаги упомянуты здесь:
Спасибо
Это зависит от вашей ОС (windows / linux) и веб-сервера (apache / nginx), которые вам нужны. По моему опыту, я использовал веб-сервер NGINX с веб-сервером Ubuntu, вот шаги:
- Направьте каждый DNS (example1.com, example2.com и т. Д.) На свой общедоступный IP-адрес ECS, сопоставив запись A с помощью каждого диспетчера DNS. Вот пример, если вы используете диспетчер DNS alibaba.
- Убедитесь, что вы открываете порты, которые будут использоваться для ваших веб-приложений (обычно 80 или 443), добавив правило в присоединенную группу безопасности для вашей ECS.
- Установите свои приложения (существует множество вариантов, используете ли вы PHP, Django, Nodejs и т. Д.)
- Настройте первую сеть в Nginx, вот простой пример использования приложений django с портом 80, приложения уже установлены и привязаны к файлу сокета:
Судо нано / и т.д. / nginx / сайт включен / пример1
upstream example1 {
server unix:/run/uwsgi/exampple1.sock;
}
server {
listen 80;
server_name example1.com;
charset utf-8;
client_max_body_size 75M;
access_log /var/log/example1/example1.nginx.access.log;
error_log /var/log/example1/example1.nginx.error.log;
location /media {
alias /opt/apps/example1/files/media;
}
location /static {
alias /opt/apps/example1/files/static-collected;
}
location / {
uwsgi_pass example1;
include uwsgi_params;
}
}
- Настройте вторую сеть в Nginx, вот простой пример использования приложений PHP с портом 80:
судо нано / и т.д. / nginx / сайт-включен / пример2
server {
listen 80;
server_name example2.com;
charset utf-8;
client_max_body_size 75M;
access_log /var/log/example2/example2.nginx.access.log;
error_log /var/log/example2/example2.nginx.error.log;
root /opt/apps/example2; # YOUR LOCATION WEB RESOURCES
index index.php index.html index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}