Nginx подпапки, указывающие на внутренний сервер - PullRequest
0 голосов
/ 01 апреля 2020

Я использую WSO2 API Manager за прокси NGINX. Что я хочу сделать:

Когда я получаю доступ к https://mynginx/wso2am, nginx, чтобы указать на мой https://localhost: 9443 / publisher или другой сервер. Но я хочу, чтобы мой URL был https://mynginx/wso2am/. Это моя конфигурация NGIX:

upstream sslapi.am.wso2.com {
    server {node-ip-address}:9443;
}

upstream sslgw.am.wso2.com {
    server {node-ip-address}:8243;
}

server {
    listen 80;
    server_name api.am.wso2.com;
    rewrite ^/(.*) https://api.am.wso2.com/$1 permanent;

}

server {
    listen 443;
    server_name api.am.wso2.com;
    proxy_set_header X-Forwarded-Port 443;
    ssl on;
    ssl_certificate /etc/nginx/ssl/{cert_name};
    ssl_certificate_key /etc/nginx/ssl/{key_name};
    location /wso2am {
            proxy_set_header X-Forwarded-Host $host;
            proxy_set_header X-Forwarded-Server $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_read_timeout 5m;
            proxy_send_timeout 5m;
            proxy_pass https://sslapi.am.wso2.com/publisher;
        }

        access_log /etc/nginx/log/am/https/access.log;
        error_log /etc/nginx/log/am/https/error.log;
}

server {
    listen 443;
    server_name gw.am.wso2.com;
    proxy_set_header X-Forwarded-Port 443;
    ssl on;
    ssl_certificate /etc/nginx/ssl/{cert_name};
    ssl_certificate_key /etc/nginx/ssl/{key_name};
    location / {
            proxy_set_header X-Forwarded-Host $host;
            proxy_set_header X-Forwarded-Server $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_read_timeout 5m;
            proxy_send_timeout 5m;
            proxy_pass https://sslgw.am.wso2.com;
        }

        access_log /etc/nginx/log/gw/https/access.log;
        error_log /etc/nginx/log/gw/https/error.log;
}

Но когда я go на https: https://api.am.wso2.com/wsoa2m, он отправляется на мой сервер, но мой URL меняется на https://api.am.wso2.com/publisher, и это показывает, что страница не найдена. Nginx не сохраняет / wso2am в URL, она должна показывать https://api.am.wso2.com/wso2am/publisher вместо https://api.am.wso2.com/publisher. Чего мне не хватает?

Я получил эту конфигурацию с официального сайта WSO2AM, она отлично работает без использования подпапки на URL.

Ошибка при Nginx: введите описание изображения здесь

...