Witam was!
Dziś przedstawię wam dość długą ale bardzo dobrą konfigurację hostingu pod witryne WWW.
Na ruszcie mamy duet Apache2 od strony backendu a od strony frontendu mamy nginx/1.9.4 z wkompilowanym PageSpeedem od Google, a na dodatek jako opcja po drodze jeszcze Varnish.
Takie “combo” myślę że może przyjąć na siebie potężny ruch i sprawdzi się jako perfekcyjny serwer WWW – jako alternatywa dla ospałych i powolnych konfigurracji jakie oferują panele takie jak Plesk, Cpanel czy DirectAdmin.
W tej konfiguracji serwer WWW to Apache2 – więc mamy swobodną obsługę plików .htaccess.
Apache2 z PHP komunikuje się przy pomocy szybkiego “socketu” dla zminimalizowania czasów odpowiedzi.
PHP5-FPM z Apache2 komunikuje się oczywiście przy pomocy modułu fastcgi.
PHP jest wstępnie przeze mnie skonfigurowane – dorzuciłem moduły Opcache oraz IonCube.
NGINX – jest to moja kompilacja z wkompilowanym GooglePageSpeedem oraz modułem VTS (vhost_status).
serwer ten pracuje jako “wsteczny proxy” (reverse proxy) oraz cache plików statycznyh.
Pod wszystkim “czuwa” baza danych – alternatywa dla MySQL i lubiana przeze mnie MariaDB.
Jako serwer FTP – standardowow użyłęm vSFTPd w konfiguracji połączenia FTP przez SSL.
Jako opcję dodałem Varnisha, dlaczego jako opcja? Między innymi dlatego że nie wszystkie CMS czy witryny lubią taką konfigurację,
oczywiście strony statyczne będą działać, może niektóre CMS – jak chcesz to sobie dodasz 🙂 – Mój testowy Drupal 6 dziła wyśmienicie. WordPress zreszta też.
Całość testowana i zalecana do instalacji na systemie x64 (64 bit)
Gotowe pliki konfiguracyjne przeznaczone da Debiana 8 Jessie.
Schemat działania:
Dostęp do PhpMyAdmina : http://IP:9977 (ominięcie cache i inne)
Apache port: : http://IP:8080
Nginx port : http://IP:80
Varnish port: http://IP:85
Opcja Varnish:
Dostęp do PhpMyAdmina : http://IP:9977 (ominięcie cache i inne)
Apache port: : http://IP:8080
Varnish port: http://IP:80
Nginx port : http://IP:88
1. PRZYGOTOWANIE
adduser www ## w tym miejscu zdefiniuj sobie haslo do konta w systemie oraz FTP mkdir /home/www/public_html ; chown -R www:www-data /home/www/* ; chmod -R 775 /home/www/ mkdir -p /home/www/logs apt-get update; apt-get install curl apt-transport-https -y curl https://repo.varnish-cache.org/GPG-key.txt | apt-key add - apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db echo "deb https://repo.varnish-cache.org/debian/ jessie varnish-4.1" >> /etc/apt/sources.list.d/varnish-cache.list echo 'deb http://mariadb.kisiek.net//repo/10.1/debian jessie main' >> /etc/apt/sources.list.d/mariadb.list echo 'deb http://ftp.pl.debian.org/debian jessie main contrib non-free' >> /etc/apt/sources.list apt-get update
2. INSTALACJA PAKIETÓW
apt-get install fontconfig-config geoip-database libgeoip1 libluajit-5.1-2 libluajit-5.1-common fonts-dejavu-core libfontconfig1 libgd3 libjbig0 liblua5.1-0 libperl5.20 libtiff5 libxpm4 libxslt1.1 libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python python-minimal python2.7 python2.7-minimal libvpx1 apache2-mpm-worker libapache2-mod-fastcgi php5-fpm php5 php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl vsftpd nano wget curl imagemagick unzip software-properties-common software-properties-common -y mariadb-server sendmail --force-yes
3. KONFIGURACJA APACHE I PHP5-FPM
rm /etc/php5/fpm/php.ini; wget http://pliki.linuxiarz.pl/08-2015/php5/php.ini -O /etc/php5/fpm/php.ini wget http://pliki.linuxiarz.pl/08-2015/php5/opcache.so -O /etc/php5/opcache.so wget http://pliki.linuxiarz.pl/08-2015/php5/ioncube_loader_lin_5.6.so -O /etc/php5/ioncube_loader_lin_5.6.so rm /etc/apache2/mods-enabled/fastcgi.conf ; wget http://pliki.linuxiarz.pl/09-2015/fastcgi.conf -O /etc/apache2/mods-enabled/fastcgi.conf rm /etc/apache2/sites-available/* ; wget http://pliki.linuxiarz.pl/09-2015/000-default.conf -O /etc/apache2/sites-available/000-default.conf rm /etc/apache2/apache2.conf ; wget http://pliki.linuxiarz.pl/10-2015/apache2.conf -O /etc/apache2/apache2.conf rm /etc/apache2/ports.conf ; wget http://pliki.linuxiarz.pl/09-2015/ports.conf -O /etc/apache2/ports.conf wget http://pliki.linuxiarz.pl/09-2015/pma.conf -O /etc/apache2/sites-enabled/pma.conf a2enmod actions rewrite alias deflate headers echo '<?php phpinfo(); ?>' > /home/www/public_html/info.php rm /etc/apache2/mods-available/autoindex.conf ; wget http://pliki.linuxiarz.pl/10-2015/autoindex.conf -O /etc/apache2/mods-available/autoindex.conf
4. KONFIGURACJA MARIADB i PHPMYADMIN
/etc/init.d/mysql stop rm /etc/mysql/my.cnf; wget http://pliki.linuxiarz.pl/08-2015/my.cnf -O /etc/mysql/my.cnf systemctl restart mysql apt-get install phpmyadmin -y rm /etc/apache2/conf-enabled/phpmyadmin.conf rm /etc/phpmyadmin/apache.conf
5. KONFIGURACJA REBERSE PROXY:
wget http://kompilacje.linuxiarz.pl/Debian%208/nginx-1.9.4-pagespeed-vts-OUT-OF-THE-BOX-Debian8/nginx_1.9.4-1_all.deb wget http://kompilacje.linuxiarz.pl/Debian%208/nginx-1.9.4-pagespeed-vts-OUT-OF-THE-BOX-Debian8/nginx-common_1.9.4-1_all.deb wget http://kompilacje.linuxiarz.pl/Debian%208/nginx-1.9.4-pagespeed-vts-OUT-OF-THE-BOX-Debian8/nginx-extras_1.9.4-1_amd64.deb dpkg --install *.deb rm * /etc/nginx/conf.d/ ; wget http://pliki.linuxiarz.pl/10-2015/ngx_rev2.conf -O /etc/nginx/conf.d/default.conf ### HTTPS ### openssl genrsa -out /etc/nginx/privkey.pem 2048 openssl req -new -x509 -key /etc/nginx/privkey.pem -out /etc/nginx/cacert.pem -days 1095
6. KONFIGURACJA FTP
rm /etc/vsftpd.conf wget http://pliki.linuxiarz.pl/08-2015/ftp/vsftpd.conf -O /etc/vsftpd.conf; touch /etc/vsftpd.chroot_list wget http://pliki.linuxiarz.pl/08-2015/ftp/private.zip; unzip private.zip; mv private/* /etc/ssl/private; rm private.zip
7. RESTART USŁUG:
systemctl restart vsftpd systemctl restart apache2 systemctl restart mysql systemctl restart nginx
8. KONFIGURACJA Z VARNISHEM: (opcja)
apt-get install varnish rm /lib/systemd/system/varnish.service ; wget http://pliki.linuxiarz.pl/10-2015/varnish.service -O /lib/systemd/system/varnish.service rm /etc/varnish/default.vcl ; wget http://pliki.linuxiarz.pl/10-2015/default.vcl -O /etc/varnish/default.vcl rm * /etc/nginx/conf.d/ ; wget http://pliki.linuxiarz.pl/10-2015/ngx_rev.conf -O /etc/nginx/conf.d/default.conf systemctl daemon-reload systemctl restart varnish systemctl restart nginx
9. URUCHAMIANIE ZE STARTEM SYSTEMU:
update-rc.d nginx defaults update-rc.d varnish defaults crontab -l | { cat; echo "@reboot systemctl start varnish"; } | crontab - update-rc.d apache2 defaults update-rc.d mysql defaults update-rc.d vsftpd defaults