W niektórych rodzajach wdrożeń, szczególnie gdy rozbudowane aplikacje dynamiczne opierają się na dużej bazie danych, oddzielenie serwera bazy danych od serwera aplikacji może pozwolić aplikacji na skalowanie i obsługę znacznie większej bazy użytkowników. Wyznaczenie oddzielnego serwera, który będzie używany wyłącznie przez MySQL, pozwoli serwerowi WWW aplikacji na wydajniejsze dostarczanie treści, podczas gdy serwer bazy danych będzie w stanie szybciej reagować.
W rezultacie te serwery baz danych mogą skuteczniej obsługiwać wdrożenia o dużym obciążeniu ruchem. Może to pomóc w osiągnięciu wyższej wydajności dla szeregu aplikacji, od popularnych pakietów, takich jak WordPress i Drupal, po niestandardowe aplikacje napisane w Ruby on Rails i Django.
Wymagania wstępne
W tym przewodniku będziemy używać dwóch Linodów. Zauważ, że różni się to od zwykłego wdrożenia drugiego profilu konfiguracyjnego na istniejącym koncie Linode, ponieważ oba serwery będą musiały działać w tym samym czasie. Zakładamy, że postępowałeś zgodnie z przewodnikiem Konfigurowanie i zabezpieczanie instancji obliczeniowej dla obu Linodów.
- Dla Linode z uruchomionym serwerem sieciowym, odtąd serwerem aplikacji, powinieneś już mieć zainstalowany Apache (lub preferowany serwer sieciowy). Aby zainstalować nową, postępuj zgodnie z przewodnikiem LAMP dla swojej dystrybucji. Przewodnik po LAMP zawiera MySQL, którego nie musisz instalować.
- Dedykowany MySQL Linode powinien mieć zainstalowany MySQL. Postępuj zgodnie z instrukcją instalacji serwera bazy danych MySQL dla swojej dystrybucji. Pamiętaj, że nie musisz instalować Apache na dedykowanym serwerze MySQL.
Ponadto będziesz chciał skonfigurować aliasy dla prywatnego adresu IP każdego Linode. Aby uzyskać pomoc, możesz skorzystać z przewodnika po konfiguracji statycznego adresu IP systemu Linux. Ważne jest, aby pamiętać, że oba Linody powinny znajdować się w tym samym centrum danych do pracy w sieci prywatnej. Dzięki temu serwery mogą komunikować się bez wliczania ruchu w miesięczny limit przepustowości. Po skonfigurowaniu prywatnych adresów IP konieczne jest ponowne uruchomienie obu Linodes.
Edytuj /etc/hosts
Będziesz chciał utworzyć nazwy hostów dla każdego komputera, aby móc je później śledzić. Oszczędza to również pracę, jeśli znajdziesz się w sytuacji, w której musisz zmienić adres IP serwera. Edytuj /etc/hosts
plik zawierający prywatny Adresy IP każdego Linode. Użyj następującego fragmentu przykładu /etc/hosts
plik jako przykład:
- Plik:/ etc/hosty
1
> 127.0.0.1 localhost 192.168.192.168 mysql.example.com mysql 192.168.192.169 app.example.com app
Pamiętaj o zastąpieniu 192.168.192.168
i 192.168.192.169
z rzeczywistymi prywatnymi adresami IP.
Chociaż ten krok jest opcjonalny, konfigurowanie hosts
wpisy pozwolą Ci uniknąć zakodowania na stałe konfiguracji aplikacji na określone adresy IP. Będziesz mógł szybko przenieść swoje aplikacje i serwery baz danych na alternatywne serwery, jeśli kiedykolwiek będziesz musiał zmienić swoje adresy IP.
Konfiguracja serwera MySQL
Następnym krokiem jest zmodyfikowanie /etc/mysql/my.cnf
na twoim serwerze MySQL, aby nasłuchiwać na twoim prywatnym adresie IP. Używając swojego ulubionego edytora, otwórz /etc/mysql/my.cnf
pliku i wstaw nazwę hosta bazy danych MySQL. W tym przykładzie nazwa hosta bazy danych MySQL to mysql
. Znajdź bind-address
linia:
- Plik:/ etc/mysql/my.cnf
1
bind-address = mysql
Alternatywnie możesz użyć prywatnego adresu IP. Zapisz plik i uruchom następujące polecenie, aby ponownie uruchomić demona MySQL:
/etc/init.d/mysql restart
Przyznawanie dostępu do bazy danych
Na dedykowanym serwerze bazy danych będziesz musiał utworzyć nazwę użytkownika i hasło do bazy danych z prawami dostępu. Jest to możliwe dzięki znakowi zachęty MySQL. Wydaj następujące polecenie:
mysql -u root -p
Zapewni to wiersz poleceń MySQL. Wydaj następujące polecenia, zastępując app
z nazwą hosta Linode z uruchomionym serwerem aplikacji i silnym hasłem zamiast „PASSWORD”:
CREATE DATABASE webapplications;
GRANT ALL ON webapplications.* TO [email protected]'app' IDENTIFIED BY 'PASSWORD';
Na tym etapie Twoja aplikacja może pomyślnie uzyskać dostęp do zdalnej bazy danych i możesz zacząć korzystać z serwera bazy danych.
Korzystanie z serwera bazy danych
Od tego momentu wszystko jest skonfigurowane, a serwer bazy danych jest gotowy do przyjęcia połączenia z serwera WWW. Teraz powinieneś być w stanie skierować swoją aplikację na serwer MySQL bez żadnych incydentów. Należy pamiętać, że podczas konfigurowania aplikacji internetowych do pracy ze zdalnym serwerem MySQL należy utworzyć użytkownika z uprawnieniami do zdalnego systemu (jak pokazano powyżej).
Używanie MySQL na oddzielnym serwerze bazy danych jest bardzo podobne do uruchamiania lokalnego serwera bazy danych. Zazwyczaj aplikacje wymagają określenia „nazwy hosta bazy danych”, a serwery baz danych działające na komputerze lokalnym mają nazwę hosta localhost
. Kiedy oddzielasz serwery bazy danych i aplikacji, musisz podać w aplikacji nazwę hosta, jak określono powyżej.
Na przykład ustawienia bazy danych w programie WordPress są zawarte w pliku wp-config.php
plik, a nazwa hosta jest określona w następującym formacie:
- Plik:wp -config.php
1 2
/** MySQL hostname */ define('DB_HOST', 'mysql');
Zauważ, że metoda ustawiania nazwy hosta różni się w zależności od aplikacji. Ponadto możesz zastąpić konkretny adres IP serwera bazy danych, zamiast używać nazwy hosta skonfigurowanej w /etc/hosts
powyżej.
Rozważ również odwołanie się do zewnętrznej witryny MySQL w celu uzyskania zapytań dotyczących MySQL i powiązanej pomocy.
Więcej informacji
Dodatkowe informacje na ten temat można znaleźć w poniższych zasobach. Chociaż są one dostarczane w nadziei, że będą przydatne, należy pamiętać, że nie możemy ręczyć za dokładność ani aktualność materiałów hostowanych zewnętrznie.
- Przewodniki po aplikacjach internetowych
- Struktury aplikacji internetowych
- Systemy zarządzania bazami danych