2
respostas

O nginx não aceita configurações de servidores em outras portas (ambiente Windows)

Eu tentei criar o arquivo de configuração servers\curso-alura dentro da pasta onde está nginx, mas não tive sucesso.

Consegui usar o nginx.conf para acessar a porta 80, apenas modificando o endereço do root. Mas ao tentar acrescentar outros servers no arquivo, o navegador retornou erro HTTP 404 (não encontrado).

É possível usar arquivos de configuração separados em ambiente Windows (da mesma forma que na aula)?

Meu arquivo de configuração nginx.conf tem o seguinte conteúdo:

#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;
    gzip_types text/css application/javascript image/svg+xml;

    server {
        listen 2020;
        root perfomance-web/dist;
    }

    server {
        listen 3030;
        root perfomance-web/site;
    }

    server {
        listen       80;
        server_name  localhost;
        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   D:/nginx-1.19.10/performance-web/dist;
            #root   performance-web\dist;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
2 respostas

Acho que encontrei a resposta.

Eu executava os comandos nginx -s reload e nginx -s reopen. Acho que o Windows abria mais de uma instância do nginx quando eu mandava o sinal reopen e por isso as configurações do nginx.conf não eram refletidas.

Então eu executei alguns comandos para forçar o fim dos processos do nginx (tentei localizar os PID que usavam as portas 2020 e 3030 e matava os respectivos processos):

netstat -ano | findstr :2020
taskkill /PID <numero do PID> /F

netstat -ano | findstr :3030
taskkill /PID <numero do PID> /F

taskkill /f /im nginx.exe

Fala ai Thiago, tudo bem? Boa, ia comentar algo nesse sentido, talvez o processo do NGINX não estava sendo reinicia e não pegava as novas configurações.

Abraços e bons estudos.