{"id":1436,"date":"2014-10-01T13:49:00","date_gmt":"2014-10-01T11:49:00","guid":{"rendered":"http:\/\/vm.piszki.pl\/?p=1436"},"modified":"2014-10-10T08:44:50","modified_gmt":"2014-10-10T06:44:50","slug":"prowadzenie-bloga-czesc-2-migrujemy-do-vps-digitalocean","status":"publish","type":"post","link":"https:\/\/vm.piszki.pl\/?p=1436","title":{"rendered":"Prowadzenie bloga, cz\u0119\u015b\u0107 2: Migrujemy do VPS (DigitalOcean)"},"content":{"rendered":"<p align=\"justify\">Jeszcze nie tak dawno zachwyca\u0142em si\u0119 nad mo\u017cliwo\u015bciami jakie niesie <a href=\"https:\/\/vm.piszki.pl\/serwer-w-domu-czyli-czemu-jednak-nas\/\">NAS<\/a>, w tym nad mo\u017cliwo\u015bci\u0105 uruchomienia w\u0142asnego <a href=\"https:\/\/vm.piszki.pl\/prowadzenie-bloga-cz%c4%99%c5%9b%c4%87-1-strona-techniczna\/\">bloga<\/a>. A tu prosz\u0119, min\u0119\u0142o par\u0119 miesi\u0119cy, przyby\u0142o wej\u015b\u0107 na stron\u0119 i zrobi\u0142 si\u0119 k\u0142opot. Tym k\u0142opotem jest dostawca Internetu, czyli w moim przypadku UPC, kt\u00f3ry notorycznie robi restarty swojej us\u0142ugi. Po ka\u017cdym restarcie modem wstaje z innym adresem IP. Znudzi\u0142o mi si\u0119 ci\u0105g\u0142e przekonfigurowanie DNS (w ko\u0144cu nie zawsze mam dost\u0119p do sieci i czas na przeprowadzanie zmian, dynamiczny DNS te\u017c nie wchodzi w gr\u0119) i postanowi\u0142em rozwi\u0105za\u0107 problem ostatecznie. Opr\u00f3cz ci\u0105g\u0142ego wzrostu ruchu na stronach (ju\u017c cztery blogi hostuj\u0119 na moim NAS), przenie\u015bli\u015bmy si\u0119 ca\u0142kowicie z poczt\u0105 email na nasz\u0105 domen\u0119. Aby rozwi\u0105za\u0107 m\u00f3j problem potrzebowa\u0142em dw\u00f3ch rzeczy, sta\u0142ego adresu IP i niezawodno\u015bci. Sta\u0142y IP w UPC nie wchodzi w rachub\u0119 (tylko dla firm), innego dostawcy mie\u0107 nie b\u0119d\u0119, a je\u015bli chodzi o niezawodno\u015b\u0107 no to c\u00f3\u017c, tam gdzie mieszkam zdarzaj\u0105 si\u0119 niestety wahni\u0119cia i zaniki pr\u0105du (UPS to dobre rozwi\u0105zanie, zachowam dane ale co z dost\u0119pem z zewn\u0105trz). Po rozwa\u017ceniu wszystkich za i przeciw, wybra\u0142em opcj\u0119 migracji bloga do us\u0142ugi VPS po\u0142\u0105czon\u0105 z synchronizacj\u0105 do mojego NAS. W przypadku poczty odwrotnie, g\u0142\u00f3wnym serwerem pozostaje NAS ale poczta jest wysy\u0142ana przez VPS (obej\u015bcie problemu nie przyjmowania maili przez niekt\u00f3re serwery, nadawanych z adres\u00f3w dynamicznych (brak w\u0142asnego PTR)). Temat synchronizacji danych do NAS b\u0119dzie poruszony w innym wpisie, tutaj opisz\u0119 proces przygotowania VPS i migracji strony WWW.<\/p>\n<p align=\"justify\"><a href=\"https:\/\/www.digitalocean.com\/?refcode=463f9f89a40b\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border-width: 0px;\" title=\"DigitalOcean-logo\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/09\/DigitalOcean-logo.png\" alt=\"DigitalOcean-logo\" width=\"154\" height=\"86\" border=\"0\" \/><\/a><\/p>\n<p><!--more--><\/p>\n<p align=\"justify\">VPS, czyli Virtual Private Server, to do\u015b\u0107 nowe rozwi\u0105zanie. Wykupujemy w chmurze publicznej us\u0142ug\u0119, kt\u00f3ra daje nam mo\u017cliwo\u015b\u0107 uruchomienia naszego w\u0142asnego, prywatnego serwera. Z pe\u0142nym dost\u0119pem przez SSH i wirtualn\u0105 konsol\u0119 (jakby co). Wraz z VPS otrzymujemy nasz w\u0142asny, sta\u0142y, publiczny adres IP (oraz mo\u017cliwo\u015b\u0107 tworzenia rekord\u00f3w DNS)!!! Plusem dla jednych, a minusem dla innych jest to, \u017ce musimy sobie wszystko skonfigurowa\u0107 sami (dostajemy czy\u015bciutki system w wersji minimal iso). I tu powoli dochodzimy do drugiej strony, czyli cen. Ceny w dolarach lub euro per miesi\u0105c, a chcemy wyda\u0107 jak najmniej. Po przeanalizowaniu dost\u0119pnych mo\u017cliwo\u015bci, wybra\u0142em firm\u0119 <a href=\"https:\/\/www.digitalocean.com\/?refcode=463f9f89a40b\">DigitalOcean<\/a>. Z dw\u00f3ch powod\u00f3w, pierwszym to oczywi\u015bcie cena. Za $5 miesi\u0119cznie (15z\u0142) otrzymujemy serwer z 512MB RAM, 20GB przestrzeni, 1CPU i 1 Tera transferu. Niby nie wiele, ale na potrzeby strony www to a\u017c nadmiar mocy (zreszt\u0105 te warto\u015bci to odpowiednik mocy mojego DS213J). Drugim powodem jest fantastyczna wr\u0119cz prostota interfejsu www, naprawd\u0119 nie spos\u00f3b si\u0119 pogubi\u0107. Dodatkowo, zak\u0142adaj\u0105c <a href=\"https:\/\/www.digitalocean.com\/?refcode=463f9f89a40b\">konto<\/a>, mo\u017cemy poda\u0107 kod promocyjny SHIPITFAST i otrzyma\u0107 10$ (czyli przez dwa miesi\u0105ce testy ca\u0142kowicie za darmo). Poni\u017cej zrzut listy \u201ckropelek\u201d, czyli wykorzystywanych w danej chwili serwer\u00f3w. Op\u0142aty s\u0105 naliczane w cyklu dziennym, czyli je\u015bli chcemy co\u015b przetestowa\u0107, to mo\u017cemy sobie wygenerowa\u0107 now\u0105 kropelk\u0119 i poprowadzi\u0107 testy np. przez dwa dni (i za tyle zostaniemy skasowani).<\/p>\n<p align=\"justify\"><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/09\/digit1.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border-width: 0px;\" title=\"digit1\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/09\/digit1_thumb.png\" alt=\"digit1\" width=\"430\" height=\"77\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Aby wszystko dzia\u0142a\u0142o poprawnie na tak s\u0142abym, wirtualnym, sprz\u0119cie, nale\u017cy wszystkie us\u0142ugi wchodz\u0105ce w sk\u0142ad LAMP odpowiednio skonfigurowa\u0107 (Uwaga: mo\u017cna wybra\u0107 prekonfigurowanego dropleta z LAMP na Ubuntu!). Przygotowuj\u0105c mojego \u201c<a href=\"https:\/\/www.digitalocean.com\/?refcode=463f9f89a40b\">Dropleta<\/a>\u201d wybra\u0142em system CentOS 7 ze wzgl\u0119du na obecno\u015b\u0107 w nim bazy danych MariaDB (pe\u0142na zgodno\u015b\u0107 z Synology DSM 5) i generalnej sympatii dla CentOS. W sieci znajdziecie mn\u00f3stwo poradnik\u00f3w jak zainstalowa\u0107 <a href=\"http:\/\/www.howtoforge.com\/apache_php_mysql_on_centos_7_lamp\">LAMP<\/a> w CentOS 7, w tym <a href=\"https:\/\/www.digitalocean.com\/community\/tutorials\/how-to-install-linux-apache-mysql-php-lamp-stack-on-centos-7\">profilowane<\/a> pod serwery DigitalOcean. Po zainstalowaniu i wst\u0119pnym skonfigurowaniu <a href=\"http:\/\/www.tecmint.com\/install-lamp-in-centos-7\/\">LAMP<\/a> przyst\u0119pujemy do tuningowania us\u0142ug i systemu (w tym dodania pliku <a href=\"https:\/\/www.digitalocean.com\/community\/tutorials\/how-to-add-swap-on-centos-6\">SWAP<\/a> do systemu). Aby nie powtarza\u0107 po milion razy tego co ju\u017c zosta\u0142o napisane, w tek\u015bcie zamieszczam du\u017co link\u00f3w do istniej\u0105cych <a href=\"https:\/\/www.digitalocean.com\/community\/tags\/centos\">poradnik\u00f3w<\/a> ale konfiguracja zamieszczona w po\u015bcie pochodzi z mojego serwera.<\/p>\n<p>Tuning MariaDB:<\/p>\n<p align=\"justify\">Plik konfiguracyjny to \/etc\/my.cnf.d\/server.cnf tuning przeprowadzamy poprzez zmian\u0119 poszczeg\u00f3lnych warto\u015bci\u00a0 tak, aby MariaDB dzia\u0142a\u0142a sprawnie i nie zajmowa\u0142a przesadnej ilo\u015bci RAM. Do sprawdzenia jakie s\u0105 aktualne parametry i jak wp\u0142ywaj\u0105 na system s\u0142u\u017c\u0105 dwa wspania\u0142e skrypty, jeden to <a href=\"https:\/\/raw.githubusercontent.com\/major\/MySQLTuner-perl\/master\/mysqltuner.pl\">mysqltuner.pl<\/a> a drugi to <a href=\"https:\/\/launchpad.net\/mysql-tuning-primer\">tuning-primer.sh<\/a>. Przyk\u0142adowy efekt uruchomienia mysqltuner (po optymalizacji MariaDB) wygl\u0105da tak:<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/09\/dg1.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border-width: 0px;\" title=\"dg1\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/09\/dg1_thumb.png\" alt=\"dg1\" width=\"333\" height=\"375\" border=\"0\" \/><\/a><\/p>\n<p>Jak wida\u0107, zaj\u0119to\u015b\u0107 RAM to 150MB. Generalnie, tuning MariaDB to do\u015b\u0107 \u017cmudny proces, manipulujemy wieloma zmiennymi i sprawdzamy czy efekt jest ok.\u00a0\u00a0 M\u00f3j plik server.cnf wygl\u0105da tak:<\/p>\n<pre class=\"csharpcode\">[mysqld]\r\n     port            = 3306\r\n     socket          = \/<span class=\"kwrd\">var<\/span>\/lib\/mysql\/mysql.sock\r\n     key_buffer = 16K\r\n     max_allowed_packet = 1M\r\n     table_cache = 4\r\n     sort_buffer_size = 64K\r\n     read_buffer_size = 256K\r\n     read_rnd_buffer_size = 256K\r\n     net_buffer_length = 2K\r\n     thread_stack = 64K\r\n     key_buffer_size =8M\r\n     query_cache_type = 1\r\n     query_cache_size = 16M\r\n     query_cache_limit = 2M\r\n     query_cache_strip_comments = 1\r\n     thread_cache_size = 4M\r\n     net_read_timeout = 30\r\n     net_write_timeout = 60\r\n     table_cache = 4096\r\n     max_connections = 100\r\n\r\n     innodb_buffer_pool_size = 20M\r\n     innodb_additional_mem_pool_size = 2M\r\n\r\n     [mysqldump]\r\n     quick\r\n     max_allowed_packet = 16M\r\n\r\n     [mysql]\r\n     no-auto-rehash\r\n\r\n     [isamchk]\r\n     key_buffer = 8M\r\n     sort_buffer_size = 8M\r\n\r\n     [myisamchk]\r\n     key_buffer = 8M\r\n     sort_buffer_size = 8M\r\n\r\n     [mysqlhotcopy]\r\n     interactive-timeout\r\n<\/pre>\n<p>Tuning HTTPD:<\/p>\n<p>Domy\u015blnie w CentOS 7 instaluje si\u0119 Apache 2 w wersji do\u015b\u0107 \u201crozbuchanej\u201d, jego przyci\u0119cie mo\u017cna wykona\u0107 w w pliku \/etc\/httpd\/conf.modules.d\/00-mpm.conf:<\/p>\n<p>&lt;IfModule prefork.c&gt;<br \/>\nStartServers\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 1<br \/>\nMinSpareServers\u00a0\u00a0\u00a0 1<br \/>\nMaxSpareServers\u00a0\u00a0\u00a0 3<br \/>\nMaxClients\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10<br \/>\nMaxRequestsPerChild\u00a0 4000<br \/>\n&lt;\/IfModule&gt;<\/p>\n<p align=\"justify\">Powiem szczerze, \u017ce nie przy\u0142o\u017cy\u0142em si\u0119 specjalnie do tuningu Apache, na t\u0119 chwil\u0119 dla mnie jest to ca\u0142kowicie wystarczaj\u0105ca konfiguracja pod wzgl\u0119dem wydajno\u015bci (spokojnie obs\u0142u\u017cy 100 jednoczesnych u\u017cytkownik\u00f3w z pe\u0142nym obci\u0105\u017ceniem).\u00a0 Gdy zn\u00f3w pojawi si\u0119 problem wydajno\u015bci, to wtedy rozszerz\u0119 prawdopodobnie zasoby \u201csprz\u0119towe\u201d serwerka (lub poszukam innego miejsca do przeparkowania us\u0142ug i domeny). Generalnie bardzo polecam DigitalOcean i ca\u0142\u0105 ide\u0119 VPS! Gdyby by\u0142y pytania o konkretne szczeg\u00f3\u0142y to ch\u0119tnie odpowiem <img decoding=\"async\" class=\"wlEmoticon wlEmoticon-smile\" style=\"border-style: none;\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/09\/wlEmoticon-smile.png\" alt=\"U\u015bmiech\" \/><\/p>\n<div style='text-align:left' class='yasr-auto-insert-visitor'><\/div>","protected":false},"excerpt":{"rendered":"<p>Jeszcze nie tak dawno zachwyca\u0142em si\u0119 nad mo\u017cliwo\u015bciami jakie niesie NAS, w tym nad mo\u017cliwo\u015bci\u0105 uruchomienia w\u0142asnego bloga. A tu prosz\u0119, min\u0119\u0142o par\u0119 miesi\u0119cy, przyby\u0142o wej\u015b\u0107 na stron\u0119 i zrobi\u0142 si\u0119 k\u0142opot. Tym k\u0142opotem jest dostawca Internetu, czyli w moim &hellip; <a href=\"https:\/\/vm.piszki.pl\/?p=1436\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":1538,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"yasr_overall_rating":0,"yasr_post_is_review":"","yasr_auto_insert_disabled":"","yasr_review_type":"","footnotes":""},"categories":[1],"tags":[37,66,7,65],"class_list":["post-1436","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ogolne","tag-blog","tag-digitalocean","tag-nas","tag-vps"],"yasr_visitor_votes":{"stars_attributes":{"read_only":false,"span_bottom":false},"number_of_votes":0,"sum_votes":0},"_links":{"self":[{"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/posts\/1436"}],"collection":[{"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1436"}],"version-history":[{"count":3,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/posts\/1436\/revisions"}],"predecessor-version":[{"id":1515,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/posts\/1436\/revisions\/1515"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/media\/1538"}],"wp:attachment":[{"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1436"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1436"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1436"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}