GNU/Linux >> Znalost Linux >  >> Linux

Jak nakonfigurovat NGINX na serveru CentOS 7

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 -t

Pokud 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-fpm

Jako 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.php

Testová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.


Linux
  1. Nakonfigurujte server MariaDB na CentOS

  2. CentOS / RHEL :Jak nakonfigurovat server DHCP

  3. CentOS / RHEL 5 :Jak nainstalovat a nakonfigurovat server vsftpd

  1. Jak nainstalovat a nakonfigurovat Nginx na CentOS 8

  2. Jak nainstalovat a nakonfigurovat Nginx na CentOS 7

  3. Centos 7 :Konfigurace serveru DNS

  1. Jak nastavit bloky serveru Nginx na CentOS 7

  2. Jak nainstalovat Nginx na CentOS 8

  3. Jak nakonfigurovat server SFTP na CentOS?