
NGINX Car od Walkera Cahalla
Úvod
Tento návod vám pomůže nainstalovat a nakonfigurovat NGINX, abyste mohli provozovat weby s vysokou návštěvností při zachování vysoké úrovně výkonu, kterou vaši zákazníci očekávají. Chystáme se také nainstalovat další software, abychom z NGINX vytěžili maximum, takže tato příručka bude také zahrnovat instalaci a konfiguraci MySQL, PHP-APC a PHP-FPM.
Proč NGINX? O tom, zda byste měli používat Apache nebo NGINX, se vede dlouhá debata, a přestože je celkový výkon těchto dvou platforem webových serverů zhruba stejný, model zpracování založený na událostech NGINX září tím, že je jednoduchý, lehký a jednoduše lépe zpracovává velké množství souběžných požadavků na statický obsah bez nadměrného zatěžování hardwaru serveru.
Co potřebujete?
– Potřebujete server CentOS 7 nakonfigurovaný se statickou IP adresou. Pokud ještě nemáte server, můžete navštívit naši stránku VPS Hosting a spustit nový server za méně než 30 sekund.
Příprava serveru
Chcete-li začít, přihlaste se k serveru CentOS přes SSH. Servery Atlantic.Net Cloud jsou nastaveny jako minimální instalace, aby se zabránilo tomu, že budou instalovány a nikdy použity zbytečné balíčky. Z tohoto důvodu začneme instalací několika balíčků, které tam ve výchozím nastavení nejsou.
yum install wget
yum install nano
Jakmile se přihlásíte, ujistěte se, že je váš server plně aktuální.
yum aktualizace
S aktuálním serverem můžeme pokračovat v procesu a nainstalovat NGINX. Protože NGINX není součástí výchozích úložišť CentOS, použijeme extra balíčky pro Enterprise Linux (EPEL) repo. Dále budeme v procesu používat balíčky z repozitářů REMI, takže si je stáhněte a nainstalujme také.
Nejnovější verzi EPEL můžete nainstalovat pomocí následujícího příkazu:
yum install epel-release -y
Než budeme pokračovat, vytvoříme také nového uživatele a skupinu, kterou budou používat NGINX a PHP-FPM. Pokud necháte uživatele a skupiny ve výchozím nastavení, vše by vám mělo stále fungovat, ale abychom vám pomohli poskytnout trochu dalšího zabezpečení, provedeme změnu.
groupadd www-datauseradd -g www-data www-data
Zatímco pracujeme na přípravě serveru, pojďme do toho a nastavíme nový adresář pro náš webový server. Normálně lidé používají /var/www/html pro jejich weby, ale vždy mi vyhovovalo mít soubory webu v /home/název_domény.tld/html , takže to budeme používat. Jako návod použijeme example.tld jako naše doména – nezapomeňte aktualizovat tučné položky tak, aby odpovídaly doméně, kterou konfigurujete.
mkdir -p /home/example.tld/htmlchown -R www-data:www-data /home/example.tld/chmod -R 0755 /home/example.tld/html
Nyní, když jsme dokončili přípravu serveru, můžeme přejít k instalaci našich softwarových balíčků.
Nainstalujte a nakonfigurujte MariaDB na CentOS 7
Nejprve nainstalujte serverový balíček MariaDB pomocí následujícího příkazu:
yum install mariadb-server -y
Po instalaci MariaDB spusťte službu MariaDB a povolte její spuštění při restartu systému:
systemctl spustit mariadbsystemctl povolit mariadb
Dále zabezpečte instalaci MariaDB pomocí následujícího příkazu:
mysql_secure_installation
Proces zabezpečené instalace MySQL vás provede úvodními bezpečnostními změnami, které by měly být zavedeny pro vaši novou instanci MySQL.
Poznámka:Zvolte bezpečné heslo a omezte přístup root pouze na localhost.

mysql_secure_installation
Upravte soubor /etc/my.cf soubor tak, aby odpovídal následujícímu, omezující server pouze na naslouchání místním připojením:
[mysqld]bind-address =127.0.0.1datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockuser=mysql# Deaktivace symbolických odkazů se doporučuje, aby se zabránilo různým bezpečnostním rizikůmsymbolic-links=0 [mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mariadb/mariadb.pid
Na konci restartujeme všechny služby, takže pojďme dál.
Nainstalujte a nakonfigurujte NGINX na CentOS 7
yum nainstalovat nginx
Po instalaci musíme zkontrolovat, kolik logických jader CPU je na vašem serveru k dispozici. Chcete-li to provést, spusťte následující příkaz:
grep -c 'název modelu' /proc/cpuinfo
Poznamenejte si výsledek, protože to je to, co uvidíte také nastavení worker_processes. Otevřete /etc/nginx/nginx.conf a nahraďte aktuální obsah následujícím:
user www-data;worker_processes 2;pid /var/run/nginx.pid;events { worker_connections 1024;}http { include /etc/nginx/mime.types; default_type application/octet-stream; server_names_hash_bucket_size 64; error_log /var/log/nginx/error_log; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' " sendfile zapnuto; keepalive_timeout 30; server_tokens off; gzip zapnutý; gzip_disable "MSIE [1-6]\.(?!.*SV1)"; gzip_http_verze 1.1; gzip_vary on; gzip_proxed any; gzip_comp_level 6; gzip_buffers 16 8k; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript text/x-js; # povolené weby zahrnují /etc/nginx/conf.d/*.conf;}
Dále musíme nastavit konfigurační soubor naší domény. To se provede vytvořením nového souboru s názvem /etc/nginx/conf.d/example.conf . Znovu nezapomeňte aktualizovat tučné položky tak, aby odpovídaly doméně, kterou přidáváte.
server { poslouchat 80; název_serveru example.tld; client_max_body_velikost 5m; client_body_timeout 60; access_log /var/log/nginx/example.tld_access; error_log /var/log/nginx/example.tld_error error; root /home/example.tld/html/; index index.html index.php; ### SEO mapy webu ### přepsat ^/sitemap_index\.xml$ /index.php?sitemap=1 poslední; přepsat ^/([^/]+?)-sitemap([0-9]+)?\.xml$ /index.php?sitemap=$1&sitemap_n=$2 poslední; ### www adresář ### umístění / { try_files $uri $uri/ /index.php?$args; } ### zabezpečení ### error_page 403 =404; umístění ~ /\. { access_log off; log_not_found off; popřít vše; } umístění ~ ~$ { access_log off; log_not_found off; popřít vše; } umístění ~* wp-admin/includes { deny all; } umístění ~* wp-includes/theme-compat/ { deny all; } umístění ~* wp-includes/js/tinymce/langs/.*\.php { deny all; } umístění /wp-content/ { interní; } umístění /wp-includes/ { interní; } umístění ~* wp-config.php { deny all; } ### zakázat protokolování ### location =/robots.txt { access_log off; log_not_found off; } location =/favicon.ico { access_log off; log_not_found off; } ### mezipaměti ### umístění ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ { access_log off; vyprší max; } umístění ~* \.(woff|svg)$ { access_log off; log_not_found off; vyprší 30d; } ### php block ### umístění ~ \.php?$ { try_files $uri =404; zahrnout fastcgi_params; fastcgi_pass unix:/var/run/php-www.socket; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors on; fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_hide_header X-Powered-By; }}
Protože jsme změnili uživatele, pod kterým NGINX běží, musíme změnit oprávnění k vlastnictví pro dočasné soubory NGINX.
chown -R www-data:www-data /var/lib/nginx/
chmod 700 /var/lib/nginx/
Opět na konci restartujeme všechny služby. Namísto instalace plné verze PHP na server přejdeme na PHP-FPM – alternativní implementaci PHP FastCGI.
Nainstalujte a nakonfigurujte PHP-FPM na CentOS 7
Poznámka:Po instalaci musíme aktualizovat nastavení „cgi.fix_pathinfo“, abychom deaktivovali potenciální chybu zabezpečení, která by třetí straně umožnila spustit vlastní kód PHP na vašem novém serveru.
Nejprve nainstalujte úložiště Remi pomocí následujícího příkazu:
yum instalace http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
Dále nainstalujte PHP-FPM s dalšími požadovanými rozšířeními pomocí následujícího příkazu:
yum --enablerepo=remi-php74 install php-fpm php-mysql
nano /etc/php.ini
Změnit
;cgi.fix_pathinfo=1
do
cgi.fix_pathinfo=0
Otevřete /etc/php-fpm.d/www.conf a změňte konfiguraci na následující:
[www]listen =/var/run/php-www.socketuser =www-datagroup =www-datalisten.owner =www-datalisten.group =www-datalisten.mode =0660listen =/var/run/php- www.socketrequest_slowlog_timeout =5sslowlog =/var/log/php-fpm/blogcms_loglisten.allowed_clients =127.0.0.1pm =dynamicpm.max_children =22.00.start_servers =15.00 =15.00 min_spare_spare_1serverů =m_spare_spare_m -servers. .status_path =/statusrequest_terminate_timeout =120srlimit_files =131072rlimit_core =neomezený_výstup_pracovníků =yesphp_value[session.save_handler] =filesphp_value[session.save_path] =/var-log_lib_error_error/sessionlog_php_log_php_error_php/session [log_errors] =zapnuto
Uložte změny.
Nainstalujte a nakonfigurujte PHP-APC na CentOS 7
Posledním kouskem skládačky bude instalace PHP akcelerátoru pro další zlepšení doby načítání statických souborů.
yum --enablerepo=remi-php74 install php-pecl-apc
Po dokončení instalace otevřete /etc/php.d/50-apc.ini a nahraďte obsah následujícím:
rozšíření =apc.soapc.enabled=1apc.shm_segments=1apc.shm_size=128Mapc.num_files_hint=1024apc.user_entries_hint=4096apc.ttl=7200apcault.use_request_time_0default.20apc.00che_01apc. .mmap_file_mask=/tmp/apc.XXXXXXapc.file_update_protection=2apc.enable_cli=0apc.max_file_size=1Mapc.stat=1apc.stat_ctime=0apc.canonicalize=0apc.write_lock=1apc.report_arfc18=1apc.report_arfcfilter1=06. rfc1867_name=APC_UPLOAD_PROGRESSapc.rfc1867_freq=0apc.rfc1867_ttl=3600apc.include_once_override=0apc.lazy_classes=0apc.lazy_functions=0apc.lazy_functions=0apc.lazy_functions=0apc.lazy_functions=0apc.lazy_functions=0apc.lazy_functions=0apc.Poslední úpravy
Nyní, když je vše hotovo, můžeme ověřit naši konfiguraci NGINX spuštěním:
nginx -tPokud se konfigurace vrátí s „nginx:konfigurační soubor /etc/nginx/nginx.conf test je úspěšný“, můžeme spustit (nebo restartovat) všechny služby a ujistit se, že všechny služby jsou nastaveny na spuštění při startu systému.
systemctl start mariadb; systemctl povolit mariadbsystemctl spustit nginx; systemctl povolit mariadbsystemctl spustit php-fpm; systemctl povolit php-fpmJako poslední krok ověříme, že konfigurace funguje vytvořením testovací stránky info.php a přesunutím kopie výchozího index.html do domovského adresáře našich stránek. Stejně jako dříve nezapomeňte aktualizovat tučné položky s doménou, kterou nastavujete.
cp -R /usr/share/nginx/html/* /home/example.tld/html/nano /home/example.tld/html/info.phpTestování všeho
Navštivte http://example.tld by měl zobrazovat výchozí soubor index.html. Navštivte http://example.tld /info.php by měl zobrazovat informace o PHP.
Díky tomu nyní máte server, na kterém běží všechny potřebné komponenty pro provoz vašeho webu!
Vraťte se sem, abyste získali další aktualizace a zvažovali vedoucí virtuální privátní server od Atlantic.Net.
Jak na to:Odstraňte problémy s pluginy WordPress tím, že je všechny najednou deaktivujete Jak nainstalovat WordPress na cloudový server Debian 8.2Linux