рдЙрджреНрджреЗрд╢реНрдп: Nginx + PHP-FPM рдмрдВрдбрд▓ рдореЗрдВ рдмрд┐рдЯреНрд░рд┐рдХреНрд╕-рд╕реЗрдореА рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП Nginx рд╡рд░реНрдЪреБрдЕрд▓ рд╕рд░реНрд╡рд░ рдХрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рджрд╛рди рдХрд░рдирд╛ред рдЬреЛ, рдЕрдиреНрдп рдмрд╛рддреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдорд╛рдореВрд▓реА рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреЗ рд╕рд╛рде, рдирдЧреНрдиреЗрдХреНрд╕ + рдЕрдкрд╛рдЪреЗ 2 рдмрдВрдбрд▓ рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрдпреБрдХреНрдд рд╣реИред
рд▓рдХреНрд╖рд┐рдд рджрд░реНрд╢рдХ: рд╕рд░реНрд╡рд░ рдкреНрд░рд╢рд╛рд╕рдХ, рдЙрдиреНрдирдд рд╕рд╛рдЗрдЯ рдкреНрд░рд╢рд╛рд╕рдХ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ред
рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдкрд░реНрдпрд╛рдкреНрдд рд▓реЗрдЦ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдирд╣реАрдВ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЙрдирдореЗрдВ рдЖрдорддреМрд░ рдкрд░ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВ, рдФрд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗ рднрд░реЗ рд╣реБрдП рд╣реИрдВ, рдЬреЛ рдХрд┐ рдирдЧреНрдиреЗрдХреНрд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕ рдХреЙрдиреНрдлрд┐рдЧ рдХреЛ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, Nginx + PHP-FPM рдмрдВрдбрд▓ рдЕрдзрд┐рдХ рдЧрдВрднреАрд░ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдпрд╣рд╛рдБ рд╕рдВрдпреБрдХреНрдд рдХреИрд╢ рдХреЗ рд▓рд┐рдП nginx рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИредрдореИрдВ рдлрд╝рд╛рдЗрд▓ рд╕рдордЧреНрд░ рдХреИрд╢ рд░рд┐рдЯрд░реНрди рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛ рд╡рд╛рдкрд╕реА рдХреА рдпрд╛рджред рдлрд╝рд╛рдЗрд▓ рдХреИрд╢ рд░рд┐рдЯрд░реНрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ, рдореИрдВрдиреЗ 11 ifs рдЧрд┐рдирд╛, рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВрдиреЗ рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдХрд░ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдпрд╛ред
рдореИрдВ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реАрдПрдирд╕реА рдХреЗ рд╕рд░рд▓реАрдХреГрдд рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реВрдБрдЧрд╛, рдЬрд┐рдиреНрд╣реЗрдВ рд╕рд┐рд░реНрдл Nginx рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдордЧреНрд░ рдХреИрд╢ рд╡рд╛рдкрд╕ рдХрд┐рдП рдмрд┐рдирд╛ Nginx + PHP-FPM рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ рд╕реЗрдХреНрд╢рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╣реИ, рдбреЛрдореЗрди рдирд╛рдо рдФрд░ php-fpm рдХреЛ рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рдеред
location / { try_files $uri $uri/ /bitrix/urlrewrite.php$is_args$args; }
рдпрд╣ рдЙрди рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ рдЬрдм рдЙрди рдХреИрдирд╡рд╕ рдХреЛ рджреЗрдЦрдХрд░ рдЬреЛ рдореЗрд░реЗ рдкрд╛рд╕ рдЖрдП рдереЗ, рдпрд╣ рдмрд┐рдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ index.php рдФрд░ index.html рд╕реЗ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЕрднреА рднреА рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
if ($request_uri ~ ^(.*)/index.(html|php)) { return 301 $1/$is_args$args; }
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЕрдЧрд░ рд╡рд╣рд╛рдБ рдХреЛрдИ рдпреЛрдЧреНрдп рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рд░реЗрдЦрд╛ рд╕рдорд╕реНрдпрд╛ рдкреИрджрд╛ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░рддреА рд╣реИред
рдиреНрдпреВрдирддрдо рд╡рд┐рдиреНрдпрд╛рд╕ рдЙрджрд╛рд╣рд░рдг server { listen 80; server_name site.ru; root /var/www/site.ru/; index index.php; location ~ \.php$ { include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors on; } if ($request_uri ~ ^(.*)/index.(html|php)) { return 301 $1/$is_args$args; } location / { try_files $uri $uri/ /bitrix/urlrewrite.php$is_args$args; } location ~* @.*\.html$ { internal; } }
рдореИрдВ рдЗрд╕ рдмрд╛рдд рдкрд░ рдЬреЛрд░ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╕реНрдЯреИрдЯрд┐рдХреНрд╕, рдХрдореНрдкреНрд░реЗрд╢рди рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдиреНрдпреВрдирддрд░ рд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИ, рдФрд░ рд╡рд╣рд╛рдВ рдореИрдВрдиреЗ рдкреНрд░рддреНрдпрдХреНрд╖ рдкрд╣реБрдБрдЪ рд╕реЗ рдХреЗрд╡рд▓ рдХрдореНрдкреЛрдЬрд╝рд┐рдЯ рдХреИрд╢ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХрд╡рд░ рдХрд┐рдпрд╛ рд╣реИред рдирдЧрдиреЗрдХреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реАрдзреЗ рдкрд╣реБрдВрдЪ рд╕реЗ рдХреБрдЫ рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛рдлреА рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдХрд┐рдЯ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛ рд╕рдХрддреА рд╣реИред рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЬрд╛рдЧрд░реВрдХрддрд╛ рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рд╕реНрдерд╛рди рдбреЗрдЯрд╛ рджрд░реНрдЬ рдХрд░рдиреЗ рд╕реЗ рд╕рд╛рдЗрдЯ рдЕрдХреНрд╖рдорддрд╛ рдпрд╛ рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред
рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд┐рдЧ рдмреНрд▓реЙрдХрд┐рдВрдЧ рдПрдХреНрд╕реЗрд╕ рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рдЬреЛ рдХреЗрд╡рд▓ PHP рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП location ~ \.php$ { location ~* /\.\./ { internal; } location ~ /\.[^/]+$ { internal; } location ~* ^/upload/1c_[^/]+/ { internal; } location ~* ^/(bitrix/(cache|images|tmp)|upload)/ { internal; } location ~* ^/bitrix/(footer|header|license_key)\.php$ { internal; } location ~* ^/(bitrix|local)/components/(.*)/(.*)/(class|component)\.php$ { internal; } location ~* ^/(bitrix|local)/(backup|blocks|bx_cloud_upload|local_cache|module|modules|managed_cache|php_interface|public|stack_cache)/ { internal; } include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors on; } location ~* \.(hg|svn|git|bzr)$ { internal; } location ~* /\.\./ { internal; } location ~* @.*\.html$ { internal; } location / { location ~* ^/(bitrix|local)/(backup|blocks|bx_cloud_upload|local_cache|module|modules|managed_cache|php_interface|public|services|stack_cache)/ { internal; } location ~ /\.[^/]+$ { internal; } location ~* ^/upload/1c_[^/]+/ { internal; } try_files $uri $uri/ /bitrix/urlrewrite.php$is_args$args; }
рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдереИрддрд┐рдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рди рдЙрджрд╛рд╣рд░рдг
location ~* \.(jpg|jpeg|png|tiff|gif|webp|xml|html|yml|ogg|ogv|svg|svgz|eot|otf|woff|woff2|mp4|ttf|rss|atom|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|rtf|pdf|txt|js|css|bmp|pnm|pbm|ppm)$ { access_log off; expires 97d; }
рдЕрдм рдЪрд▓реЛ nginx рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреИрд╢ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╡рд╛рдкрд╕реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЧреНрд░ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рд╕рдордЧреНрд░ рдХреИрд╢ рджреЗрдирд╛ рд╕рдВрднрд╡ рд╣реИ рдпрд╛ рдХреНрдпрд╛ рдЗрд╕реЗ php рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рднреЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Nginx рдореЗрдВ, http рд╕реЗрдХреНрд╢рди рдореЗрдВ, рдХреБрдЫ рдирдХреНрд╢реЗ рдФрд░ рд╕рд╛рде рд╣реА рдХрдИ рдирд┐рд░реНрджреЗрд╢ рдЬреЛрдбрд╝реЗрдВ:
modern_browser_value "modern"; modern_browser msie 10.0; modern_browser unlisted; map "$cookie_BITRIX_SM_LOGIN:$cookie_BITRIX_SM_UIDH:$cookie_BITRIX_SM_CC" $storedAuth { default ""; "~*:*:Y" ""; "~*:*:*" 1; "~*:*:" 1; } map "$request_method:$http_bx_action_type:$cookie_BITRIX_SM_NCC:$http_x_forwarded_scheme:$modern_browser:$storedAuth" $usecache { default "1"; "~GET:::*https*" "1"; "~GET:::*:*:" ""; }
рдЕрдЧрд▓рд╛, рд╣рдо рд╕рд░реНрд╡рд░ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╕реАрдзреЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ
set $i "index@"; location / { try_files /bitrix/html_pages/$host$uri$i${args}.html$usecache /bitrix/html_pages/$host$uri$i${args}=.html$usecache /bitrix/html_pages/$host$uri/$i${args}.html$usecache /bitrix/html_pages/$host$uri/$i${args}=.html$usecache $uri $uri/ /bitrix/urlrewrite.php$is_args$args; }
рдЦреИрд░, рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╕рд░реНрд╡рд░ рдЕрдиреБрднрд╛рдЧ рдХрд╛ рдиреНрдпреВрдирддрдо рд╡рд┐рдиреНрдпрд╛рд╕ рд▓рдЧрднрдЧ рдХреИрд╕реЗ рджрд┐рдЦреЗрдЧрд╛
рдирдВрдЧреЗрдХреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд╝рд╛рдЗрд▓ рд╕рдордЧреНрд░ рдХреИрд╢ рдХреА рд╡рд╛рдкрд╕реА рдХреЗ рд╕рд╛рде рдПрдХ рдиреНрдпреВрдирддрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрджрд╛рд╣рд░рдг server { listen 80; server_name site.ru; root /var/www/site.ru/; index index.php; location ~ \.php$ { include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors on; } if ($request_uri ~ ^(.*)/index.(html|php)) { return 301 $1/$is_args$args; } set $i "index@"; location / { try_files /bitrix/html_pages/$host$uri$i${args}.html$usecache /bitrix/html_pages/$host$uri$i${args}=.html$usecache /bitrix/html_pages/$host$uri/$i${args}.html$usecache /bitrix/html_pages/$host$uri/$i${args}=.html$usecache $uri $uri/ /bitrix/urlrewrite.php$is_args$args; } location ~* @.*\.html$ { internal; } }
рдореБрдЭреЗ рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рд╢реНрдиреЛрдВ рдФрд░ рд╕реБрдЭрд╛рд╡реЛрдВ рдкрд░ рдЦреБрд╢реА рд╣реЛрдЧреА, рд╕рд╛рде рд╣реА рдЖрдирдВрдж рдХреЗ рд▓рд┐рдП рдореИрдВ рдЖрдкрдХреА рдЙрдкрд▓рдмреНрдзрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦреВрдВрдЧрд╛ред