{"id":269600,"date":"2015-12-04T00:29:02","date_gmt":"2015-12-03T21:29:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=269600"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=269600","title":{"rendered":"\u041f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0441\u043d\u0438\u043f\u043f\u0435\u0442\u044b \u0434\u043b\u044f Nginx \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432"},"content":{"rendered":"<p>       <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/ddf\/206\/50c\/ddf20650ceb746499571710d4a1e1a31.png\"\/><\/p>\n<p>  \u0414\u043e\u0431\u0440\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u0443\u0442\u043e\u043a, \u0443\u0432\u0430\u0436\u0430\u0435\u043c\u044b\u0435 \u0445\u0430\u0431\u0440\u0430\u0432\u0447\u0430\u043d\u0435! \u0412 Elasticweb \u043c\u044b \u043d\u0435\u0433\u043b\u0430\u0441\u043d\u043e \u0440\u0430\u0442\u0443\u0435\u043c \u0437\u0430 Nginx \u0438, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u043c\u044b \u043e\u0434\u043d\u0438 \u0438\u0437 \u043d\u0435\u043c\u043d\u043e\u0433\u0438\u0445 \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 Apache \u0438 .htaccess \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u0412 \u0441\u0432\u044f\u0437\u0438 \u0441 \u044d\u0442\u0438\u043c, \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0439 \u0432 \u0442\u0435\u0445. \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u043e\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u043f\u043e\u043c\u043e\u0449\u0438 \u0432 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0434\u043b\u044f Nginx. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0441\u043e\u0431\u0440\u0430\u0442\u044c <a href=\"https:\/\/github.com\/elasticweb\/nginx-snippets\">\u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u0441\u043d\u0438\u043f\u043f\u0435\u0442\u043e\u0432<\/a> \u0438 <a href=\"https:\/\/github.com\/elasticweb\/nginx-configs\">\u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e \u0433\u043e\u0442\u043e\u0432\u044b\u0445 Nging \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432<\/a> \u0434\u043b\u044f \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 CMS\/CMF\/\u0424\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u0432 \u043d\u0430 PHP. <\/p>\n<p>  <a name=\"habracut\"><\/a><\/p>\n<h4>\u0413\u043e\u0442\u043e\u0432\u044b\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0438:<\/h4>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/elasticweb\/nginx-configs#asgard-cms\">Asgard CMS<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/elasticweb\/nginx-configs#bolt-cms\">Bolt CMS<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/elasticweb\/nginx-configs#cms-made-simple\">CMS Made Simple<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/elasticweb\/nginx-configs#codeigniter\">Codeigniter<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/elasticweb\/nginx-configs#data-life-engine\">Data Life Engine<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/elasticweb\/nginx-configs#drupal-7-8\">Drupal 7, 8<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/elasticweb\/nginx-configs#fuelphp\">FuelPHP<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/elasticweb\/nginx-configs#joomla-2-3\">Joomla 2, 3<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/elasticweb\/nginx-configs#kodicms\">KodiCMS<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/elasticweb\/nginx-configs#kohana\">Kohana<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/elasticweb\/nginx-configs#laravel\">Laravel<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/elasticweb\/nginx-configs#maxsite-cms\">MaxSite CMS<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/elasticweb\/nginx-configs#mediawiki\">MediaWiki<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/elasticweb\/nginx-configs#modx-revolution\">MODx Revolution<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/elasticweb\/nginx-configs#octobercms\">Octobercms<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/elasticweb\/nginx-configs#opencart-15\">OpenCart 1.5<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/elasticweb\/nginx-configs#phpbb3\">phpBB3<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/elasticweb\/nginx-configs#processwire-2\">ProcessWire 2<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/elasticweb\/nginx-configs#symfony\">Symfony<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/elasticweb\/nginx-configs#wordpress-4\">WordPress 4<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/elasticweb\/nginx-configs#yii-advanced\">Yii Advanced<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/elasticweb\/nginx-configs#yii-basic\">Yii Basic<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/elasticweb\/nginx-configs#zencart-15\">ZenCart 1.5<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/elasticweb\/nginx-configs#zend-framework\">Zend Framework<\/a><\/li>\n<\/ul>\n<h4>\u041a\u043e\u043c\u0430\u043d\u0434\u044b Nginx<\/h4>\n<p>  \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442\u044b Nginx. <\/p>\n<ul>\n<li><b>nginx -V<\/b> \u2014 \u0432\u0435\u0440\u0441\u0438\u044f Nginx \u0438 \u0435\u0433\u043e \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438. <\/li>\n<li><b>nginx -t <\/b> \u2014 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 \u0438 \u0432\u0441\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0438\u0445 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435. <\/li>\n<li><b>nginx -s reload<\/b> \u2014 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0431\u0435\u0437 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 Nginx.<\/li>\n<\/ul>\n<h4>Location \u0431\u043b\u043e\u043a \u043d\u0430 PHP<\/h4>\n<p>  \u041f\u0440\u043e\u0441\u0442\u043e\u0439 \u0448\u0430\u0431\u043b\u043e\u043d \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u0438 \u043b\u0435\u0433\u043a\u043e\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 PHP, FPM \u0438\u043b\u0438 CGI \u043d\u0430 \u0432\u0430\u0448 \u0441\u0430\u0439\u0442.<\/p>\n<pre><code class=\"nginx\">location ~ \\.php$ {   try_files $uri =404;   client_max_body_size 64m;   client_body_buffer_size 128k;   include fastcgi_params;   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;   fastcgi_pass unix:\/path\/to\/php.sock; } <\/code><\/pre>\n<h4>Rewrite \u0438 Redirection<\/h4>\n<p>  <\/p>\n<h5>Force www<\/h5>\n<p>  <a href=\"http:\/\/nginx.org\/en\/docs\/http\/converting_rewrite_rules.html\">\u041a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431<\/a> \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u043f\u043e \u0434\u043e\u043c\u0435\u043d\u0443 \u0431\u0435\u0437 <i>www<\/i> \u0438 \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0435\u0433\u043e c <i>www<\/i>:<\/p>\n<pre><code class=\"nginx\">server {     listen 80;     server_name example.org;     return 301 $scheme:\/\/www.example.org$request_uri; }  server {     listen 80;     server_name www.example.org;     ... } <\/code><\/pre>\n<p>  <i>\u0422\u0430\u043a\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0434\u043b\u044f HTTPS.<\/i><\/p>\n<h5>Force no-www<\/h5>\n<p>  \u041a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u043f\u043e \u0434\u043e\u043c\u0435\u043d\u0443 c <i>www<\/i> \u0438 \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0431\u0435\u0437 <i>www<\/i>:<\/p>\n<pre><code class=\"nginx\">server {     listen 80;     server_name example.org; }  server {     listen 80;     server_name www.example.org;     return 301 $scheme:\/\/example.org$request_uri; } <\/code><\/pre>\n<h5>Force HTTPS<\/h5>\n<p>  \u0421\u043f\u043e\u0441\u043e\u0431 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u0438 \u0441 HTTP \u043d\u0430 HTTPS: <\/p>\n<pre><code class=\"nginx\">server {     listen 80;     return 301 https:\/\/$host$request_uri; }  server {     listen 443 ssl;      # let the browsers know that we only accept HTTPS     add_header Strict-Transport-Security max-age=2592000;      ... } <\/code><\/pre>\n<h5>Force Trailing Slash<\/h5>\n<p>  \u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043b\u044d\u0448 <code>\/<\/code> \u0432 \u043a\u043e\u043d\u0446\u0435 \u043a\u0430\u0436\u0434\u043e\u0433\u043e URL, \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435\u0435 \u0435\u0441\u043b\u0438 \u0432 URL \u043d\u0435\u0442 \u0442\u043e\u0447\u043a\u0438 \u0438\u043b\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432. \u0422\u043e\u0435\u0441\u0442\u044c \u043f\u043e\u0441\u043b\u0435 <em>example.com\/index.php<\/em> \u0438\u043b\u0438 <em>example.com\/do?some=123<\/em> \u0441\u043b\u044d\u0448 \u043d\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u0441\u044f. <\/p>\n<pre><code class=\"nginx\">rewrite ^([^.\\?]*[^\/])$ $1\/ permanent; <\/code><\/pre>\n<h5>\u0420\u0435\u0434\u0438\u0440\u0435\u043a\u0442 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443<\/h5>\n<p>  <\/p>\n<pre><code class=\"nginx\">server {     location = \/oldpage.html {         return 301 http:\/\/example.org\/newpage.html;     } } <\/code><\/pre>\n<h5>\u0420\u0435\u0434\u0438\u0440\u0435\u043a\u0442 \u043d\u0430 \u0441\u0430\u0439\u0442<\/h5>\n<p>  <\/p>\n<pre><code class=\"nginx\">server {     server_name old-site.com     return 301 $scheme:\/\/new-site.com$request_uri; } <\/code><\/pre>\n<h5>\u0420\u0435\u0434\u0438\u0440\u0435\u043a\u0442 \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u0432 URI<\/h5>\n<p>  <\/p>\n<pre><code class=\"nginx\">location \/old-site {     rewrite ^\/old-site\/(.*) http:\/\/example.org\/new-site\/$1 permanent; } <\/code><\/pre>\n<h4>\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/h4>\n<p>  <\/p>\n<h5>\u041a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/h5>\n<p>  \u041d\u0430\u0432\u0441\u0435\u0433\u0434\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u043c \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435. Nginx \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442 \u043e\u0431\u0430 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430: Expires \u0438 Cache-Control.<\/p>\n<pre><code class=\"nginx\">location \/static {     root \/data;     expires max; } <\/code><\/pre>\n<p>  \u0417\u0430\u043f\u0440\u0435\u0442\u0438\u0442\u044c \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u043c (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432) \u043c\u043e\u0436\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"nginx\">location = \/empty.gif {     empty_gif;     expires -1; } <\/code><\/pre>\n<h5>Gzip \u0441\u0436\u0430\u0442\u0438\u0435<\/h5>\n<pre><code class=\"nginx\">gzip  on; gzip_buffers 16 8k; gzip_comp_level 6; gzip_http_version 1.1; gzip_min_length 256; gzip_proxied any; gzip_vary on; gzip_types     text\/xml application\/xml application\/atom+xml application\/rss+xml application\/xhtml+xml image\/svg+xml     text\/javascript application\/javascript application\/x-javascript     text\/x-json application\/json application\/x-web-app-manifest+json     text\/css text\/plain text\/x-component     font\/opentype application\/x-font-ttf application\/vnd.ms-fontobject     image\/x-icon; gzip_disable  &quot;msie6&quot;; <\/code><\/pre>\n<h5>\u041a\u044d\u0448 \u0444\u0430\u0439\u043b\u043e\u0432<\/h5>\n<p>  \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043a\u0435\u0448\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 Nginx, \u0442\u043e \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u044d\u0442\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438. <\/p>\n<pre><code class=\"nginx\">open_file_cache max=1000 inactive=20s; open_file_cache_valid 30s; open_file_cache_min_uses 2; open_file_cache_errors on; <\/code><\/pre>\n<h5>SSL \u043a\u044d\u0448<\/h5>\n<p>  \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 SSL \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0432\u043e\u0437\u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c SSL \u0441\u0435\u0441\u0441\u0438\u0438 \u0438 \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f\u043c \u043a SSL\/TLS \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443.<\/p>\n<pre><code class=\"nginx\">ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m;  <\/code><\/pre>\n<h5>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Upstream<\/h5>\n<p>  \u0410\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c Upstream \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439:<\/p>\n<pre><code class=\"nginx\">upstream backend {     server 127.0.0.1:8080;     keepalive 32; }  server {     ...     location \/api\/ {         proxy_pass http:\/\/backend;         proxy_http_version 1.1;         proxy_set_header Connection &quot;&quot;;     } } <\/code><\/pre>\n<h5>\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433<\/h5>\n<p>  \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e <a href=\"http:\/\/nginx.org\/ru\/docs\/http\/ngx_http_stub_status_module.html\">Stub Status<\/a> \u043c\u043e\u0434\u0443\u043b\u044c \u043d\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f, \u0435\u0433\u043e \u0441\u0431\u043e\u0440\u043a\u0443 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u2014with-http_stub_status_module \u0438 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e: <\/p>\n<pre><code class=\"nginx\">location \/status {     stub_status on;     access_log off; } <\/code><\/pre>\n<p>  \u0414\u0430\u043d\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0432\u0430\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u0443\u0441 \u0432 \u043e\u0431\u044b\u0447\u043d\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u043f\u043e \u043e\u0431\u0449\u0435\u043c\u0443 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f\u043c (\u043f\u0440\u0438\u043d\u044f\u0442\u044b\u043c, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u043c, \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u043c).<\/p>\n<p>  \u0411\u043e\u043b\u0435\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0441\u0442\u0430\u0442\u0443\u0441 \u043e\u0442 Nginx \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <a href=\"https:\/\/luameter.com\/\">Luameter<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435 \u0432 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u044f Nginx Lua \u043c\u043e\u0434\u0443\u043b\u044f. \u042d\u0442\u043e \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u043f\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c \u0433\u0440\u0443\u043f\u043f\u0430\u043c \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 JSON:<\/p>\n<ul>\n<li>\u041e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432\/\u043e\u0442\u0432\u0435\u0442\u043e\u0432.<\/li>\n<li>\u041e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0442\u0432\u0435\u0442\u043e\u0432 \u0441\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u0441\u0442\u0430\u0442\u0443\u0441 \u043a\u043e\u0434\u0430\u043c: 1xx, 2xx, 3xx, 4xx, 5xx.<\/li>\n<li>\u041e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0431\u0430\u0439\u0442 \u043f\u0440\u0438\u043d\u044f\u0442\u044b\u0445\/\u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u0443.<\/li>\n<li>\u041f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0435 \u043e\u0442\u0440\u0435\u0437\u043a\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u043b\u044f \u043e\u0446\u0435\u043d\u043a\u0438 \u043c\u0438\u043d\u0438\u043c\u0443\u043c\u0430, \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c\u0430, \u043c\u0435\u0434\u0438\u0430\u043d\u044b, \u0437\u0430\u0434\u0435\u0440\u0436\u0435\u043a \u0438 \u0442\u0434.<\/li>\n<li>\u0421\u0440\u0435\u0434\u043d\u0435\u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u043e\u0432 \u043f\u043e \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0435.<\/li>\n<li><a href=\"https:\/\/luameter.com\/metrics\">\u0418 \u043f\u0440\u043e\u0447\u0435\u0435\u2026<\/a><\/li>\n<\/ul>\n<p>  <a href=\"https:\/\/luameter.com\/demo\">\u041f\u0440\u0438\u043c\u0435\u0440 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430 \u043e\u0442 Luameter<\/a>.<\/p>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 <a href=\"https:\/\/github.com\/lebinh\/ngxtop\">ngxtop<\/a>.<\/p>\n<h4>\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c<\/h4>\n<p>  <\/p>\n<h5>\u0410\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u0430\u0443\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438<\/h5>\n<p>  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u044c \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0435\u0433\u043e \u0432 \u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u0444\u0430\u0439\u043b\u0435: <\/p>\n<pre><code class=\"nginx\">\u0438\u043c\u044f:\u043f\u0430\u0440\u043e\u043b\u044c <\/code><\/pre>\n<p>  \u0417\u0430\u0442\u0435\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043d\u0430\u0439\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043b\u044f server\/location \u0431\u043b\u043e\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u0449\u0438\u0442\u0438\u0442\u044c: <\/p>\n<pre><code class=\"nginx\">auth_basic &quot;This is Protected&quot;; auth_basic_user_file \/path\/to\/password-file; <\/code><\/pre>\n<h5>\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f<\/h5>\n<pre><code class=\"nginx\">location \/local {     allow 127.0.0.1;     deny all;     ... } <\/code><\/pre>\n<h5>\u0417\u0430\u0449\u0438\u0442\u0430 SSL \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a<\/h5>\n<ul>\n<li>\u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c SSLv3, \u0435\u0441\u043b\u0438 \u043e\u043d \u0432\u043a\u043b\u044e\u0447\u0435\u043d \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \u042d\u0442\u043e \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0442\u0438\u0442 <a href=\"http:\/\/nginx.com\/blog\/nginx-poodle-ssl\/\">POODLE SSL Attack<\/a>.<\/li>\n<li>\u0428\u0438\u0444\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0438\u043b\u0443\u0447\u0448\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0430\u0442 \u0437\u0430\u0449\u0438\u0442\u0443. <a href=\"https:\/\/wiki.mozilla.org\/Security\/Server_Side_TLS#Nginx\">Mozilla Server Side TLS and Nginx<\/a>.\n<pre><code class=\"nginx\"># don\u2019t use SSLv3 ref: POODLE CVE-2014-356 - http:\/\/nginx.com\/blog\/nginx-poodle-ssl\/ ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;    # Ciphers set to best allow protection from Beast, while providing forwarding secrecy, as defined by Mozilla (Intermediate Set) - https:\/\/wiki.mozilla.org\/Security\/Server_Side_TLS#Nginx     ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA'; ssl_prefer_server_ciphers  on; <\/code><\/pre>\n<p>  <\/li>\n<\/ul>\n<h4>\u041f\u0440\u043e\u0447\u0435\u0435<\/h4>\n<p>  <\/p>\n<h5>\u041f\u043e\u0434\u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f<\/h5>\n<p>  \u0411\u044b\u0432\u0430\u044e\u0442 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438, \u043a\u043e\u0433\u0434\u0430 \u0432\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u0431\u044d\u043a\u044d\u043d\u0434 <strong>\u0432 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u0438\u043b\u0438 \u043f\u043e\u0441\u043b\u0435 \u0435\u0433\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438<\/strong>. \u041f\u0435\u0440\u0432\u044b\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u2014 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u044b\u0445 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u043a \u043f\u0443\u0442\u0435\u043c \u0432\u044b\u0437\u043e\u0432\u0430 API, \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0441\u043a\u0430\u0447\u0430\u043b \u0444\u0430\u0439\u043b. \u0412\u0442\u043e\u0440\u043e\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 -\u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441, \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0432\u044b \u0431\u044b \u0445\u043e\u0442\u0435\u043b\u0438 \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435 (\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441 \u043f\u0443\u0441\u0442\u044b\u043c .gif) \u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0444\u043e\u043d\u043e\u0432\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435. <a href=\"http:\/\/wiki.nginx.org\/HttpCoreModule#post_action\"><strong>post_action<\/strong><\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u0430\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u043e\u0434\u0437\u0430\u043f\u0440\u043e\u0441 \u0438 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d \u043f\u043e \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044e \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u2014 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <a href=\"http:\/\/mailman.nginx.org\/pipermail\/nginx\/2008-April\/004524.html\">\u043b\u0443\u0447\u0448\u0438\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c<\/a> \u0434\u043b\u044f \u043e\u0431\u043e\u0438\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432.<\/p>\n<pre><code class=\"nginx\">location = \/empty.gif {     empty_gif;     expires -1;     post_action @track;  }  location @track {     internal;     proxy_pass http:\/\/tracking-backend; }  <\/code><\/pre>\n<h5>\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u043c\u0435\u0436\u0434\u0443 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u043c\u0438<\/h5>\n<p>  \u0421\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043a\u0440\u043e\u0441\u0441-\u0434\u043e\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043d\u0430 \u0432\u0430\u0448 \u0441\u0435\u0440\u0432\u0435\u0440: <\/p>\n<pre><code class=\"nginx\">location ~* .(eot|ttf|woff) {      add_header Access-Control-Allow-Origin *;  } <\/code><\/pre>\n<h4>\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438<\/h4>\n<ul>\n<li><a href=\"http:\/\/nginx.com\/resources\/admin-guide\/\">Nginx Official Guide<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/h5bp\/server-configs-nginx\">HTML 5 Boilerplate\u2019s Sample Nginx Configuration<\/a><\/li>\n<li><a href=\"http:\/\/wiki.nginx.org\/Pitfalls\">Nginx Pitfalls<\/a><\/li>\n<\/ul>\n<p>  \u0411\u043e\u043b\u044c\u0448\u043e\u0435 \u0441\u043f\u0430\u0441\u0438\u0431\u043e \u0432\u0441\u0435\u043c \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435!                 <\/p>\n<div class=\"clear\"><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/272381\/\"> http:\/\/habrahabr.ru\/post\/272381\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>       <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/ddf\/206\/50c\/ddf20650ceb746499571710d4a1e1a31.png\"\/><\/p>\n<p>  \u0414\u043e\u0431\u0440\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u0443\u0442\u043e\u043a, \u0443\u0432\u0430\u0436\u0430\u0435\u043c\u044b\u0435 \u0445\u0430\u0431\u0440\u0430\u0432\u0447\u0430\u043d\u0435! \u0412 Elasticweb \u043c\u044b \u043d\u0435\u0433\u043b\u0430\u0441\u043d\u043e \u0440\u0430\u0442\u0443\u0435\u043c \u0437\u0430 Nginx \u0438, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u043c\u044b \u043e\u0434\u043d\u0438 \u0438\u0437 \u043d\u0435\u043c\u043d\u043e\u0433\u0438\u0445 \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 Apache \u0438 .htaccess \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u0412 \u0441\u0432\u044f\u0437\u0438 \u0441 \u044d\u0442\u0438\u043c, \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0439 \u0432 \u0442\u0435\u0445. \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u043e\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u043f\u043e\u043c\u043e\u0449\u0438 \u0432 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0434\u043b\u044f Nginx. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0441\u043e\u0431\u0440\u0430\u0442\u044c <a href=\"https:\/\/github.com\/elasticweb\/nginx-snippets\">\u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u0441\u043d\u0438\u043f\u043f\u0435\u0442\u043e\u0432<\/a> \u0438 <a href=\"https:\/\/github.com\/elasticweb\/nginx-configs\">\u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e \u0433\u043e\u0442\u043e\u0432\u044b\u0445 Nging \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432<\/a> \u0434\u043b\u044f \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 CMS\/CMF\/\u0424\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u0432 \u043d\u0430 PHP. <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-269600","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/269600","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=269600"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/269600\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=269600"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=269600"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=269600"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}