Edição posterior Depois de muita solução de problemas, o problema real acabou sendo um ponto-e-vírgula ausente após a diretiva server_name
. nginx -t -c /etc/nginx/nginx.conf
não estava pegando. Verifique novamente se há algum erro semelhante a esse caso.
A pergunta original é a seguinte:
Eu estou no processo de configurar um novo servidor construído no Ubuntu 16.04 usando o nginx 1.10.0.
A questão específica é que, enquanto a minha nova configuração corresponde essencialmente à minha antiga configuração nginx de um servidor do Ubuntu 13.10 usando o nginx 1.4.4, o nginx 1.10.0 está apenas criando trabalhadores ipv4 ou ipv6, mas não ambos. Esse comportamento não está presente no servidor antigo. Não tenho certeza do que mais tentar neste momento.
Eu verifiquei que minha instalação do nginx foi criada com o ipv6.
nginx version: nginx/1.10.0 (Ubuntu)
built with OpenSSL 1.0.2g-fips 1 Mar 2016
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_v2_module --with-http_sub_module --with-http_xslt_module --with-stream --with-stream_ssl_module --with-mail --with-mail_ssl_module --with-threads
Abaixo estão minhas configurações atuais para o novo servidor:
# /etc/nginx/nginx.conf
user www-data;
worker_rlimit_nofile 30000;
worker_processes 8;
pid /run/nginx.pid;
events {
worker_connections 500000;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
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 text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
E eu tenho um único site habilitado no momento para testes. Eu terei vários vhosts configurados eventualmente.
# /etc/nginx/sites-enabled/blog
server {
server_name test.bloggyblog.com
listen 80;
listen [::]:80;
root /usr/local/apps/blog;
index index.php;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Por último, o estranho é se os trabalhadores se ligam ao ipv4 ou ipv6 depende inteiramente da ordem em que as diretivas
listen
são colocadas. Nos dados a seguir, mudei o pedido e tentei várias configurações várias vezes. Após cada alteração para
/etc/nginx/sites-enabled/blog
, fiz
sudo service nginx stop; sudo service nginx start; sudo lsof -i;
para obter os dados.
Observe também que mudei a contagem de funcionários para 8 após executar essas etapas. No entanto, enquanto o número de trabalhadores aumentou, o mesmo comportamento foi observado onde todos os trabalhadores eram ou ipv4 ou ipv6.
listen [::]:80;
listen 80;
nginx 27675 root 6u IPv4 204423 0t0 TCP *:http (LISTEN)
nginx 27676 www-data 6u IPv4 204423 0t0 TCP *:http (LISTEN)
listen 80;
listen [::]:80;
nginx 27747 root 6u IPv6 205134 0t0 TCP *:http (LISTEN)
nginx 27748 www-data 6u IPv6 205134 0t0 TCP *:http (LISTEN)
listen 80;
listen [::]:80 default ipv6only=on;
nginx 27819 root 6u IPv6 205849 0t0 TCP *:http (LISTEN)
nginx 27820 www-data 6u IPv6 205849 0t0 TCP *:http (LISTEN)
listen 80;
listen [::]:80 default ipv6only=off;
nginx 27885 root 6u IPv6 206495 0t0 TCP *:http (LISTEN)
nginx 27886 www-data 6u IPv6 206495 0t0 TCP *:http (LISTEN)
listen 80;
listen [::]:80 default;
nginx 27953 root 6u IPv6 207184 0t0 TCP *:http (LISTEN)
nginx 27954 www-data 6u IPv6 207184 0t0 TCP *:http (LISTEN)