Http/2 nginx падает сервер?

ngnix 1.9.14
php-fpm
Ubuntu

конфиг
server { listen 80; server_name domain.com *.domain.com www.domain.com; return 301 https://$host$request_uri; } server { listen 443; server_name domain.com *.domain.com www.domain.com; charset UTF-8; disable_symlinks if_not_owner from=$root_path; index index.php; root $root_path/$subdomain; set $root_path /var/www/user_name/data/www; set $subdomain domain.com; if ($host ~* ^((.*).domain.com)$) { set $subdomain $1; } access_log /var/www/httpd-logs/domain.com.access.log; error_log /var/www/httpd-logs/domain.com.error.log notice; include /etc/nginx/vhosts-includes/*.conf; location / { location ~ [^/]\.ph(p\d*|tml)$ { try_files /does_not_exists @php; } try_files $uri $uri/ /index.php?q=$request_uri; } location @php { fastcgi_index index.php; fastcgi_param PHP_ADMIN_VALUE «sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@domain.com»; fastcgi_pass unix:/var/www/php-fpm/user_name.sock; fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$; try_files $uri =404; include fastcgi_params; } ssi on; add_header Strict-Transport-Security «max-age=31536000;»; ssl on; ssl_certificate "/var/www/httpd-cert/user_name/domain.com.crtca"; ssl_certificate_key "/var/www/httpd-cert/user_name/domain.com.key"; ssl_ciphers HIGH:!RC4:!aNULL:!eNULL:!MD5:!EXPORT:!EXP:!LOW:!SEED:!CAMELLIA:!IDEA:!PSK:!SRP:!SSLv2; ssl_prefer_server_ciphers on; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; }
Читать дальше

Как грамотно сделать редирект https nginx?

Доброго времени суток.
Пробовал ставить редирект на https, но он у меня циклится
rewrite ^(.*) https://$server_name$1 permanent;
как будет сделать это правильно, подскажите пожалуйста
server { listen 80; listen [::]:80; listen 443 ssl; listen [::]:443 ssl; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; ssl_certificate /etc/ssl/example.ru.crt; ssl_certificate_key /etc/ssl/example.ru.key; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; server_name www.example.ru example.ru maestra.deathstar.name; root /home/maestra/www/example.ru; access_log /var/log/nginx/example.ru_access.log; error_log /var/log/nginx/example.ru_error.log; index index.php; charset UTF-8; include /etc/nginx/default.d/*.conf; location / { try_files $uri @rewrite; } location @rewrite { rewrite ^/(.+)$ /index.php?path=$1 last; } location ~* ^.+\.(ogg|webp|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf|css|js)$ { access_log off; log_not_found off; # expires 7d; add_header Cache-Control public,max-age=604800; } location ~ \.php$ { limit_req zone=dynamic burst=5; fastcgi_pass maestra; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }

Падают демоны на PHP (Apache + Nginx), в чем причина?

На днях переехал на сервер VPS и вроде бы все настроил, но стали сами по себе падать PHP процессы которые я запускаю как демоны. Падают в одно и тоже время с интервалов в 1-2 минуты, вот последний раз процесс работал с 00:44 до 11:27 и время постоянно разно. Установлена IspManager 5, крон весь проверял, подозреваю, что перезагружается Apache
Вот отрывок ил error.log:

[Thu Mar 24 11:15:42 2016] [notice] Apache/2.2.22 (Debian) configured — resuming normal operations
[Thu Mar 24 11:30:58 2016] [notice] caught SIGTERM, shutting down
[Thu Mar 24 11:31:03 2016] [notice] Apache/2.2.22 (Debian) configured — resuming normal operations
[Thu Mar 24 11:31:50 2016] [notice] caught SIGTERM, shutting down
[Thu Mar 24 11:31:51 2016] [notice] Apache/2.2.22 (Debian) configured — resuming normal operations
[Thu Mar 24 11:31:52 2016] [notice] caught SIGTERM, shutting down
[Thu Mar 24 11:31:58 2016] [notice] Apache/2.2.22 (Debian) DAV/2 PHP/5.4.45-0+deb7u2 mod_ssl/2.2.22 OpenSSL/1.0.1e configured — resuming normal operations
[Thu Mar 24 11:31:59 2016] [notice] SIGHUP received. Attempting to restart
[Thu Mar 24 11:31:59 2016] [notice] Apache/2.2.22 (Debian) DAV/2 PHP/5.4.45-0+deb7u2 mod_ssl/2.2.22 OpenSSL/1.0.1e configured — resuming normal operations
[Thu Mar 24 11:32:18 2016] [notice] caught SIGTERM, shutting down
[Thu Mar 24 11:32:19 2016] [notice] Apache/2.2.22 (Debian) DAV/2 PHP/5.4.45-0+deb7u2 mod_ssl/2.2.22 OpenSSL/1.0.1e configured — resuming normal operations
[Thu Mar 24 11:32:38 2016] [notice] Graceful restart requested, doing restart
[Thu Mar 24 11:32:38 2016] [error] (9)Bad file descriptor: apr_socket_accept: (client socket)
[Thu Mar 24 11:32:38 2016] [error] (9)Bad file descriptor: apr_socket_accept: (client socket)
[Thu Mar 24 11:32:38 2016] [error] (9)Bad file descriptor: apr_socket_accept: (client socket)
[Thu Mar 24 11:32:38 2016] [error] (9)Bad file descriptor: apr_socket_accept: (client socket)

Похоже что-то отправляет ему сигнал, но суть в том, что не всегда, когда Apache получает «caught SIGTERM, shutting down» он перезагружается.
Прошу помощи: с

Как спрятать папку vendor(в конкретном случае) и надо ли это делать?

Есть директория сайта(example.com)
/var/www/example: vendor/ public/ blabla/
В конфигах nginx, как root стоит /public/, но теперь нужно, чтобы по адресу /public/folder/(example.com/folder/) открывалось свое приложение со своей /vendor/.

Понятно, что первое, что приходит в голову -> изменить конфиг nginx и сделать алиас/rewrite на /var/www/folder/, но проблема в том, что такая /folder/ должна быть на большом количестве сайтов и лезть всем в конфиг как-то не очень.

Доп информация:
В папке /folder/ есть файл index.php, который и берет всё из своего /vendor/

Вопрос: стоит ли прятать в данном случае /folder/vendor/ или ничего страшного, что он будет доступен из веба?

Почему не прогружается полностью страница nginx+php-fpm?

Добрый день, есть страница, что довольно частенько ее стало отдавать неполностью.
То есть страница стала просто обрываться, но это не у всех, случается случается. Сначала грешил на код php что возникает ошибка и он ее просто не загружается, просмотрел код, он банально бьет его.
Перезагружал nginx
Вот конфиги
# For more information on configuration, see: # * Official English Documentation: nginx.org/en/docs/ # * Official Russian Documentation: nginx.org/ru/docs/ user maestra; worker_processes 8; worker_priority -5; worker_rlimit_nofile 4096; events { use epoll; worker_connections 4096; } error_log /var/log/nginx/error.log; pid /run/nginx.pid; http { log_format main '$remote_addr — $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; client_body_buffer_size 16K; client_header_buffer_size 4k; client_max_body_size 32M; large_client_header_buffers 8 32k; client_body_timeout 60; client_header_timeout 60; keepalive_timeout 60; send_timeout 60; reset_timedout_connection on; server_tokens off; gzip on; gzip_static on; gzip_min_length 1100; gzip_buffers 64 8k; gzip_comp_level 4; gzip_http_version 1.1; gzip_proxied any; # gzip_types text/plain application/xml application/x-javascript text/css; gzip_types text/css text/javascript text/xml text/plain text/x-component application/javascript application/x-javascript application/json application/xml application/rss+xml font/truetype application/x-font-ttf font/opentype application/vnd.ms-fontobject image/svg+xm$ limit_req_zone $binary_remote_addr zone=dynamic:10m rate=2r/s; proxy_connect_timeout 60000s; proxy_send_timeout 60000s;
Читать дальше

Как настроить кеширование на apache+nginx?

Добрый времени суток такой вопрос.
У меня на vps стоит apache + nginx
Мне необходимо кэшировать данные, прочитал статьи
docs.moodle.org/archive/ru/%D0%9D%D0%B0%D1...

#! Статический контент! location ~* \.(jpg|jpeg|gif|png|swf|tiff|swf|flv)$ { root $webroot; #Кеширум картинки месяца на 4 expires 4M; #Кешируем везде (и на прокси и на клиентах) add_header Cache-Control public; }
в примере осуществляется кеширование на стороне как клиента так и промежуточных серверов. переменная $webroot указывает, где находиться папка с файлами moodle, например:
set $webroot '/var/www/moodle'; root $webroot;
этого момента я не до конца не догоняю, куда он ссылаться должен??

весь файл
user apache; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; server_tokens off; client_max_body_size 100m; log_format main '$remote_addr — $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; ############################################################ #GZIP gzip on; gzip_min_length 1000; gzip_proxied expired no-cache no-store private auth; gzip_types text/plain application/xml; #
Читать дальше

Не работает PHP7 на Debian 8?

Особо не пинайте, я настраиваю свой первый сервер.
Попробую расписать всю информацию, которую делал, если чего недостаточно, пишите. Я могу даже оплатить вашу помощь.
Пробую ставить nginx 1.9.10 + PHP/7.0.2.

Как я ставил nginx
# Obtain the latest source for NGINX from nginx.org/en/download.html wget nginx.org/download/nginx-1.9.10.tar.gz tar -xzvf nginx-1.9.10.tar.gz # Obtain the development sources for nginScript hg clone hg.nginx.org/njs # Build and install NGINX cd nginx-1.9.10 ./configure --sbin-path=/usr/sbin/nginx --prefix=/etc/nginx --conf-path=/etc/nginx/nginx.conf --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --user=nginx --group=nginx --with-ipv6 --with-pcre-jit --with-http_gzip_static_module --with-http_ssl_module --with-http_v2_module --add-module=../njs/nginx --with-http_auth_request_module --with-mail --with-mail_ssl_module --with-file-aio --with-openssl=../openssl-1.0.1r
все хорошо поставилось, еще пару манипуляций с init.d и все заработало. Запускаю службу nginx'а, ура!, отображается html-файл.
Пробую подтянуть пхп. Тут начинаются проблемы. Делаю все в точности, как в мануале codebeer.ru/ustanovka-php-7-v-debian-8/, кроме того, как указываю listen = 127.0.0.1:7777. Подключаю в конфиг nginx обработку php файлов, так:
#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr — $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { server_name 46.36.220.150; charset off; disable_symlinks if_not_owner from=$root_path; index index.html index.php; root $root_path; set $root_path /var/www/forum; access_log /var/www/access.log; error_log /var/www/error.log notice; listen *:80; listen *:81; location / { location ~ [^/]\.ph(p\d*|tml)$ { try_files /does_not_exists @php; } } location @php { fastcgi_index index.php; fastcgi_param PHP_ADMIN_VALUE «sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@adpay.click»; fastcgi_pass 127.0.0.1:7777; fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$; try_files $uri =404; include fastcgi_params; } } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} }
Файлы логов создал и дал им права 777. Создаю файл index.php, пишу в него любимую команду

Какая производительность Nginx в режиме проксирования?

Не знал как правильно вопрос сформулировать. Есть мощный сервер на котором стоит Apache + mysql + PHP. Появилась задача его проксировать NGIXN, но не на базе этого же сервера, а отдельного (например, маломощный хостинг VPS только под эту задачу). И тут возник резонный вопрос: какая производительность потребуется для NGINX.
В моем понимании, при выполнении запроса к сайту, основная нагрузка создается Apache + mysql + PHP, пальцем в небо это около 90%. Т.е приблизительно если брать VPS, он должен быть в 10 раз меньшей производительности. Понимаю, что можно настроить проксирование по разному. Сейчас речь идет про стандартную настройку. Насколько мое понимание верное? Комменты на эту тему приветствуются.

Я дополню вопрос. Сервер из темы: Куда можно еще использовать сервер?
Т.к линии домашних несколько и мне не дают BGP, хочу взять на хорошей площадке маломощный сервер или VPS, чтоб он был точкой доступа к HTTP серверу. Т.е в случае падения одного канала он автоматически запрашивал все через второй/третий. Как-то так. И конечно, хочется меньше заплатить на сервер доступа. Ведь моя машина всяко производительнее чем сервера до 500 евро.
Сейчас на моем ради эксперимента стоит в виртуалке VestaCP. Пока видел, что она позволяет выбрать отдачу сайта в формате: Apache + NGINX Proxy или просто Apache.

Как заставить nginx отдавать по domain.com/sub отдельную папку?

Имеем проект на Laravel.
И понадобилось часть запросов на /sub обрабатывать отдельным скриптом. Но вот незадача, отдельный скрипт тоже написан на Laravel и по сути является независимым проектом.

Никак не могу заставить свой мозг сообразить как же изменить конфиг nginx'a чтобы всё работало. Помогите разобраться, пожалуйста.

Сейчас конфиг стандартный как у всех:
server { # все как у всех listen 80 default_server; server_name domain.cm; root /home/domain.com/public; index index.php; # тут все стандартно location / { try_files $uri $uri/ /index.php?$query_string; } # и тут все стандартно location ~ \.php$ { fastcgi_pass 127.0.0.1:9001; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }

Соответственно /home/domain.com лежит проект. А /home/domain.com/public точка входа в приложение.
Так вот в /home/domain.com/sub лежит подпроект. И его точка входа естественно /home/domain.com/sub/public
А надо отдать его как domain.com/sub. Причем чтобы юзера не редиректило в domain.com/sub/public

Пробовал реализовать то что мне нужно вот так:
Читать дальше

Как закрыть доступ по IP в NGINX + PHP-Fpm?

Всем привет. Есть сайт, который работает на связке Nginx + php-fpm на панели управления Ajenti на Wordpress

Вот нужно заблокировать доступ по IP всем, кроме моего IP адреса.
Я добавлял например такое
location ~ / { #allow мой ИП; deny all; }

Но тогда сайт пхп не загружается, а скачивает Индексный файл пхп.

Подскажите как настроить правильно такое…

Вот конфиг
/etc/nginx/conf.d/мой-сайт.conf
# This order might seem weird — this is attempted to match last if rules below fail. location / { try_files $uri $uri/ /index.php?$args; } # Add trailing slash to */wp-admin requests. rewrite /wp-admin$ $scheme://$host$uri/ permanent; # Directives to send expires headers and turn off 404 error logging. location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ { access_log off; log_not_found off; expires max; } location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } # Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac). # Keep logging the requests to parse later (or to pass to firewall utilities such as fail2ban) location ~ /\. { deny all; } # Deny access to any files with a .php extension in the uploads directory # Works in sub-directory installs and also in multisite network # Keep logging the requests to parse later (or to pass to firewall utilities such as fail2ban) location ~* /(?:uploads|files)/.*\.php$ { deny all; } #