Почему не желательно иметь базу данных и веб-сервер на той же машине?

В простых словах tabindex используется для фокусировки на элементах. Синтаксис: tabindex="numeric_value" Этот numeric_value - вес элемента. Вначале будет доступно более низкое значение.

117
задан Tai Squared 18 March 2009 в 20:29
поделиться

15 ответов

  1. безопасность. Ваш веб-сервер живет в демилитаризованной зоне, доступной для общедоступного Интернета и взятия недоверяемого входа от анонимных пользователей. Если Ваш веб-сервер поставлен под угрозу, и Вы следовали наименьшему количеству правил полномочия в соединении с Вашим DB, максимальное воздействие - то, что Ваше приложение может сделать через базу данных API. Если у Вас есть бизнес-промежуточный уровень, у Вас есть еще один шаг между Вашим взломщиком и Вашими данными. Если с другой стороны, Ваша база данных находится на том же сервере, у взломщика теперь есть корневой доступ к Вашим данным и серверу.
  2. Масштабируемость. Хранение Вашего веб-сервера, не сохраняющего состояние, позволяет Вам масштабировать свои веб-серверы горизонтально в значительной степени легко. очень трудно горизонтально масштабировать сервер базы данных.
  3. Производительность. 2 поля = 2 раза ЦП, 2 раза RAM и 2 раза шпиндели для доступа к диску.

Все, что быть сказанным, я могу, конечно, видеть разумные случаи, что ни одна из тех точек действительно не имеет значения.

144
ответ дан Mark Brackett 5 November 2019 в 08:47
поделиться

Операционная система является другим соображением. В то время как Ваша база данных может потребовать больших пространств памяти и поэтому UNIX, Вашего веб-сервера - или более конкретно Вашего сервера приложений, так как Вы упоминаете, только два уровня - могут быть основанным на.NET, и поэтому потребовать Windows.

-2
ответ дан Chris Noe 5 November 2019 в 08:47
поделиться

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

1
ответ дан HLGEM 5 November 2019 в 08:47
поделиться

Я слушал тот подкаст, и это было забавно, но аргумент безопасности не имел никакого смысла мне. Если Вы поставили под угрозу сервер A, и тот сервер может получить доступ к данным по серверу B, то у Вас немедленно есть доступ к данным по серверу B.

2
ответ дан Daniel Earwicker 5 November 2019 в 08:47
поделиться

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

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

Интересующийся тем, что могли бы сказать другие.

2
ответ дан George Mauer 5 November 2019 в 08:47
поделиться

Это зависит от приложения и цели. Когда высокая доступность и производительность не очень важны, это не плохо к не разделить DB и веб-сервер. Особенно рассматривая увеличение производительности - если appliation делает большую сумму запросов базы данных, значительная сумма сетевой нагрузки может быть удалена путем хранения всего этого в той же системе, поддержания времени отклика на низком уровне.

3
ответ дан simon 5 November 2019 в 08:47
поделиться

Я могу говорить из собственного опыта, что это часто - хорошая идея поместить веб-сервер и базу данных по различным машинам. Если у Вас есть приложение, которое является интенсивно использующим ресурсы, оно может легко заставить циклы ЦП на машине достигать максимума, по существу остановив машину. Однако, если бы Ваше приложение ограничило использование базы данных, это, вероятно, не было бы никакое грандиозное предприятие сделать, чтобы они совместно использовали сервер.

6
ответ дан Mr. Will 5 November 2019 в 08:47
поделиться

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

8
ответ дан Paul Tomblin 5 November 2019 в 08:47
поделиться

Безопасность является главным беспокойством. Идеально Ваш сервер базы данных должен находиться позади брандмауэра только с портами, требуемыми выполнить открытый доступ к данным. Ваше веб-приложение должно соединяться с сервером базы данных с учетной записью SQL, которая имеет как раз достаточно прав для приложения функционировать и не больше. Например, необходимо удалить права, которые разрешают отбрасывать объектов, и несомненно Вы не должны соединять учетные записи использования, такие как 'sa'.

, Если Вы теряете веб-сервер налету (т.е. полноценное расширение полномочий к правам администратора), худший вариант развития событий - то, что база данных Вашего приложения может быть поставлена под угрозу, но не целый сервер базы данных (как имел бы место, если бы сервер базы данных и веб-сервер были той же машиной). Если Вы зашифровали свои строки соединения с базой данных, и хакер не является достаточно здравым смыслом для дешифрования их тогда все, что Вы потеряли, веб-сервер.

9
ответ дан Kev 5 November 2019 в 08:47
поделиться

Это не делает действительно вопрос (можно вполне счастливо выполнить сайт с сетью/базой данных на той же машине), это - просто самый легкий шаг в масштабировании..

Это точно, что StackOverflow сделал - запускающийся с единственной машины, выполняющей IIS/SQL Server, тогда когда это начало в большой степени загружаться, второй сервер был куплен, и SQL-сервер перешелся на это.

, Если производительность не является проблемой, не тратьте впустую деньги, покупая/поддерживая два сервера.

42
ответ дан dbr 5 November 2019 в 08:47
поделиться

Я думал бы, что большим фактором будет производительность. И веб-сервер / код приложения и SQL Server кэшировали бы обычно запрашиваемые данные в памяти, и Вы уничтожаете свою производительность кэша путем выполнения их в том же пространстве памяти.

14
ответ дан Tom Ritter 5 November 2019 в 08:47
поделиться

С другой стороны, отсылая к другому блоггингу Scott (Watermasyck, Telligent) - они нашли, что большинство пользователей могло ускорить веб-сайты (использующий Общественный Сервер Telligent) путем помещения базы данных по той же машине как веб-сайт. Однако в случае их клиента, обычно дб & веб-сервер является единственными приложениями на той машине, и веб-сайт не напрягает машину так очень. Затем эффективность не необходимости отправить данные по сети больше, которые восполнили увеличенную деформацию.

22
ответ дан James Curran 5 November 2019 в 08:47
поделиться

Ничего себе, Никто не поднимает то, что при фактической покупке SQL-сервера в маркерах 5k Вы могли бы хотеть использовать его для больше, чем своего веб-приложения. Если Ваш экспресс использования, возможно, Вы не заботитесь. Я вижу SQL-серверы, выполненные Базы данных для 20 - 30 applicaitions, так помещая его на веб-сервер не были бы умны.

, Во-вторых, зависит от того, для кого сервер. Я действительно работаю на финансовые компании и правительство, Таким образом, мы используем сумасшедшую боль в подходе задницы использования только sprocs и ограничения портов от веб-сервера до SQL. Таким образом, если веб-приложение взламывается. Единственная вещь, которую может сделать хакер, назвать sprocs, поскольку учетная запись пользователя на веб-сервере заблокирована вниз, чтобы только видеть/называть sprocs на DB. Таким образом, теперь хакер должен выяснить, как войти в DB. Если на веб-сервере хорошо его довольно легкое для получения до.

5
ответ дан Jojo 5 November 2019 в 08:47
поделиться

Tom корректен на этом. Некоторые другие причины состоят в том, что это не экономически эффективно и что существуют дополнительные угрозы безопасности.

веб-серверы имеют различные требования к аппаратным средствам, чем серверы баз данных. Тариф серверов баз данных лучше с большой памятью и действительно быстрым дисковым массивом, в то время как веб-серверы только требуют достаточной памяти к файлам кэша и частым запросам DB (в зависимости от Вашей установки). Относительно эффективности затрат эти два сервера не обязательно будут менее дорогими, однако отношение производительности/стоимости должно быть выше, так как Вы не имеете к различным приложениям, конкурирующим за ресурсы. Поэтому Вы, вероятно, оказываетесь перед необходимостью тратить намного больше для одного сервера, который угождает обоим и предлагает эквивалентную производительность 2 специализированным.

проблема безопасности - то, что, если единственная машина поставлена под угрозу, и веб-сервер и база данных уязвимы. С двумя серверами у Вас есть некоторая комната дыхания, поскольку 2-й сервер все еще будет защищенным (некоторое время, по крайней мере).

кроме того, существуют некоторые преимущества масштабируемости, так как Вам, вероятно, только придется поддержать несколько серверов баз данных, которые используются набором различных веб-приложений. Таким образом, у Вас есть меньше работы, чтобы сделать применение обновлений или патчей и выполнения настройки производительности. Я полагаю, что существуют инструменты управления сервером для того, чтобы сделать эти задачи легче хотя (в единственном случае машины).

14
ответ дан Dana the Sane 5 November 2019 в 08:47
поделиться

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

Например, если у вас есть 1 сервер, который выполняет и веб-сайт, и база данных, содержащая 8 ЦП, вам придется заплатить за лицензию на 8 ЦП. Однако, если у вас есть два сервера с 4 процессорами каждый и база данных работает на одном сервере, вам нужно будет заплатить только за 4 лицензии на ЦП

2
ответ дан 24 November 2019 в 02:05
поделиться
Другие вопросы по тегам:

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