Не удается запустить nginx после установки в качестве обратного прокси-сервера

Я пытаюсь настроить свой nginx как обратный прокси-сервер.

у меня jenkins и nginx установлены на одном сервере.Я пытаюсь получить доступ к Дженкинсу через порт 82 вместо порта 8080.

за то, что я сделал до сих пор

  1. перейдите в /etc/nginx / conf.d и создайте новый файл, например: 'forward_jenkins.conf'
  2. содержимое forward_jenkins.конф . (Это случайный фрагмент, который я нашел в интернет.)

    server {
      listen 82;
      server_name foobar.net;
    
      location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
      }
    }
    
  3. сохраните файл и запустите nginx.

ниже ошибка, которую я получаю

[root@localhost conf.d]# systemctl start nginx
Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.

Я тоже попробовал следующую команду.

[root@localhost conf.d]# nginx -t -c /etc/nginx/conf.d/forward_jenkins.conf
nginx: [emerg] "server" directive is not allowed here in /etc/nginx/conf.d/forward_jenkins.conf:1
nginx: configuration file /etc/nginx/conf.d/forward_jenkins.conf test failed

Я ничего не изменял в своем nginx.файл conf

[root@localhost nginx]# cat nginx.conf

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
    worker_connections 1024;
}

http {
    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  /var/log/nginx/access.log  main;

    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;

    # 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;

    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

# Settings for a TLS enabled server.
#
#    server {
#        listen       443 ssl http2 default_server;
#        listen       [::]:443 ssl http2 default_server;
#        server_name  _;
#        root         /usr/share/nginx/html;
#
#        ssl_certificate "/etc/pki/nginx/server.crt";
#        ssl_certificate_key "/etc/pki/nginx/private/server.key";
#        ssl_session_cache shared:SSL:1m;
#        ssl_session_timeout  10m;
#        ssl_ciphers HIGH:!aNULL:!MD5;
#        ssl_prefer_server_ciphers on;
#
#        # Load configuration files for the default server block.
#        include /etc/nginx/default.d/*.conf;
#
#        location / {
#        }
#
#        error_page 404 /404.html;
#            location = /40x.html {
#        }
#
#        error_page 500 502 503 504 /50x.html;
#            location = /50x.html {
#        }
#    }

}

пожалуйста, помогите мне решить эту проблему.

вывод команды Status

[root@localhost conf.d]# systemctl статус nginx
● nginx.услуги - сервера nginx HTTP-сервер и обратный прокси-сервер сервер
Загружен: загружен (файл/usr/lib в/systemd в/системы/и nginx.обслуживание; инвалиды; предустановленные поставщик: отключен)
Активный: не удалось (результат: exit-код) с пн 2017-12-11 20: 41: 37 IST; 6s назад
Процесс: 2446 ExecStartPre=/usr / sbin /nginx-t (код = выход, статус=1 / сбой)
Процесс: 2445 ExecStartPre=/usr/bin /rm-f/run / nginx.pid (код=выход, статус=0/успех)

Dec 11 20:41: 36 localhost.localdomain systemd[1]: Запуск HTTP-сервера nginx и обратного прокси-сервера...
Dec 11 20:41: 37 локальный хост.nginx и локального домена[2446]: nginx в: конфигурационный файл /etc/nginx в/с nginx.синтаксис conf в порядке
Dec 11 20: 41: 37 localhost.localdomain nginx[2446]: nginx: [emerg] bind() до 0.0.0.0: 82 ошибка (13: отказано в разрешении)
Dec 11 20: 41: 37 localhost.nginx и локального домена[2446]: nginx в: конфигурационный файл /etc/nginx в/с nginx.ошибка теста conf
Dec 11 20: 41: 37 localhost.localdomain systemd[1]: nginx.служба: выход из процесса управления, код=статус выхода=1
Dec 11 20: 41: 37 localhost.localdomain systemd[1]: не удалось запустите HTTP nginx и обратный прокси-сервер.
Dec 11 20: 41: 37 localhost.localdomain systemd[1]: блок nginx.служба вошла в состояние сбоя.
Dec 11 20: 41: 37 localhost.localdomain systemd[1]: nginx.сбой службы.

15
задан Vishnu Rajendran
28.01.2023 10:02 Количество просмотров материала 3478
Распечатать страницу

3 ответа

несколько вещей, чтобы проверить: Ваш брандмауэр пропускает Вас с портов 82 и 8080? Можно Дженкинс без вашего nginx конфигурации от 8080th порт?

то, что я хотел бы сделать, это удалить текущую установку NginX и установить его из официального репозитория NginX. Я предполагаю, что вы установили его из epel-релиза, верно? Мне это не очень нравится, потому что такие вещи случались со мной тоже иногда. Таким образом, вы получите еще и nginx.файл conf, который является более простым, без любые серверные директивы, следовательно, менее запутанные.

я почти уверен, что вы config хорошо, это просто, что ваш nginx.конф разрушает его. Удаление nginx и переустановка его из официального репозитория nginxs может решить вашу проблему. Но вот мой nginx.conf с некоторыми доработками по настройке:

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}


http {
    server_tokens off;

    include       /etc/nginx/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  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    gzip on;
    gzip_min_length 1100;
    gzip_buffers 4 32k;
    gzip_types text/plain application/x-javascript text/xml text/css;
    gzip_vary on;

    include /etc/nginx/conf.d/*.conf;
    #include /etc/nginx/sites-enabled/*.conf;
}

вы можете попробовать скопировать-вставить это в ваш nginx.conf файл (убедитесь, что вы создаете резервную копию файлов всегда).

0
отвечен Bert 2023-01-29 17:50

похоже, его проблема с режимом SELinux.

попробовал ниже и это сработало.

1.Проверьте текущий режим SELinux, запустив getenforce. Если он говорит, принуждение, а затем временно установить режим Permissive, запустив setenforce 0, и посмотреть, если ваше приложение работает после этого.

0
отвечен Vishnu Rajendran 2023-01-29 20:07

теперь я пытаюсь работать с SELinux на

Я пробовал следующие шаги, из интернета.

yum install policycoreutils-python

порт -а-т команды semanage http_port_t -п протокол TCP 82

порт -л команды semanage | грэп ^http_port_t

объект[root@localhost в файле nginx] Порт -д# команды semanage | грэп ^http_port_t http_port_t tcp 82, 80, 81, 443, 488, 8008, 8009, 8443, 9000

Я мог видеть порт 82 добавлено успешно.

но когда я пытаюсь получить доступ к моему серверу Дженкинс с помощью http://192.168.5.129:82/ С моей хост-машины, я получаю ниже ошибки в браузере.

502 Bad Gateway

Примечание:

Я могу запустить Дженкинс из http://192.168.5.129:8080/

также im возможность доступа к nginx веб-сервер по http://192.168.5.129:80

и когда я rever мой набор мой SELinux Permissive, я могу получить доступ к Дженкинсу через порт 82.

но я пытаюсь работать над этим с SELinux.

0
отвечен Vishnu Rajendran 2023-01-29 22:24

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх