Назад | Перейти на главную страницу

nginx 1.12.2 не привязан к портам на Centos 7.4

Я установил nginx через yum на Centos 7.4. Я добавил несколько сайтов в /etc/nginx/conf.d которые прослушивают порт 80. Вот пример:

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 возвращает:

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

Служба запускается следующим образом:

systemctl start nginx

Это не возвращает ошибок. И в настоящее время брандмауэр не установлен.

Проблема в том, что даже если я укажу /etc/hosts на api.somesite.info я получаю отказ в соединении.

Чтобы увидеть привязанные порты, я побежал netstat -ltnep, давая:

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

Итак, хотя php-fpm привязан к порту (на самом деле я в основном использую сокеты, но здесь это не актуально, я не думаю), nginx - нет. Обратите внимание, что порт 80 не прослушивается - apache не установлен по умолчанию в этой версии centos.

Я вижу, что nginx работает, запустив 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.

Я вижу предупреждение здесь, где не удается найти файл pid, но насколько я понимаю, это не ограничитель показа? Нет идей, где теперь искать. Почему nginx не связывает порт 80?

Вы случайно не видели это в 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;

Это означает, что имя файла в /etc/nginx/conf.d должен заканчиваться .conf. Проверьте имя файла и переименуйте его так, чтобы он заканчивался на .conf. С любым другим именем он будет проигнорирован.