Как настроить nginx proxy_pass на основе динамического параметра URL? - PullRequest
0 голосов
/ 10 октября 2018

Обычно, когда я использую http://127.0.0.1/apiset/some_dynamc_string и получаю файл json.

/ apiset / - это каталог, в котором находится мое приложение.Some_dynamc_string - это строка динамического запроса.Я устанавливаю nginx на мою Ubuntu 18.04.мой домен - cep.myname.com, когда я запускаю http://cep.myname.com, я получаю страницу nginx по умолчанию.

Я настраиваю / etc / nginx / sites-available / default (я также установил включенные сайты) как;

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    server_name cep.myname.com;

    location / {
         proxy_pass http://127.0.0.1:8888/;
    }
}

Я получаю 404 ошибка.Мне нужно, чтобы мой пользователь отправлял «some_dynamc_string» как:

http://cep.myname.com/apiset/some_dynamc_string

И мне нужно использовать proxy_pass, чтобы я мог отправить «/ apiset / some_dynamc_string» на свой бэкэнд как:

http://127.0.0.1:8888/apiset/some_dynamc_string;

Как мне это сделать?Как настроить nginx proxy_pass на основе динамического URL-параметра, как я описал выше?

When I use error_log with debug I get this:
2018/10/10 08:28:23 [error] 19170#19170: *3 open() "/usr/share/nginx/html/apiset/some_dynamc_string" failed (2: No such file or directory), client: 12.11.10.10, server: localhost, request: "GET /apiset/some_dynamc_string HTTP/1.1", host: "cep.myname.com"

Я думаю, моя проблема начинается здесь: В / usr / share / nginx / html / apiset / some_dynamc_string "Я не знаю"не может иметь "/ apiset / some_dynamc_string".У меня есть только index.html HTML-файл nginx по умолчанию.«Apiset / some_dynamc_string» предназначен для моего внутреннего сервера.

Когда клиент отправляет это: http://cep.myname.com/apiset/some_dynamc_string, он перенаправляет на «/ usr / share / nginx / html / apiset / some_dynamc_string».Мне нужно настроить отправку на "http://127.0.0.1:8888/apiset/some_dynamc_string"

1 Ответ

0 голосов
/ 10 октября 2018

Хорошо.Я нашел это.Я использую default.conf в сайтах, доступных и сайтов с поддержкой.это было неправильное место для изменения default.conf.Правильный путь - это изменить default.conf в conf.d dir.

1) install nginx
2) run: 
    nginx -v  
    (nginx version: nginx/1.15.5)
3) sudo nano /etc/nginx/conf.d/default.conf

    server {
        listen 80;
            listen [::]:80;

            error_log    /var/log/nginx/your_domain_name.error.log debug;
            rewrite_log on;

            server_name your_domain_name;

            location / {
                    proxy_pass http://127.0.0.1:8888/;
        }
    }


4) sudo systemctl reload nginx
5) sudo systemctl restart nginx
6) sudo nginx -t
7) curl http://your_domain_name/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...