Nginx incluem diretiva sem efeito

1

Objetivo:

Sirva vários domínios de baixo tráfego (principalmente de conteúdo estático) do meu VPS. Atualmente, estou usando o Nginx no FreeBSD.

Problema:

Minha instrução include aparentemente é totalmente ignorada. Mesmo se eu colocar um jargão em um arquivo .conf incluído, sudo nginx -t diz que tudo está bem. Todos os meus domínios, portanto, veiculam a mesma página de destino padrão, que realmente só deve ser encontrada se você for direto para o endereço IP do servidor.

Se eu for para http://example.com/example.com/html/ , a página que eu quero exibir em http://example.com será exibida. Eu também posso ir para http://www.example.com/domain2.com/html/ para ver o que deve estar em http://domain2.com .

O que me falta que faz com que todos os sites acessem a mesma página?

Arquivos:

/usr/local/etc/nginx/nginx.conf

user  www;
worker_processes  1;

error_log /var/log/nginx/error.log info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

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

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    ssl_session_cache   shared:SSL:10m;
    ssl_session_timeout 10m;

    #Setup multiple domains
    server_names_hash_bucket_size 64;
    include /etc/nginx/sites-enabled/*.conf;

    #Default Server, for going straight to the IP address
    server {
        listen  80 default_server;
        listen [::]:80 default_server;
        listen  443 ssl default_server;
        listen [::]:443 ssl default_server;
        server_name _;

        #ssl on; #currently off for the bare IP
        #ssl_certificate        /etc/nginx/ssl/default.crt;
        #ssl_certificate_key    /etc/nginx/ssl/default.key;

        access_log  /var/nginx/log/access.log;
        root    /var/www/;
        index   index.php index.htm index.html;
   }

}

/usr/local/etc/nginx/sites-enabled/example.com.conf

(realmente um link simbólico para /usr/local/etc/nginx/sites-available/example.com.conf )

server {
    listen       80;
    listen  [::]:80;
    listen       443 ssl;
    listen  [::]:443 ssl;
    server_name  example.com www.example.com;

    ssl on;
    ssl_certificate     /etc/letsencrypt/live/example.com/cert.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    root /var/www/example.com/html/;
    index index.php index.html index.htm;

    location = / {
            try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        include fastcgi_params;
    }

    #include /usr/local/etc/nginx/common.conf #for future use for common parts of the server block for all domains
}
    
por cjm 04.03.2016 / 10:04

1 resposta

2

O caminho de inclusão:

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

E o arquivo:

/usr/local/etc/nginx/sites-enabled/example.com.conf

estão em diretórios diferentes .

Você pode incluir o diretório de configuração nginx com:

include sites-enabled/*.conf;

Ou especifique a localização absoluta como:

include /usr/local/etc/nginx/sites-enabled/*.conf;
    
por 04.03.2016 / 11:26

Tags