nginx 1.12.2 não está vinculado a portas no Centos 7.4

1

Eu instalei o nginx via yum no Centos 7.4. Eu adicionei alguns sites a /etc/nginx/conf.d que escutam na porta 80. Aqui está um exemplo:

server {
    listen   80;

    root /var/www/vhosts/somesite;
    index index.php index.html index.htm;

    server_name api.somesite.info;

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

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

nginx -t retorna:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

O serviço é iniciado da seguinte forma:

systemctl start nginx

Isso não retorna erros. E não há firewall instalado no momento.

O problema é que, mesmo se eu apontar /etc/hosts em api.somesite.info, estou recebendo uma conexão recusada.

Para ver as portas limitadas, eu corri netstat -ltnep , dando:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       
User       Inode      PID/Program name
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      0          14585      1/systemd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      0          18224      1105/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      0          16689      979/master
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      0          68092      4930/php-fpm: maste
tcp6       0      0 :::3306                 :::*                    LISTEN      27         51441      26589/mysqld
tcp6       0      0 :::111                  :::*                    LISTEN      0          14584      1/systemd
tcp6       0      0 :::22                   :::*                    LISTEN      0          18226      1105/sshd
tcp6       0      0 ::1:25                  :::*                    LISTEN      0          16690      979/master

Então, enquanto o php-fpm está ligado a uma porta (na verdade, estou usando principalmente soquetes, mas isso não é relevante aqui, não acho), o nginx não. Note que não há nada escutando a porta 80 - o apache não é instalado por padrão nesta versão do centos.

Eu posso ver que o nginx está sendo executado executando systemctl status nginx :

nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2018-04-04 15:24:04 BST; 4min 8s ago
Process: 6091 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 6088 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Process: 6086 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 6094 (nginx)
 CGroup: /system.slice/nginx.service
       ├─6094 nginx: master process /usr/sbin/nginx
       └─6095 nginx: worker process

Apr 04 15:24:04 smaractus systemd[1]: Starting The nginx HTTP and reverse proxy server...
Apr 04 15:24:04 smaractus nginx[6088]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Apr 04 15:24:04 smaractus nginx[6088]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Apr 04 15:24:04 smaractus systemd[1]: Failed to read PID from file /run/nginx.pid: Invalid argument
Apr 04 15:24:04 smaractus systemd[1]: Started The nginx HTTP and reverse proxy server.

Eu posso ver um aviso aqui onde ele não consegue encontrar o arquivo pid, mas pelo que eu entendi isso não é um show stopper? Fora de ideias sobre onde procurar agora. Por que o nginx não está vinculando a porta 80?

    
por Robert Egginton 04.04.2018 / 16:30

1 resposta

2

Por acaso você viu isso em nginx.conf ?

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;

Isso significa que o nome do arquivo em /etc/nginx/conf.d deve terminar com .conf . Verifique o nome do arquivo e renomeie-o para que termine com .conf . Com qualquer outro nome, ele será ignorado.

    
por 04.04.2018 / 17:12