Запуск 2 веб-сайтов на одном экземпляре ECS Alibaba Cloud

Я ищу способ запустить два веб-сайта в домене верхнего уровня на одном экземпляре ECS. Я новичок в Alibaba Cloud и ищу лучшие варианты для достижения этой цели.


person Deepak Kamat    schedule 22.06.2018    source источник
comment
Версия ОС? Версия веб-сервера? Планируете ли вы установить SSL-сертификаты для каждого домена?   -  person John Hanley    schedule 22.06.2018


Ответы (2)


Есть разные способы сделать это,

  1. Подпапки («example.com/web1», «example.com/web2», «example.com/web3»)
  2. Виртуальный хостинг на основе порта (example.com:80, example.com:8080, example.com:8181)
  3. Поддомены ("web1.example.com", "web2.example.com", "web3.example.com")
  4. Виртуальный хостинг на основе имени ("web1.com", "web2.com", "web3.com")

Перед тем как это сделать, вам необходимо сопоставить записи A DNS ваших доменов верхнего уровня с общедоступным IP-адресом в Интернете экземпляра ECS. Теперь у вас есть два подхода к этому.

Один из способов - создать только один сайт, содержащий их содержимое, и обслуживать нужные страницы путем распознавания хоста с помощью заголовков HTTP в запросе, но это делает вашу информацию доступной для пользователя. Такой подход небезопасен.

Другой и лучший способ - поместить веб-сайты в контейнеры и использовать обратный прокси-сервер для сопоставления веб-сайтов.

Более подробные шаги упомянуты здесь:

https://www.alibabacloud.com/blog/hosting-multiple-websites-on-a-single-alibaba-cloud-ecs-server-the-devops-way_593711

Спасибо

person Hard Coder    schedule 22.06.2018

Это зависит от вашей ОС (windows / linux) и веб-сервера (apache / nginx), которые вам нужны. По моему опыту, я использовал веб-сервер NGINX с веб-сервером Ubuntu, вот шаги:

  1. Направьте каждый DNS (example1.com, example2.com и т. Д.) На свой общедоступный IP-адрес ECS, сопоставив запись A с помощью каждого диспетчера DNS. Вот пример, если вы используете диспетчер DNS alibaba.
  2. Убедитесь, что вы открываете порты, которые будут использоваться для ваших веб-приложений (обычно 80 или 443), добавив правило в присоединенную группу безопасности для вашей ECS.
  3. Установите свои приложения (существует множество вариантов, используете ли вы PHP, Django, Nodejs и т. Д.)
  4. Настройте первую сеть в 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;
    }
}
  1. Настройте вторую сеть в 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;
    }
}
person Samsul Hadi 夏豪迪    schedule 08.08.2020