Сокет Unix по сравнению с TCP/IP host:port

Вы рекомендовали бы устанавливать/использовать phpMyAdmin на prduction веб-сервере?

Нет, просто.

phpMyAdmin имеет печально известную историю безопасности, как детализировано на SecurityFocus.

Вы не говорите, какую платформу Вы используете, но предполагаете, что у Вас есть удаленный доступ, я предлагаю:

  • Когда необходимо выполнить основные задачи, такие как проверка состояния или выполнение дампа.

    Изучите, как использовать горстку основного SQL и утилит командной строки из памяти. Вы найдете, что это могло часто быть более быстро, чем использование phpMyAdmin для достижения того же результата, и они будут служить положительно неоценимый в чрезвычайной ситуации.

  • Когда необходимо выполнить задачи, которые являются неловкими или невозможными без GUI.

    Используйте локальный клиент с туннелированным доступом (таким как SSH) к серверу MySQL на localhost. Таким образом, Вы имеете всю власть хорошего клиента, защищаете транспортный и ограниченный доступ. Некоторыми хорошими клиентами является Navicat, HeidiSQL и SQLyog. Некоторые из тех клиентов даже установят туннели автоматически для Вас.

42
задан 27 October 2010 в 16:30
3 ответа

Сокеты Unix немного быстрее, поскольку у Вас нет tcp-издержек. Если Вы понимаете, что эта потеря производительности является вопросом загрузки сервера. Если у Вас не будет очень высокой загрузки сервера, то Вы не распознаете его.

При использовании Тюрем (FreeBSD) или некоторая другая технология виртуализации для разделения, например, Сервер MySQL от веб-сервера, Вы часто используете установку tcp/ip вместо сокетов. Правила брандмауэра должны ограничить доступ все же.

Необходимо узнать, находится ли система под большой нагрузкой так, чтобы сокет был необходимостью, или можно сфокусироваться на хорошем проектировании системы (разделение сервисов), затем tcp/ip решение было бы лучше.

Поэтому сделайте длинный ответ коротким:

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

40
ответ дан 28 November 2019 в 19:42
  • 1
    программирования: сокеты быстрее... не они оба сокеты? –  Bart Silverstrim 27 October 2010 в 16:49
  • 2
    @Bart Silverstrim: нет, сокеты являются сокетами; TCP имеет подобный сокету API –  Javier 27 October 2010 в 17:13
  • 3
    я полагаю, что их называют "Сокетами Unix" и "интернет-сокетами". (socket(AF_INET, SOCK_STREAM, ...)) –  grawity 27 October 2010 в 19:44

Это - в основном компромисс между производительностью и гибкостью. Сокеты домена Unix дадут Вам немного лучшую производительность, в то время как сокет, подключенный к localhost, дает Вам немного лучшую мобильность. Можно легко переместить приложение для сервера в другую ОС, просто изменив IP-адрес от localhost до другого имени хоста.

Сокет домена Unix использует локальную файловую систему для создания механизма IPC между серверными и клиентскими процессами. Вы будете видеть файл в / var где-нибудь, когда сокет домена Unix будет подключен.

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

11
ответ дан 28 November 2019 в 19:42

Плюсы сокетов домена Unix.

  1. Доступом можно управлять через систему разрешений пользователей Unix либо путем установки разрешений на самом сокете, либо путем чтения сервером имени пользователя подключающегося клиента.
  2. Меньше шансов случайно открыть розетку для внешнего мира. Например, если на сервере также работает веб-прокси, это может непреднамеренно разрешить подключения к сокетам на локальном хосте.

Минусы доменных сокетов Unix

  1. Не переносятся на системы, отличные от Unix.
  2. Может быть неудобно с chroot, тюрьмами или аналогичный
3
ответ дан 28 November 2019 в 19:42

Теги

Похожие вопросы