Magento 2 configuração extrema com Nginx Php7 Varnish 4 e Percona Server, ambiente otimizado para acelerar a velocidade das páginas de sua loja virtual com baixo investimento.

Vamos usar um servidor Vultr de apenas 5 dólares.

É possível ter uma loja ultra rápida sem precisar gastar centenas de dólares com servidores ou CDN.

Para começar nosso setup, precisamos implantar nosso servidor cloud para configurar nossa loja Magento 2.

Como você pode ver no vídeo eu estou utilizando a Vultr, mas sinta-se a vontade para usar a plataforma de sua escolha.

Apenas lembre-se, que o Magento / Magento 2 é um tipo de aplicação que precisa de um bom processamento, logo usar servidor fraco não vai ajudar em nada.

Como exemplo disso, estão as instâncias Ec2 de alto custo como a C3Large com preço acima de 100 dólares por mês e ainda sim, tem processamento fraco.

Vamos começar nosso tutorial, implantando um servidor com Debian Jessie 64 e adicionando o respositório dotdeb:

nano /etc/apt/sources.list

Adicionamos ao final do arquivo as seguintes linhas:

deb http://packages.dotdeb.org jessie all
deb-src http://packages.dotdeb.org jessie all

Logo em seguida vamos fazer o download da key do repositório e adicioná-la ao nosso servidor:

wget https://www.dotdeb.org/dotdeb.gpg
apt-key add dotdeb.gpg

Agora estamos prontos para usar o repositório dotdeb

apt-get update


Vamos aproveitar e instalar de uma única vez o Nginx com PHP7-FPM, executando o seguinte comando de instalação:

apt-get install -y build-essential autoconf automake libtool openssl nginx-extras php7.0-fpm php7.0-mysql php7.0-curl php7.0-gd php7.0-intl php-pear php7.0-mcrypt php7.0-sqlite php7.0-tidy php7.0-xmlrpc php7.0-xsl memcached imagemagick mcrypt php7.0-zip php7.0-mbstring zip php7.0-json php7.0-iconv php7.0-soap php7.0-bcmath

Agora, precisamos otimizar nosso servidor Nginx e nosso PHP para que nossa loja Magento 2 rode satisfatoriamente, nessa parte, recomendo que crie um pequeno script para você ganhar tempo nesse processo.

nano php.sh

Insira o conteúdo:

cp /etc/php/7.0/fpm/php.ini /etc/php/7.0/fpm/php.ini.BACK
sed -i 's/max_execution_time = 30/max_execution_time = 300/' /etc/php/7.0/fpm/php.ini
sed -i 's/; max_input_vars = 1000/max_input_vars = 3000/' /etc/php/7.0/fpm/php.ini
sed -i 's/memory_limit = 128M/memory_limit = 196M/' /etc/php/7.0/fpm/php.ini
sed -i 's/max_input_time = 60/max_input_time = 300/' /etc/php/7.0/fpm/php.ini
sed -i 's/post_max_size = 8M/post_max_size = 50M/' /etc/php/7.0/fpm/php.ini
sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 50M/' /etc/php/7.0/fpm/php.ini
sed -i 's/expose_php = On/expose_php = Off/' /etc/php/7.0/fpm/php.ini
sed -i 's/;realpath_cache_size = 16k/realpath_cache_size = 1024k/' /etc/php/7.0/fpm/php.ini
sed -i 's/;realpath_cache_ttl = 120/realpath_cache_ttl = 86400/' /etc/php/7.0/fpm/php.ini
sed -i 's/short_open_tag = Off/short_open_tag = On/' /etc/php/7.0/fpm/php.ini
sed -i 's/session.gc_maxlifetime = 1440/session.gc_maxlifetime = 86400/' /etc/php/7.0/fpm/php.ini
sed -i 's/;date.timezone =/date.timezone = UTC/' /etc/php/7.0/fpm/php.ini
sed -i "s/^;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/" /etc/php/7.0/fpm/php.ini

echo "*         soft    nofile          700000" >> /etc/security/limits.conf
echo "*         hard    nofile          1000000" >> /etc/security/limits.conf
echo "root      hard    nofile           500000" >> /etc/security/limits.conf
echo "root      soft    nofile           500000" >> /etc/security/limits.conf
echo "session required pam_limits.so" >> /etc/pam.d/common-session

cp /etc/php/7.0/fpm/pool.d/www.conf /etc/php/7.0/fpm/pool.d/www.conf.BACK
sed -i 's/;catch_workers_output = yes/catch_workers_output = yes/' /etc/php/7.0/fpm/pool.d/www.conf
sed -i 's/;request_terminate_timeout = 0/request_terminate_timeout = 300s/' /etc/php/7.0/fpm/pool.d/www.conf
sed -i 's/;rlimit_files = 1024/rlimit_files = 200000/' /etc/php/7.0/fpm/pool.d/www.conf
sed -i 's/;rlimit_core = 0/rlimit_core = unlimited/' /etc/php/7.0/fpm/pool.d/www.conf
#sed -i 's/;slowlog = log/$pool.log.slow/slowlog = /var/log/slowlog-site.log/' /etc/php/7.0/fpm/pool.d/www.conf
#sed -i 's/;request_slowlog_timeout = 0/request_slowlog_timeout = 5s/' /etc/php/7.0/fpm/pool.d/www.conf
#sed -i 's/;pm.status_path = /status/pm.status_path = /status/' /etc/php/7.0/fpm/pool.d/www.conf

sed -i 's/;listen.backlog = 65535/listen.backlog = -1/' /etc/php/7.0/fpm/pool.d/www.conf
sed -i 's/;emergency_restart_threshold = 0/emergency_restart_threshold = 10/' /etc/php/7.0/fpm/php-fpm.conf
sed -i 's/;emergency_restart_interval = 0/emergency_restart_interval = 1m/' /etc/php/7.0/fpm/php-fpm.conf
sed -i 's/;process_control_timeout = 0/process_control_timeout = 10s/' /etc/php/7.0/fpm/php-fpm.conf

Agora, dê a permissão correta para executar o arquivo

chmod 755 php.sh

E então, vamos executar nosso pequeno script:

./php.sh

Pronto, nosso PHP7 está quase terminado. Edite a forma como o PHP-FPM será listado, nesse caso, como TCP

nano /etc/php/7.0/fpm/pool.d/www.conf

Altere a linha

listen = /var/run/php7.0-fpm.sock

para

listen = 127.0.0.1:9000

Agora basta reiniciar com o comando:

/etc/init.d/php7.0-fpm restart

Agora voltando ao Nginx, vamos criar o arquivo de configuração / vhost para nossa loja Magento 2.

cd /etc/nginx/sites-enabled

E adicionamos o vhost

nano magento2.vhost

Inserimos o conteúdo:

upstream fastcgi_backend {
server  127.0.0.1:9000;
}
server {
    listen 80;
    server_name magento2.speedinx.com.br www.magento2.speedinx.com.br;
    set $MAGE_ROOT /var/www/magento2;
    set $MAGE_MODE developer;
index index.html index.htm index.php index.cgi index.pl index.xhtml;

root $MAGE_ROOT/pub;

autoindex off;
charset off;

add_header 'X-Content-Type-Options' 'nosniff';
add_header 'X-XSS-Protection' '1; mode=block';

location /setup {
root $MAGE_ROOT;
location ~ ^/setup/index.php {
fastcgi_pass   fastcgi_backend;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
include        fastcgi_params;
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
}

location ~ ^/setup/(?!pub/). {
deny all;
}

location ~ ^/setup/pub/ {
add_header X-Frame-Options "SAMEORIGIN";
}
}

location /update {
root $MAGE_ROOT;

location ~ ^/update/index.php {
fastcgi_split_path_info ^(/update/index.php)(/.+)$;
fastcgi_pass   fastcgi_backend;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
fastcgi_param  PATH_INFO        $fastcgi_path_info;
include        fastcgi_params;
}

location ~ ^/update/(?!pub/). {
deny all;
}

location ~ ^/update/pub/ {
add_header X-Frame-Options "SAMEORIGIN";
}
}

location / {
try_files $uri $uri/ /index.php?$args;
}

location /pub {
location ~ ^/pub/media/(downloadable|customer|import|theme_customization/.*\.xml) {
deny all;
}
alias $MAGE_ROOT/pub;
add_header X-Frame-Options "SAMEORIGIN";
}

location /static/ {
if ($MAGE_MODE = "production") {
expires max;
}

location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ {
add_header Cache-Control "public";
add_header X-Frame-Options "SAMEORIGIN";
expires +1y;

if (!-f $request_filename) {
rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
}
}
location ~* \.(zip|gz|gzip|bz2|csv|xml)$ {
add_header Cache-Control "no-store";
add_header X-Frame-Options "SAMEORIGIN";
expires    off;

if (!-f $request_filename) {
rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
}
}
if (!-f $request_filename) {
rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
}
add_header X-Frame-Options "SAMEORIGIN";
}

location /media/ {
try_files $uri $uri/ /get.php?$args;

location ~ ^/media/theme_customization/.*\.xml {
deny all;
}

location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ {
add_header Cache-Control "public";
add_header X-Frame-Options "SAMEORIGIN";
expires +1y;
try_files $uri $uri/ /get.php?$args;
}

location ~* \.(zip|gz|gzip|bz2|csv|xml)$ {
add_header Cache-Control "no-store";
add_header X-Frame-Options "SAMEORIGIN";
expires    off;
try_files $uri $uri/ /get.php?$args;
}
add_header X-Frame-Options "SAMEORIGIN";
}

location /media/customer/ {
deny all;
}

location /media/downloadable/ {
deny all;
}

location /media/import/ {
deny all;
}

location ~ cron\.php {
deny all;
}

location ~ (index|get|static|report|404|503)\.php$ {
try_files $uri =404;
fastcgi_pass   fastcgi_backend;

fastcgi_param  PHP_FLAG  "session.auto_start=off \n suhosin.session.cryptua=off";
fastcgi_param  PHP_VALUE "memory_limit=256M \n max_execution_time=600";
fastcgi_read_timeout 600s;
fastcgi_connect_timeout 600s;
fastcgi_param  MAGE_MODE $MAGE_MODE;

fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
include        fastcgi_params;
}
}

e salvamos o nosso arquivo.

Bem, ainda falta arrumar o nginx.conf, arquivo de configuração principal, vou deixar o meu nginx.conf como sugestão, mas existem toneladas de possibilidades.

nano /etc/nginx/nginx.conf

Removemos o conteúdo atual e adicionamos:

user www-data;
worker_processes auto;
worker_rlimit_nofile 100000;
pid /run/nginx.pid;

events {
	worker_connections 4096;
	multi_accept on;
}

http {

    #include "/etc/nginx/naxsi_core.rules";

	sendfile on;
	tcp_nopush on;
	tcp_nodelay on;
	keepalive_timeout 30;
	types_hash_max_size 2048;

	server_tokens off;
	reset_timedout_connection on;
	add_header X-Powered-By "Servidor Magento 2";

	limit_req_status 403;
	limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

	fastcgi_read_timeout 300;
	client_max_body_size 100m;

	ssl_session_cache shared:SSL:20m;
	ssl_session_timeout 10m;
	ssl_prefer_server_ciphers on;
	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:kEDH+AESGCM: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:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-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_protocols TLSv1 TLSv1.1 TLSv1.2;

	include /etc/nginx/mime.types;
	default_type application/octet-stream;

	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log;

	log_format '$remote_addr $upstream_response_time  [$time_local] '
	'$http_host "$request" $status $body_bytes_sent '
	'"$http_referer" "$http_user_agent"';

	gzip on;
	gzip_disable "msie6";

	gzip_vary on;
	gzip_proxied any;
	gzip_comp_level 6;
	gzip_buffers 16 8k;
	gzip_http_version 1.1;
	gzip_types
	    application/atom+xml
	    application/javascript
	    application/json
	    application/rss+xml
	    application/vnd.ms-fontobject
	    application/x-font-ttf
	    application/x-web-app-manifest+json
	    application/xhtml+xml
	    application/xml
	    font/opentype
	    image/svg+xml
	    image/x-icon
	    text/css
	    text/plain
	    text/x-component
	    text/xml
	    text/javascript;

	include /etc/nginx/conf.d/*.conf;
	include /etc/nginx/sites-enabled/*;
}

Um adendo, observe que nesse arquivo, dentro do bloco http, coloquei uma limitação de acessos com o módulo limit_req para ajudar a proteger seu servidor contra ataques DDOS, mas outras configurações são necessárias.

E quanto o Opcache? Vamos colocar uma opção, você fica a vontade para decidir se usa ou não:

nano /etc/php/7.0/mods-available/opcache.ini
E adicione
opcache.enable = 1
opcache.enable_cli = 1
opcache.memory_consumption = 128
opcache.interned_strings_buffer = 4
opcache.max_accelerated_files = 50000
opcache.max_wasted_percentage = 5
opcache.use_cwd = 1
opcache.validate_timestamps = 0
;opcache.revalidate_freq = 2
opcache.file_update_protection = 2
opcache.revalidate_path = 0
opcache.save_comments = 1
opcache.load_comments = 1
opcache.fast_shutdown = 0
opcache.enable_file_override = 0
opcache.optimization_level = 0xffffffff
opcache.inherited_hack = 1
opcache.blacklist_filename=/etc/php.d/opcache.blacklist.txt
opcache.max_file_size = 0
opcache.consistency_checks = 0
opcache.force_restart_timeout = 60
opcache.error_log = ""
opcache.log_verbosity_level = 1
opcache.preferred_memory_model = ""
opcache.protect_memory = 0
;opcache.mmap_base = ""

Reinicie o PHP7 com

/etc/init.d/php7.0-fpm restart

Veja também…
http://magento.stackexchange.com/questions/95058/opcache-recommended-configuration-for-magento2

Galera, nessa parte do Percona server, fica a seu critério usar o arquivo my.cnf adequado, deixo o meu aí, simples para servidores pequenos.
nano /etc/my.cnf
Adicione o conteúdo:
[mysqld]

# GENERAL #
user                           = mysql
default-storage-engine         = InnoDB
socket                         = /var/run/mysqld/mysqld.sock
pid-file                       = /var/run/mysqld/mysqld.pid
tmpdir                         = /tmp

# MyISAM #
key-buffer-size                = 32M
myisam-recover                 = FORCE,BACKUP

# SAFETY #
max-allowed-packet             = 16M
max-connect-errors             = 1000000
skip-name-resolve
sysdate-is-now                 = 1
innodb                         = FORCE
innodb-strict-mode             = 1

sql-mode="NO_ENGINE_SUBSTITUTION"
# DATA STORAGE #
datadir                        = /var/lib/mysql

# CACHES AND LIMITS #
tmp-table-size                 = 16M
max-heap-table-size            = 16M
query-cache-type               = 1
query-cache-size               = 16M
max-connections                = 100
thread-cache-size              = 50
open-files-limit               = 65535
table-definition-cache         = 1024
table-open-cache               = 2048

# INNODB #
innodb-flush-method            = O_DIRECT
innodb-log-files-in-group      = 2
innodb-log-file-size           = 128M
innodb-flush-log-at-trx-commit = 2
innodb-file-per-table          = 1
innodb-buffer-pool-size        = 256M
innodb_fast_shutdown           = 0

# LOGGING #
log-error                      = /var/log/mysql/mysql-error.log
log-queries-not-using-indexes  = 0
slow-query-log                 = 1
slow-query-log-file            = /var/log/mysql/mysql-slow.log

# REDUCE MEMORY USAGE #
performance_schema             = 0
Agora, vamos adicionar os rrepositórios do Percona Server em nosso servidor:
nano /etc/apt/sources.list

E então, abaixo dos repos do dotdeb

deb http://repo.percona.com/apt jessie main
deb-src http://repo.percona.com/apt jessie main
E não vamos esquecer da key:
apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A

E atualizamos nosso Jessie:

apt-get update

Finalmente, iniciamos a instalação:

apt-get install percona-server-5.6

Durante o processo de instalação você deverá digitar um senha raíz para seu servidor MySQL, essa senha deve ser forte e você não deve esquecê-la.

Para finalizar essa parte:

mv /etc/my.cnf /etc/mysql/my.cnf
/etc/init.d/mysql restart

Parte chata, baixar o Magento 2! Para mim é chato demais porque aqui a net é de apenas 2.5 Mbits, então imagina baixar o sample data.
Baixe a versão pública do Magento 2 diretamente do site oficial, será preciso fazer login.

cd /var
mkdir www
cd www
mkdir magento2
cd /var
chown -R www-data:www-data www

Agora faça o upload do arquivo que você baixou no site oficial para dentro da pasta /var/www/magento2

Para extrair a loja compactada no formato .zip:

apt-get install unzip
unzip nome-do-arquivo.zip

Se o arquivo for .tar.gz

tar -zxvf nome-do-arquivo.tar.gz

Para usar o sample data sem precisar passar um tempão baixando do site oficial. Estou considerando que você seguiu tudo conforme mostrei até aqui.

cd /var/www/magento2
apt-get install git -y
git clone https://github.com/magento/magento2-sample-data.git
cd magento2-sample-data
cp -r * ../
cd ..

Se você fez tudo certinho até aqui, abra seu navegador e digite o domínio em que você está instalando sua loja/setup, assim:
dominio.com.br/setup.

Abriu? Boa!

magento2-01Agora, vamos voltar ao ssh e criar um banco de dados e dar a ele as permissões necessárias:

mysql -p

Depois de digitar a senha corretamente, o prompt de comando do MySQL se abre, vamos brincar um pouco com ele: (digite com calma, linha por linha)

 create database magento2_seguro; grant all privileges on magento2_seguro.* to 'usuario_mestre'@'localhost' identified by "SENHA-FORTE"; flush privileges; quit 

Em pensar que tudo isso pode ser feito rapidinho com softaculous, hehehehhehe! Agora, volte a loja no seu navegador e complete o processo de instalação, conforme o vídeo!

Estamos quase terminando pessoal, finalmente chegou a hora do cache, talvez a hora que você mais esperou!

Vamos então instalar o Varnish:

nano /etc/apt/sources.list

E adicionamos os repositórios abaixo da última linha no arquivo:

deb https://repo.varnish-cache.org/debian/ jessie varnish-4.1

Vamos adicionar a key ao servidor

apt-get install apt-transport-https
wget https://repo.varnish-cache.org/GPG-key.txt
apt-key add GPG-key.txt
apt-get update

E então instalar o Varnish 4

apt-get install varnish

Agora vamos ao admin do Magento 2 pegar o arquivo vcl e adicionar ao nosso Varnish.

Depois de efetuar o logn, no menu lateral a esquerda clique em Stores > Configuration > Advanced > System > Full Page Cache e então desmarque a caixa Use system value e selecione Varnish Cache (Recommended).

Clique no submenu Varnish Configuration e preencha os campos assim:

Access list > SEU IP
Backend host > SEU IP
Backend port > 8082

e Salve!

Agora volte ao submenu Varnish Configuration e clique em Export VCL for Varnish 4
Feito o download, abra o arquivo varnish.vcl que você acabou de baixar e copie o conteúdo do mesmo.

Volte ao servidor e edite o vcl padrão instalado pelo Varnish:

nano /etc/varnish/default.vcl

Substitua todo o conteúdo pelo conteúdo do arquivo que você baixou.

Feito? Ótimo, agora vamos voltar ao console ssh e editar nosso vhost nginx

nano /etc/nginx/sites-enabled/magento2.vhost

Preste atenção, mude apenas a linha:

listen 80;

para

listen 8082;

Isso é para colocar o nginx como backend e passar o Varnish para proxy!
Reinicie o Nginx, ahhhhhhhhhh, perai, se dentro de /etc/nginx/sites-enabled tiver um arquivo chamado default edite-o também e mude as portas 80 para 8082:

listen 80 default_server;
listen [::]:80 default_server;

para isso:

listen 8082 default_server;
listen [::]:8082 default_server;

Agora sim

/etc/init.d/nginx restart

Agora verifique se o Nginx está mesmo na porta 8082

netstat -tap

Terminamos com o Nginx, agora vamos colocar o Varnish 4 na porta 80 e terminar esse tutorial!
Edite o arquivo:

nano /etc/default/varnish

e comente as outras linhas da configuração deixando assim:

VARNISH_LISTEN_PORT=80

magento2-02png
Instale uma funcionalidade chamada screen

apt-get install screen

Execute em seu terminal

screen

E então:

 varnishd -d -f /etc/varnish/default.vcl 

Em seguida o Varnish vai listar algumas opções e você vai digitar start

Agora abra um nova aba do seu console SSH e feche a que você rodou o screen. Recomendo que leia mais sobre o comando screen.

SEMPRE QUE VOCÊ REBOOTAR SEU SERVIDOR, PRECISARÁ REFAZER ESSE PROCESSO COM SCREEN PARA DEIXAR O VARNISH EM EXECUÇÃO SEM PROBLEMAS.

Para disponibilizar acesso por sftp que não seja usando o user root, nós precisamos definir uma senha para o usuário www-data, então vamos digitar no terminal ssh:

passwd www-data

Digite uma senha forte e confirme.

Em seguida editamos o arquivo /etc/passwd como muito cuidado e atenção:

nano /etc/passwd

alteramos a linha:

ww-data:x:33:33:www-data:/var/www:/usr/sbin/nologin

para

ww-data:x:33:33:www-data:/var/www:/bin/bash

É altamente recomendável que você leia sobre chroot.

Para acessar o SFTP, faça o download do Filezilla e em seguida
> Hostname – sftp://seu-numero-ip
> Usuário – www-data
> Senha – A senha que configuramos acima
> Porta – 22 >>> Recomendo a alteração da sua porta do SSH e consequentemente do SFTP.

Agora vamos instalar e configurar o adminer:

cd /usr/share && wget https://www.adminer.org/static/download/4.2.5/adminer-4.2.5.zip && apt-get install zip unzip && unzip adminer-4.2.5.zip && mv adminer-4.2.5 adminer

Vá agora até a pasta de vhosts do Nginx

cd /etc/nginx/sites-enabled

Vamos criar um vhost para o adminer

nano adminer.vhost

e adicionar o conteúdo:

server {
        listen *:8085;
        server_name magento2.speedinx.com.br;
        root   /usr/share/adminer/;
        index index.html index.htm index.php index.cgi index.pl index.xhtml;

       location / {
       index index.html index.htm index.php;
       try_files $uri $uri/ /index.php?$args;
       }

       location ~ \.php$ {
       fastcgi_keep_conn on;
       fastcgi_pass   127.0.0.1:9000;
       fastcgi_index  index.php;
       fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
       include        /etc/nginx/fastcgi_params;
       fastcgi_buffer_size 128k;
       fastcgi_buffers 256 16k;
       fastcgi_busy_buffers_size 256k;
       fastcgi_temp_file_write_size 256k;
}
}

Reinicie o Nginx

/etc/init.d/nginx restart

No meu caso agora posso acesso o adminer pelo endereço:

http://magento2.speedinx.com.br:8085/adminer/

Não esqueça de colocar sua url ao editar o vhost do adminer!.

Agora nos vamos logar no Adminer como usuário root, lembra-se da senha de quando configuramos o Percona? Agora ela será útil!

1 – Efetue o login
2 – Clique em privilégios
3 – Clique no usuário que criamos quando instalamos o Magento, usuario-mestre
4 – Deixe assim e salve

magento2-03
Para que isso? Agora você pode criar outros bancos de dados sem usar o usuário root, isso aumenta a segurança!

Por favor, veja os meus comentários no vídeo!