Я не очень разбираюсь в защите сервера. Я слышал об iptables, но никогда им не пользовался (может, это не то, что мне нужно?).
Итак, прямо сейчас моя цель - иметь основной веб-сервер, отдельную базу данных и сервер memcached (если вы не думаете, что мне нужен только один веб-сервер и один сервер с mysql и memcached?).
Во всяком случае, есть ли способ на сервере, который не является веб-сервером (например, серверы mysql / memcached), в основном не принимать какой-либо трафик или что-либо из любого места, кроме веб-сервера? Как лучше всего это сделать? И это рекомендуется?
Также я использую облачные серверы rackspace. Они включают так называемый «внутренний IP-адрес». Я предполагаю, что это то, что мне следует использовать, потому что это, вероятно, быстрее, чем «внешний IP-адрес».
Вы можете запустить все три на одном компьютере, отключить IP-сеть и использовать для подключения сокеты unix.
Вы можете запустить webserver / memcached на одном сервере, mysql на другом, открыть только порт 3306 для IP вашего webserver / memcached машины.
Вы можете запускать их независимо и брандмауэром портов, чтобы только ваши машины попадали в определенные порты.
Вам нужно выяснить свою архитектуру и то, как вы собираетесь масштабироваться. В конце концов, вы можете разделить это на части по мере того, как начнете расти, но это не должно быть болезненным, если вы хорошо спланировали свой программный проект.
Ваш внутренний IP-адрес - это IP-адрес, который не маршрутизируется в Интернет, и это адрес, который вы будете использовать для соединения различных экземпляров. Возможно, что внутренний IP-адрес может видеть другие облачные машины, но просто не имеет доступа к Интернету, или он может быть разделен с помощью VLAN между вашими машинами. Я не пользовался их услугами, поэтому не могу это комментировать.