Гость
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Прокси в nginx / 7 сообщений из 7, страница 1 из 1
25.10.2019, 17:41
    #39881704
Щиче
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прокси в nginx
Добрый день.

Имеется сервер nginx/1.16.1. nginx.conf

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
user www-data;
worker_processes 1;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
	worker_connections 768;
}

http {
	##
	# Basic Settings
	##
	sendfile on;

	keepalive_timeout 65;
	types_hash_max_size 2048;
	
        include /etc/nginx/mime.types;
	default_type application/octet-stream;

	##
	# Logging Settings
	##

	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log;
	
	##
	# Virtual Host Configs
	##

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



В каталоге sites-enabled и sites-available лежит файл suok.nginx.conf.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
server {
        listen 80;
        access_log /var/log/nginx/suok.access.log;
        error_log /var/log/nginx/suok.error.log;

    proxy_send_timeout    600;
    proxy_connect_timeout    600;
    proxy_read_timeout    600;
    send_timeout        600;


    location / {
        gzip_static on;
        index   index.html;
        root /usr/share/nginx/html;
        try_files $uri $uri/ @index;
    }

    location @index {
        root /usr/share/nginx/html;
        add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
        expires -1;
        try_files /index.html =404;
    }

    location /api/ {
        proxy_pass http://127.0.0.1:8080/api/;
        proxy_set_header Host $host;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
	
	location /j_spring_security_check {
        proxy_pass http://127.0.0.1:8080/j_spring_security_check;
        proxy_set_header Host $host;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
	
	location /logout {
        proxy_pass http://127.0.0.1:8080/logout;
        proxy_set_header Host $host;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

}



Если я обращаюсь к http://localhost/j_spring_security_check (Tomcat), то получаю 404 ошибку, т.е. прокси не работает. В случае прямого обращения к Tomcat через curl HTTP status code 200.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
curl -X POST "http://127.0.0.1:8080/j_spring_security_check" -F "username=administrator" -F "password=1"  -v
Note: Unnecessary use of -X or --request, POST is already inferred.
*   Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to 127.0.0.1 (127.0.0.1) port 8080 (#0)
> POST /j_spring_security_check HTTP/1.1
> Host: 127.0.0.1:8080
> User-Agent: curl/7.58.0
> Accept: */*
> Content-Length: 254
> Content-Type: multipart/form-data; boundary=------------------------8c545fb8770f70e2
> 
< HTTP/1.1 200 OK
< Date: Fri, 25 Oct 2019 14:27:40 GMT
< Set-Cookie: JSESSIONID=node01rg6yex3rw6hk1eo7oalu5ztab7.node0;Path=/
< Expires: Thu, 01 Jan 1970 00:00:00 GMT
< X-Content-Type-Options: nosniff
< X-XSS-Protection: 1; mode=block
< X-Frame-Options: DENY
< Content-Length: 0
< 
* Connection #0 to host 127.0.0.1 left intact



Файл /var/log/nginx/suok.access.log создается, поэтому мой конфиг с проксированием учитывается сервером.

Вопрос, как заставить nginx все-таки проксировать вызовы?
...
Рейтинг: 0 / 0
25.10.2019, 20:17
    #39881772
OoCc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прокси в nginx
Щиче,

что говорит

Код: sql
1.
getsebool httpd_can_network_connect
...
Рейтинг: 0 / 0
25.10.2019, 20:45
    #39881783
Щиче
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прокси в nginx
OoCcЩиче,

что говорит

Код: sql
1.
getsebool httpd_can_network_connect



getsebool: SELinux is disabled
...
Рейтинг: 0 / 0
26.10.2019, 08:23
    #39881840
bga83
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прокси в nginx
nginx -V 2>&1 | tr -- - '\n' | grep module
и проверить что в списке модулей будет что-нибудь в духе ngx_http_proxy_module. То что конфиг подтягивается еще не означает, что необходимый для проксирования модуль есть в ниличии
...
Рейтинг: 0 / 0
27.10.2019, 14:23
    #39882062
Мутаген
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прокси в nginx
ЩичеВ каталоге sites-enabled и sites-available лежит файл suok.nginx.conf.
Код: sql
1.
2.
server {
        listen 80;



запросы просто не попадают в этот виртуальный сервер. В том же каталоге рядом лежит файл default, в котором тоже написано listen 80, а по алфавиту тот сервер сортируется первым. В него запросы и уходят, в этом легко убедится по файлу suok.access.log, в котором нет jобращений к j_spring_blahblal и пр.

Либо вынести на отдельное имя, либо стереть файл (симлинк) default из sites-enabled, либо в свой suok.nginx.conf после цифры 80 в listen дописать default;

PS надеюсь это не СУОК c АЭС, иначе слишком пугающе.

bga83То что конфиг подтягивается еще не означает, что необходимый для проксирования модуль есть в ниличии
Если бы модуля не было, то nginx бы выругался на директивы proxy_*
...
Рейтинг: 0 / 0
27.10.2019, 21:33
    #39882134
bga83
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прокси в nginx
Мутагенbga83То что конфиг подтягивается еще не означает, что необходимый для проксирования модуль есть в ниличии
Если бы модуля не было, то nginx бы выругался на директивы proxy_*не факт. Я конечно не большой спец по nginx, но у самого несколько месяцев назад был аналогичный кейс и проблема была в отсутсвующем модуле.
А директивы proxy* могут и steam модуля распознаться
...
Рейтинг: 0 / 0
28.10.2019, 10:17
    #39882199
Щиче
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прокси в nginx
Получилось.

Я убрал файл default, но suok не сработал. Тогда я просто дополнил default данными из suok. Непонятно почему не работает дополнительный конфиг, если в nginx.conf явно стоит указание включить, но сейчас можно пренебречь.

Спасибо за консультации.
...
Рейтинг: 0 / 0
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Прокси в nginx / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]