Как создать два сервера на одном компьютере
У меня было несколько статей, посвященных настройке OpenVPN-серверов, но всегда подразумевался лишь один экземпляр сервера. И тут возникла задача запустить сразу два OpenVPN-сервера с разными настройками на одном физическом компьютере. Сегодня расскажу как это делается, если вдруг у кого-то возникнет такая же необходимость.
В моём случае, один из серверов должен был работать в режиме моста с TAP-интерфейсом, а второй поднимать туннель и виртуальную сеть через TUN-интерфейс. Причём клиенты, подключенные по VPN, должны иметь возможность взаимодействовать друг с другом, то есть должна быть настроена маршрутизация между OpenVPN каналами.
Зачем вообще это нужно? Дело в том, что в новой версии macOS, OpenVPN клиент Tunnelblick больше не может загружать модуль TAP-интерфейса (эта возможность осталась только для машин с процессором Intel и то при условии отключения защиты системы), потому нужен был сервер с другой настройкой, а существующую систему нарушать было нельзя. Но это мой частный случай и причины настройки нескольких VPN серверов могут быть разными.
Совместная работа нескольких OpenVPN-серверов возможна при условии, когда каждый из них слушает свой порт. Основной сервер у меня работает со стандартным UDP портом 1194, а дополнительный слушает UDP порт 1195 (это задаётся в конфигурационном файле сервера).
Раз у нас будет два сервера, то и файлов конфигурации тоже должно быть два — server.conf и server_tun.conf. Имя файлу можно задавать произвольно, я назвал server_tun.conf по имени создаваемого интерфейса. Подробнее о настройке OpenVPN-сервера с маршрутизированными туннелями я расскажу в следующий раз.
Итак, будем считать, что файлы конфигурации у нас настроены. Как же запустить оба сервера одновременно?
Автоматический запуск нескольких серверов OpenVPN
Для Linux систем достаточно в файле /etc/default/openvpn раскомментировать строку:
После чего перечитать конфигурацию systemd:
На FreeBSD это делается несколько иначе. Для начала создадим символическую ссылку на скрипт запуска (путь к файлу /usr/local/etc/rc.d/)
Далее в /etc/rc.conf добавляем следующие строки для автоматического запуска второго сервера при загрузке:
openvpn_tun_enable="YES"
openvpn_tun_configfile="/usr/local/etc/openvpn/server_tun.conf"
Обратите внимание, что в название демона "openvpn_tun" указана наша символическая ссылка, созданная ранее. Таким образом можно запустить столько OpenVPN-серверов, сколько вы посчитаете нужным.
Маршрутизация между двумя OpenVPN каналами с TUN и TAP интерфейсом
Напоследок хочу рассказать о настройке маршрутизации трафика между клиентами двух OpenVPN каналов, без чего они не могли достучаться друг для друга, хотя параметр `client-to-client` был прописан в настройках обоих серверов. В файл конфигурации мостового OpenVPN сервера (с интерфейсом TAP) нужно было добавить такую строку:
Таким образом мы добавим дополнительный маршрут в подсеть 10.10.0.0 (она настроена на втором сервере) клиентам, у которых настроены мостовые туннели первого сервера.
Подписывайтесь на канал и узнавайте первыми о новых материалах, опубликованных на сайте.
ЕСЛИ СЧИТАЕТЕ СТАТЬЮ ПОЛЕЗНОЙ,
НЕ ЛЕНИТЕСЬ СТАВИТЬ ЛАЙКИ И ДЕЛИТЬСЯ С ДРУЗЬЯМИ.
Вопросы по установке двух серверов 1С на одном компьютере возникают регулярно, несмотря на то, что яндекс с гуглом выдают достаточное количество ссылок на мануалы, как это сделать. Однако лично мне они помогли лишь частично, так как все необходимые знания пришлось «собирать по частям». Поэтому я решил написать свой собственный мануал, который, возможно, мне пригодится через год-другой, когда сам забуду, как это делать.
Есть два основных случая:
Вы хотите установить два сервера разных платформ, например 8.2.19.130 и 8.3.12.1412 (ключевым здесь будет отличие первых двух цифр – 8.2 и 8.3)
Вы хотите установить два сервера одной платформы или платформ, отличающихся минорными релизами, например два сервера платформы 8.3.11.3034 (один с отладкой, другой без, один 32, другой 64) или два сервера 8.3.11.3034 и 8.3.11412 (здесь ключевым будет совпадение первых двух цифр релиза – 8.3 и 8.3)
Случай 1:
Будем считать, что у вас уже имеется штатно установленный и работающий сервер 1С платформы 8.2. Трогать его мы не будем и сразу перейдем к установке сервера на платформе 8.3.
Для установки новой платформы можете взять дистрибутив под названием «Технологическая платформа 1С:Предприятия (64-bit) для Windows» (файл обычно называется windows64full.rar).
ВАЖНО! При установке новой версии платформы необходимо снять галку «Установить сервер 1С:Предприятие 8 как сервис Windows».
После установки платформы, необходимо запустить Command Prompt (Admin) – если у вас Win 10 или Win 2012 – правой кнопкой по кнопке Пуск – там выбрать Command Prompt (Admin). Дальше я буду исходить из того, что у вас есть определенные навыки работы через командную строку (если же нет, рекомендую прерваться и уделить пару часов изучению темы).
Для начала перейдем в папку Bin установленной платформы 8.3.11.3034:
И при помощи программы ragent.exe зарегистрируем еще один сервис для сервера 1С на платформе 8.3.11.3034:
.\ragent.exe -instsrvc -port 2540 -regport 2541 -range 2560:2591 -usr .\USR1CV8 -pwd PASSWORD -d "C:\Program Files\1cv8\srvinfo"
В данной строке мы даем команду создать службу, которая будет запускать агент сервера (RAGENT) на порту 2540, менеджер кластера (RMNGR) на 2541 и рабочие процессы (RPHOST) на портах с 2560 по 2591. Как вы заметили, порты отличаются от штатных первой цифрой (2 вместо 1). Напомню, что штатно используются порты 1540, 1541, 1560-1591. Также мы указываем локального пользователя .\ USR 1 CV 8 (точка и обратный слеш перед именем пользователя в данном случае обязательны), пароль пользователя PASSWORD и каталог C :\ Program Files \1 cv 8\ srvinfo , где будут храниться данные реестра кластера.
Запустить службу можно командной:
Или же просто открыть список служб и запустить вашу новую службу оттуда.
Чтобы только что установленный сервер 1С был доступен по сети, необходимо добавить используемые сервером порты (2540, 2541, 2560-2591) в исключения Брандмауэра Windows (Windows Firewall). Сделать это можно в настройках Брандмауэра или вот этой строкой:
netsh advfirewall firewall add rule name="1c_server_ports" protocol=TCP dir=in localport=2540,2541,2560-2591 action=allow
Далее вам необходимо будет открыть консоль, расположенную по адресу:
C:\Program Files\1cv8\common\1CV8 Servers (x86-64).msc
И создать еще один центральный сервер с указанным портом 2540. На картинке видны две консоли 8.2 (верхний) и 8.3 (нижний) и два сервера работающих на порту 1540 и 2540.
Создавать базы и подключаться к ним вы можете указывая имя сервера и номер порта, как на картинке.
Как вы видите, задача относительно простая. Однако цель моей статьи по большей части был второй случай, материалов по которому в гуглояндексах чуть меньше.
Случай 2:
В «1С:Предприятии» отсутствуют штатные средства регистрации нескольких экземпляров сервиса сервера «1С:Предприятия» одной версии. Для того чтобы выполнить такую регистрацию, следует воспользоваться утилитой sc . При выполнении такой регистрации, должны различаться имена служб, номера сетевых портов и адреса каталогов кластера.
А также приведен пример скрипта, который позволит установить службу, однако он в чистом виде работать отказывается (по крайней мере у меня). Вот чуть подправленная и рабочая версия этого скрипта, полученная методом проб и ошибок:
@echo off
rem %1 - version number
rem %2 - first 2 port characters. for 1540,1541,1560:1591 it will be 15
rem %3 - cluster reg catalog
rem register-service 8.3.11.3034 25 "C:\Program Files\1cv8\srvinfo2541"
set SrvUserName=.\USR1CV8
set SrvUserPwd=PASSWORD
set RangePort=%260:%291
set BasePort=%241
set CtrlPort=%240
set SrvcName="1C:Enterprise 8.3 Server Agent %CtrlPort% %1"
set BinPath="\"C:\Program Files\1cv8\%1\bin\ragent.exe\" -srvc -agent -regport %BasePort% -port %CtrlPort% -range %RangePort% -d \"%
3\" -debug"
set Desctiption="1C:Enterprise 8.3 Server Agent. Parameters: %1, %CtrlPort%, %BasePort%, %RangePort%"
if not exist "%
3"
sc stop %SrvcName%
sc delete %SrvcName%
sc create %SrvcName% binPath= %BinPath% start= auto obj= %SrvUserName% password= %SrvUserPwd% displayname= %Desctiption% depend= Tcpip/Dnscache/lanmanworkstation/lanmanserver/
Ключевые отличия – перед именем пользователя указывается точка и обратный слеш, в переменной BinPath вместо «/» перед параметрами указывается «-» и в параметре depend обязательно после lanmanserver должен быть «/». Ну и конечно не забудьте заменить PASSWORD на пароль вашего USR1CV8.
А теперь как с этим скриптом работать. Опять же, считаем что одна версия платформы штатно уже установлена и вы хотите установить еще один экземпляр сервера этого же релиза или этой же версии.
Для начала сохраните вашу отредактированную версию скрипта (назвав его register-service.bat) в папке с установленной новой платформой C :\ Program Files \1 cv 8\8.3.11.3034\ bin .
После этого откройте командную строку и перейдите в папку Bin установленной платформы 8.3.11.3034:
Теперь запустите ваш скрипт register-service.bat указав 3 обязательных параметра (пример этой команды в 4й строчке скрипта, который приведен выше):
register-service 8.3.11.3034 25 "C:\Program Files\1cv8\srvinfo2541"
Данный скрипт установит службу для платформы 8.3.11.3034 (первый параметр), пропишет штатные порты на 25** (второй параметр), укажет папку C:\Program Files\1cv8\srvinfo2541 (третий параметр) как каталог для данных реестра кластера (если папка отсутствует – она будет создана).
Тут важно понимать, что новому экземпляру сервера 1С нужна будет своя папка C:\Program Files\1cv8\srvinfo2541 (назвать ее можете как угодно), так как штатная папка C:\Program Files\1cv8\srvinfo уже будет занята первым экземпляром сервера.
Следующий важный нюанс, про который не говориться в статье на ИТС – необходимо дать права на папку C:\Program Files\1cv8\srvinfo2541 пользователю USR1CV8.
Готово. Можно открывать консоль служб Windows и запускать службу. Все дальнейшие действия не отличаются от случая 1.
НО. Есть еще нюанс. Если у вас второй экземпляр сервера другого релиза (например первый 8.3.10.2299, а второй 8.3.11.3034), то у вас возникнут определенные трудности связанные с запуском консоли сервера.
По умолчанию, вы всегда запускаете консоль C:\Program Files\1cv8\common\1CV8 Servers (x86-64).msc, которая в свою очередь работает с определенной версией файла radmin.dll. Т.е. консоль для работы с платформой 8.3.10.2299 должна работать с файлом C:\Program Files\1cv8\ 8.3.10.2299\bin\radmin.dll, а для работы с 8.3.11.3034 - C:\Program Files\1cv8\8.3.11.3034\bin\radmin.dll. Есть рекомендации, что перед запуском консоли для работы с определенной версией сервера – необходимо каждый раз регистрировать нужную версию radmin.dll при помощи regsvr32. Однако мне этот вариант не помог (и судя по вопросам на форумах не мне одному). И я нашел один рабочий способ.
В папке C:\Program Files\1cv8\common создаете два файла 8.3.10.2299.reg и 8.3.11.3034.reg с соответствующим содержим:
Также вы создаете два bat файла Console83102299.bat и Console83113034.bat с соответствующим содержимым:
regedit /s "C:\Program Files\1cv8\common\8.3.10.2299.reg"
mmc /s "C:\Program Files\1cv8\common\1CV8 Servers (x86-64).msc"
regedit /s "C:\Program Files\1cv8\common\8.3.11.3034.reg"
mmc /s "C:\Program Files\1cv8\common\1CV8 Servers (x86-64).msc"
И теперь для запуска консоли используете нужный вам bat файл Console831*****.bat.
В принципе, все. Ставьте лайки, подписывайтесь на канал, оставляйте комментарии (с).
Я только что узнал, что могу написать действительно простой веб-сервер использование Python. У меня уже есть веб-сервер Apache, я хотел бы попробовать веб-сервер на основе Python на этой машине. Но я боюсь, что могу получить какой-то конфликт, если я попытаюсь. Я имею в виду, как два веб-сервера будут "решать", кому нужен сервер запроса от клиента?
заставьте их слушать разные порты, и все будет в порядке.
веб-порт по умолчанию-80. При открытии url-адреса в браузере без указания порта по умолчанию используется 80.
вы можете настроить свой веб-сервер для прослушивания другого порта, но тогда вам также нужно будет явно указать его в url:
при выборе порта обратите внимание, что этот конкретный номер порта не используется программное обеспечение, которое вы установили и бегу по твоей коробке. В противном случае, как вы правильно догадались, возникнет конфликт.
P.S. всего несколько дней назад, делая переустановку, я не смог запустить IIS (по-видимому, без причины). Оказалось, что новая версия Skype заняла этот порт по умолчанию! Пришлось удалить его параметр "использовать порт 80 и 443 в качестве альтернативы для входящих соединений".
веб-сервер привязан к определенному порту. Обычно это порт 80. Если порт не указан явно,это порт, который браузер будет пытаться ударить.
вы можете заставить ваш альтернативный сервер работать на другом порту (8080 или 8081, похоже, популярны для веб-серверов, но выбор за вами ).
Это остановит конфликт. Все, что идет на порт 80, попадает на ваш старый сервер. Все идет к 8080 (или любому порту, который вы решите запустить свой сервер) поразит ваш простой сервер python.
чтобы попасть на другой сервер, используйте URL-адрес: -
Если вы действительно хотите запустить отдельные серверы для тестирования серверного программного обеспечения, см. другие ответы, но.
Это звучит так (потому что вы разработчик, а не сисадмин, верно?) ты действительно просто хочу запустить сайты Python и PHP на одном компьютере. Итак, простите меня, если я читаю ваш вопрос, но эта настройка позволяет мне запускать оба типа сайтов на одном компьютере с одним портом (порт 80) на одном сервере Apache.
Я делаю новые записи в моем файле/etc / hosts (или C:\Windows\System32\drivers\etc\hosts в Windows) и укажите их на 127.0.0.1:
затем в Apache добавляю VirtualHosts для каждого сайта:
Итак, сайты PHP работают в DocumentRoot как они всегда делают. И сайты Python работают в WSGI. И они оба работают в Apache. Затем, чтобы проверить, я просто добавляю ".local " в любом браузере, который я использую для работы с моей локальной копией.
вы не можете открыть два веб-сервера в одном порту (по умолчанию 80), если вы хотите сделать два или более веб-серверов, вы должны использовать разные порты.
Если вы используете DNS, Вы можете легко настроить свой веб-сервер для ответа с разными веб-сайтами на разные запросы, что может быть полезно, если вам нужно иметь разные веб-сайты для поддоменов или разных доменов.
веб-серверы не будут иметь права голоса в том, кто обслуживает запрос на подключение (эта задача все еще находится на уровне операционной системы). Кроме того, без специальных опций сокета сокет должен быть привязан к уникальному сочетанию интерфейса, интернет-адреса и порта.
Из обсуждения по установке сервера я понял, что, чтобы открыть второй серв надо создать вторую БД (у меня навикат).
Вопрос 1: Как переименовать старую базу? В гайде создается база "dayz_epoch", хочу переименовать в "epoch_cherno" без вайпа.
Вопрос 2: БД бэкапится через mysqldump.exe. А как восстановить этот бэкап в случае краша или случайного вайпа?
Вопрос 3: Надо ли менять порт в HiveExt.ini? (который 3306, думаю, что нет)
Вопрос 4: Надо ли менять юзера в HiveExt.ini? (думаю, что нет.)
Вопрос 5: Как быть с BEC'ом? Там указывается порт сервера и путь до папки BattleEye в инстанции. Делать 2 папки ВЕС'а? Или в одной папке делать 2 конфига? Тогда всё-равно придется их запускать 2 раза.
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Войти
Похожие публикации
Всем доброго времени суток.
Столкнулся с проблемой запуска/настройкой сервера, собственно ошибки при разных вариантах подключения приведу ниже.
распаковать Авто Бэкапы сервера (стандартные, БАГемии) Подскажите какой прогой, если возможно вообще.
Заранее Спасибо!
Ребят, может кто нибудь объяснить какова методика отлова причин краша сервера ?! У меня проект набрал хорошие обороты за месяц, но к сожалению начались краши, а опыта по устранению причин краша и по их выявлению у меня нет , что делать ?! куда капать ?! в логах непонятная тарабаршина написана +(
Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
Добрый день всем Админам, Отцам и Про-отцам любимой выживалки.
Перейду сразу к теме:
На клиенте моды обновляются а на сервере естественно нет.
У меня стоит проверка на наличие модов для обеих сторон, иначе не пускает на сервер.
Вопрос: Как сделать так, что бы на сервере тоже обновлялись моды?
Или как то в батнике путь к модам в стимовской папке указать? " !Workshop "
Подскажите пожалуйста как решить данную проблему?
Вот мой батничек на всякий случай:
Читайте также: