Используйте маршрутизацию nginx как для внутреннего, так и для внешнего интерфейса

#angular #spring-boot #nginx #port80

#angular #весенняя загрузка #nginx #порт80

Вопрос:

Я разработал приложение, которое имеет интерфейс Angular и серверную часть Springboot в качестве компонента. Я установил Nginx и скопировал содержимое папки / dist в /var/www/html . Он работает хорошо, и интерфейс работает в порту 80. Теперь мне нужно также обслуживать серверную часть в порту 80, который в настоящее время работает в 8080 с частью «api» в своем URL. Что позволит моей серверной части вызывать конечные точки API без использования отдельного порта. Вот мой /etc/nginx/sites-available/default файл. Я добавил следующую часть в этот файл. Но это не работает.

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

        root /var/www/html;
        index index.html index.htm index.nginx-debian.html;

        server_name _;

        location / {
            try_files $uri $uri/ /index.html =404;
        }
    }

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

        server_name example.com;

        location / {
             proxy_pass http://localhost:8080/;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
             proxy_set_header X-Forwarded-Proto $scheme;
             proxy_set_header X-Forwarded-Port $server_port;
        }
}
  

Ответ №1:

`

 server {
    listen 9090;
        server_name 192.168.10.10;
        index index.html;

        location /api/v1/ {
                proxy_pass http://127.0.0.1:8080; #api ip and port
                proxy_http_version 1.1;
                proxy_set_header Connection "";
                proxy_set_header X-Real-IP     $proxy_add_x_forwarded_for;
        }
        location /{
                root /user/dist; # path of angular application upto dist
                try_files $uri $uri/ /index.html;
       }
}
  

`

и нажмите URLhttp://192.168.10.10:9090