Правильность и оптимизация конфига nginx?
В панели ISPmanager 5 Lite использую свзяку Nginx + PHP-FPM (версия php 7.1). Потихоньку отхожу от привычной связки Nginx + Apache. В связи с тем, что классический .htaccess использовать нельзя, вношу некоторые правки в конфиг /etc/nginx/vhosts/siteru/site.ru.conf
Кто хорошо знаком со свзякой Nginx + PHP-FPM, подкажите, можно ли этот конфиг как-то улучшить? (смущает, что приходится дублировать все данные) Или же он идеален? :)
server { server_name site.ru www.site.ru; charset off; disable_symlinks if_not_owner from=$root_path; include /etc/nginx/vhosts-includes/*.conf; include /etc/nginx/vhosts-resources/site.ru/*.conf; access_log /var/www/httpd-logs/site.ru.access.log; error_log /var/www/httpd-logs/site.ru.error.log notice; ssi on; set $root_path /var/www/siteru/data/www/site.ru; root $root_path; location / { location ~ [^/]\.ph(p\d*|tml)$ { try_files /does_not_exists @php; } location / { try_files $uri $uri/ /index.php?$args; } } listen xx.xxx.xx.xx:80; index index.php; return 301 https://$host:443$request_uri; location @php { fastcgi_index index.php; fastcgi_param PHP_ADMIN_VALUE «sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@site.ru»; fastcgi_pass unix:/var/www/php-fpm/siteru.sock; fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$; try_files $uri =404; include fastcgi_params; } location = /wp-login.php { try_files /does_not_exists @deny; } location @deny { allow xx.xxx.xx.xxx; deny all; } location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } # Запрещаем доступ к скрытым файлам location ~ /\. { deny all; } # Запрещаем доступ к файлам .php в директории uploads location ~* /(?:uploads|files)/.*\.php$ { deny all; } } server { server_name site.ru www.site.ru; ssl on; ssl_certificate "/var/www/httpd-cert/siteru/site.ru_le1.crtca"; ssl_certificate_key "/var/www/httpd-cert/siteru/site.ru_le1.key"; ssl_ciphers EEEEH:+AEEE56:-EEES:REE+AES:!NULL:!RC4; ssl_prefer_server_ciphers on; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_dhparam /etc/ssl/certs/dhparam4096.pem; charset off; index index.php; disable_symlinks if_not_owner from=$root_path; include /etc/nginx/vhosts-includes/*.conf; include /etc/nginx/vhosts-resources/site.ru/*.conf; access_log /var/www/httpd-logs/site.ru.access.log; error_log /var/www/httpd-logs/site.ru.error.log notice; ssi on; set $root_path /var/www/siteru/data/www/site.ru; root $root_path; listen xx.xxx.xx.xx:443 ssl http2; location / { location ~ [^/]\.ph(p\d*|tml)$ { try_files /does_not_exists @php; } location / { try_files $uri $uri/ /index.php?$args; } } location @php { fastcgi_index index.php; fastcgi_param PHP_ADMIN_VALUE «sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@site.ru»; fastcgi_pass unix:/var/www/php-fpm/siteru.sock; fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$; try_files $uri =404; include fastcgi_params; } location = /wp-login.php { try_files /does_not_exists @deny; } location @deny { allow xx.xxx.xx.xxx; deny all; } location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } # Запрещаем доступ к скрытым файлам location ~ /\. { deny all; } # Запрещаем доступ к файлам .php в директории uploads location ~* /(?:uploads|files)/.*\.php$ { deny all; } }
Кто хорошо знаком со свзякой Nginx + PHP-FPM, подкажите, можно ли этот конфиг как-то улучшить? (смущает, что приходится дублировать все данные) Или же он идеален? :)
server { server_name site.ru www.site.ru; charset off; disable_symlinks if_not_owner from=$root_path; include /etc/nginx/vhosts-includes/*.conf; include /etc/nginx/vhosts-resources/site.ru/*.conf; access_log /var/www/httpd-logs/site.ru.access.log; error_log /var/www/httpd-logs/site.ru.error.log notice; ssi on; set $root_path /var/www/siteru/data/www/site.ru; root $root_path; location / { location ~ [^/]\.ph(p\d*|tml)$ { try_files /does_not_exists @php; } location / { try_files $uri $uri/ /index.php?$args; } } listen xx.xxx.xx.xx:80; index index.php; return 301 https://$host:443$request_uri; location @php { fastcgi_index index.php; fastcgi_param PHP_ADMIN_VALUE «sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@site.ru»; fastcgi_pass unix:/var/www/php-fpm/siteru.sock; fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$; try_files $uri =404; include fastcgi_params; } location = /wp-login.php { try_files /does_not_exists @deny; } location @deny { allow xx.xxx.xx.xxx; deny all; } location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } # Запрещаем доступ к скрытым файлам location ~ /\. { deny all; } # Запрещаем доступ к файлам .php в директории uploads location ~* /(?:uploads|files)/.*\.php$ { deny all; } } server { server_name site.ru www.site.ru; ssl on; ssl_certificate "/var/www/httpd-cert/siteru/site.ru_le1.crtca"; ssl_certificate_key "/var/www/httpd-cert/siteru/site.ru_le1.key"; ssl_ciphers EEEEH:+AEEE56:-EEES:REE+AES:!NULL:!RC4; ssl_prefer_server_ciphers on; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_dhparam /etc/ssl/certs/dhparam4096.pem; charset off; index index.php; disable_symlinks if_not_owner from=$root_path; include /etc/nginx/vhosts-includes/*.conf; include /etc/nginx/vhosts-resources/site.ru/*.conf; access_log /var/www/httpd-logs/site.ru.access.log; error_log /var/www/httpd-logs/site.ru.error.log notice; ssi on; set $root_path /var/www/siteru/data/www/site.ru; root $root_path; listen xx.xxx.xx.xx:443 ssl http2; location / { location ~ [^/]\.ph(p\d*|tml)$ { try_files /does_not_exists @php; } location / { try_files $uri $uri/ /index.php?$args; } } location @php { fastcgi_index index.php; fastcgi_param PHP_ADMIN_VALUE «sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@site.ru»; fastcgi_pass unix:/var/www/php-fpm/siteru.sock; fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$; try_files $uri =404; include fastcgi_params; } location = /wp-login.php { try_files /does_not_exists @deny; } location @deny { allow xx.xxx.xx.xxx; deny all; } location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } # Запрещаем доступ к скрытым файлам location ~ /\. { deny all; } # Запрещаем доступ к файлам .php в директории uploads location ~* /(?:uploads|files)/.*\.php$ { deny all; } }
Похожие публикации
Как грамотно сделать редирект https nginx?
Почему существующая страница возвращает ответ сервера 404?
Как заставить nginx отдавать по domain.com/sub отдельную папку?
Как правильно настроить локальный кеш сервер на nginx?
Невозможно перезаписать файлы
Нет комментариев