В империи царей мне довелось бывать только зимой, и я мечтал поехать туда летом, чтобы увидеть ее в свечении долгих летних дней, когда солнце садится всего на несколько минут. Я знал Санкт-Петербург, Москву, но мне еще неведом был Нижний Новгород.
А можно ли жить, не повидав Нижнего Новгорода?
(Теофиль Готье, "Путешествие в Россию")
+7(910)140-50-90 (Кэп)

Как запилить более 10 сайтов на бесплатной версии ISP Manager

Задача: есть VDS, установлен бесплатный ispmanager, нужно разместить 11й сайт (12й, 13й и т. д., насколько хватит дискового пространства), денег нет.

Решение

Любая ошибка в алгоритме может привести к тому, что слетят все ваши настройки, и придётся восстанавливать диск из бэкапа. Перед всеми подобными манипуляциями рекомендую сделать копии соответствующих папок, хотя это вам не поможет.

  1. /etc/bind/named.conf. Копируем последнюю запись, изменяя имя домена. Должен добавиться примерно такой кусок:

    zone "my.digital-hosting.biz" {
    	type master;
    	file "/etc/bind/domains/my.digital-hosting.biz";
    };
    
  2. /etc/bind/domains В этой папке добавляем файл аналогично соседним. В моём случае это файл с именем my.digital-hosting.biz такого содержания:

    $TTL 3600
    my.digital-hosting.biz.	IN	SOA	@@@@@@@@.fvds.ru. root.@@@@@@@@.fvds.ru. (2022110700 10800 3600 604800 86400)
    my.digital-hosting.biz.	IN	NS	ns1.firstvds.ru.
    my.digital-hosting.biz.	IN	NS	ns2.firstvds.ru.
    my.digital-hosting.biz.	IN	TXT	"v=spf1 ip4:86.110.212.97 a mx ~all"
    my.digital-hosting.biz.	IN	MX	10 mail
    my.digital-hosting.biz.	IN	MX	20 mail
    my.digital-hosting.biz.	IN	A	86.110.212.97
    www	IN	A	86.110.212.97
    ftp	IN	A	86.110.212.97
    mail	IN	A	86.110.212.97
    smtp	IN	A	86.110.212.97
    pop	IN	A	86.110.212.97
    
  3. /etc/nginx/vhosts/www-root Копируем файлик с конфигурацией, переименовываем и изменяем там параметры. В моем случае my.digital-hosting.biz.conf. Здесь особенно важны строки 43-44, в которых прописаны пути к сертификатам. Эти файлы при перезапуске служб должны реально физически существовать. /var/www/www-root/data/my.digital-hosting.biz — это путь к папке, где валяются файлы сайта, куда нужно загрузить хотя-бы index.html (лучше, чтобы название отличалась от имени домена).

    server {
    	server_name my.digital-hosting.biz www.my.digital-hosting.biz;
    	charset off;
    	index index.php index.html;
    	disable_symlinks if_not_owner from=$root_path;
    	include /etc/nginx/vhosts-includes/*.conf;
    	include /etc/nginx/vhosts-resources/my.digital-hosting.biz/*.conf;
    	access_log /var/www/httpd-logs/my.digital-hosting.biz.access.log;
    	error_log /var/www/httpd-logs/my.digital-hosting.biz.error.log notice;
    	ssi on;
    	set $root_path /var/www/www-root/data/my.digital-hosting.biz;
    	root $root_path;
    	gzip on;
    	gzip_comp_level 5;
    	gzip_disable "msie6";
    	gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;
    	location / {
    		location ~ [^/]\.ph(p\d*|tml)$ {
    			try_files /does_not_exists @fallback;
    		}
    		location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
    			expires 24h;
    			try_files $uri $uri/ @fallback;
    		}
    		location / {
    			try_files /does_not_exists @fallback;
    		}
    	}
    	location @fallback {
    		proxy_pass http://127.0.0.1:8080;
    		proxy_redirect http://127.0.0.1:8080 /;
    		proxy_set_header Host $host;
    		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    		proxy_set_header X-Forwarded-Proto $scheme;
    		proxy_set_header X-Forwarded-Port $server_port;
    		access_log off;
    	}
    	return 301 https://$host:443$request_uri;
    	listen 86.110.212.97:80;
    }
    server {
    	server_name my.digital-hosting.biz www.my.digital-hosting.biz;
    	ssl_certificate "/var/www/httpd-cert/www-root/my.digital-hosting.biz_le1.crtca";
    	ssl_certificate_key "/var/www/httpd-cert/www-root/my.digital-hosting.biz_le1.key";
    	ssl_ciphers EECDH:+AES256:-3DES:RSA+AES:!NULL:!RC4;
    	ssl_prefer_server_ciphers on;
    	ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
    	ssl_dhparam /etc/ssl/certs/dhparam4096.pem;
    	charset off;
    	index index.php index.html;
    	disable_symlinks if_not_owner from=$root_path;
    	include /etc/nginx/vhosts-includes/*.conf;
    	include /etc/nginx/vhosts-resources/my.digital-hosting.biz/*.conf;
    	access_log /var/www/httpd-logs/my.digital-hosting.biz.access.log;
    	error_log /var/www/httpd-logs/my.digital-hosting.biz.error.log notice;
    	ssi on;
    	set $root_path /var/www/www-root/data/my.digital-hosting.biz;
    	root $root_path;
    	gzip on;
    	gzip_comp_level 5;
    	gzip_disable "msie6";
    	gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;
    	location / {
    		location ~ [^/]\.ph(p\d*|tml)$ {
    			try_files /does_not_exists @fallback;
    		}
    		location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
    			expires 24h;
    			try_files $uri $uri/ @fallback;
    		}
    		location / {
    			try_files /does_not_exists @fallback;
    		}
    	}
    	location @fallback {
    		proxy_pass http://127.0.0.1:8080;
    		proxy_redirect http://127.0.0.1:8080 /;
    		proxy_set_header Host $host;
    		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    		proxy_set_header X-Forwarded-Proto $scheme;
    		proxy_set_header X-Forwarded-Port $server_port;
    		access_log off;
    	}
    	listen 86.110.212.97:443 ssl http2;
    }
    
  4. /etc/apache2/vhosts/www-root Тут создаём копию конфигурации для Apache.

    
    	ServerName my.digital-hosting.biz
    	DocumentRoot /var/www/www-root/data/my.digital-hosting.biz
    	ServerAdmin webmaster@my.digital-hosting.biz
    	AddDefaultCharset off
    	AssignUserID www-root www-root
    	CustomLog /var/www/httpd-logs/my.digital-hosting.biz.access.log combined
    	ErrorLog /var/www/httpd-logs/my.digital-hosting.biz.error.log
    	
    		SetHandler application/x-httpd-php
    	
    	
    		Include /etc/apache2/users-php/www-root.conf
    		Include /etc/apache2/vhosts-php/my.digital-hosting.biz.conf
    		php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f webmaster@my.digital-hosting.biz"
    		php_admin_value upload_tmp_dir "/var/www/www-root/data/mod-tmp"
    		php_admin_value session.save_path "/var/www/www-root/data/mod-tmp"
    		php_admin_value open_basedir "/var/www/www-root/data:."
    	
    	
    		Include /etc/apache2/users-php/www-root.conf
    		Include /etc/apache2/vhosts-php/my.digital-hosting.biz.conf
    		php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f webmaster@my.digital-hosting.biz"
    		php_admin_value upload_tmp_dir "/var/www/www-root/data/mod-tmp"
    		php_admin_value session.save_path "/var/www/www-root/data/mod-tmp"
    		php_admin_value open_basedir "/var/www/www-root/data:."
    	
    	
    		Include /etc/apache2/users-php/www-root.conf
    		Include /etc/apache2/vhosts-php/my.digital-hosting.biz.conf
    		php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f webmaster@my.digital-hosting.biz"
    		php_admin_value upload_tmp_dir "/var/www/www-root/data/mod-tmp"
    		php_admin_value session.save_path "/var/www/www-root/data/mod-tmp"
    		php_admin_value open_basedir "/var/www/www-root/data:."
    	
    	SetEnvIf X-Forwarded-Proto https HTTPS=on
    	ServerAlias www.my.digital-hosting.biz
    	DirectoryIndex index.php index.html
    	
    		SetHandler application/x-httpd-php-source
    	
    
    
    	Options +Includes -ExecCGI
    	
    		php_admin_flag engine on
    	
    	
    		php_admin_flag engine on
    	
    	
    		php_admin_flag engine on
    	
    
    
    
  5. /etc/apache2/vhosts-php Тут просто создаём копию нулевого файла соответствующим именем my.digital-hosting.biz.conf

  6. Теперь создадим видимость присутствия SSL-сертификата (позже запилим его сертботом). Идем сюда /var/www/httpd-cert/www-root и просто копируем старые файлы сертификатов с заменой имён. Соответственно, имена должны совпадать с прописанными выше в файлах конфигурации (строки 43,44 /etc/nginx/vhosts/www-root/my.digital-hosting.biz.conf).

    Файлы сертификатов

  7. Наконец-то можно перезагрузить службы nginx и apache в ispmanager. Если они перезапустились нормально, лампочки горят, то вы всё сделали правильно. Если какая-то служба не запускается, ищете косяки в правке файлов. Я рекомендую перезапускать службы непосредственно из ispmanager, хотя можно это делать и из ssh-консоли соответствующими командами.

    Перезапуск служб

  8. Осталось не много. Идём заниматься управлением доменами в DNS-менеджер типа https://msk-dns2.hoztnode.net/dnsmgr. Там нужно всего лишь создать домен и прописать IP. Если у вас уже были прописаны NS в настройках домена там, где вы его оформляли, сразу после этого можно открывать сайт смотреть на ваш index.html и всё, что вы закачали в папку файлов. Вопросы модерирования баз данных я здесь не рассматриваю.

  9. Когда сайт открывается и браузер ругается на отсутствие SSL, самое время установить настоящий сертификат сертботом командой в SSH-консоли типа (надеюсь, certbot на вашу версию Linux установите сами, если не справитесь — звоните)

    sudo certbot --nginx -d my.digital-hosting.biz -d www.my.digital-hosting.biz
    

Спасибо за внимание. Рекомендую всё-таки заплатить.

Следующая статья: Интервью с Яндексом 2013 г. https://capweb.ru/yandex_interview.html

Предыдущая статья: YML для староверов MODx Evolution https://capweb.ru/yml-yandex-modx-evolution.html

Оставьте Вашу контактную информацию, и мы свяжемся с Вами!

Получайте горячие новости интернет-маркетинга и вечную скидку 5%!