nginx - proxy_pass из / subfolder - конечные файлы 404'ing. Переписать правило req? - PullRequest
1 голос
/ 09 ноября 2019

У меня есть два сервера, работающих под управлением nginx:

На сервере 1 есть ряд проектов, на сервере 2 есть новый Vue / Nuxtjs (узел)

На сервере 1 я настроилproxy_pass на статический IP-адрес сервера 2, на котором запущено приложение на основе моего узла. Таким образом, цель состоит в том, чтобы пользователи просто видели http://domain.tld/folder, http://domain.tld/folder/login и т. Д. При просмотре сайта

Сервер 1:

location /folder/ { 
  proxy_pass http://200.1.1.1/; // IP of server 2
}

Сервер 2:

location / {
  proxy_pass http://localhost:3000;
}

Это работает частично, но все ресурсы равны 404. И при переходе по ссылкам браузер посещает http://domain.tld/login

[Обновление] Полный сервер 2 Конфигурация nginx (закомментировал некоторые вещи, чтобы избежать конфликтов):

server {
  listen 80;
  listen 443;


# set path to your project dir
  set $root_path /root/app;

# static content directory
  root $root_path/client/nuxt-dist/dist;

# proxy to nuxt renderer
  try_files $uri $uri/ @nodeproxy;

  location @nodeproxy {
    proxy_pass http://localhost:3000;
  }

# entry point for API server, if you have one
  location /api {
    proxy_pass http://localhost:3001;
    client_max_body_size 3m;
  }

# serve nuxt bundle with max cache life. Only compatible with nuxt 2.*
#  location ~^\/_nuxt(.*)$ {
#    alias $root_path/client/.nuxt/dist/client/$1;
#    gzip on;
#    gzip_comp_level 6;
#    gzip_vary on;
#    gzip_types text/css application/json application/javascript text/javascript application/x-font-ttf font/opentype;
#    expires max;
#  }

# serve static content
  location ~* \.(js|jpg|jpeg|txt|png|css|pdf|ico|map)$ {
    gzip_static on;
    expires 30d;
  }

# refirect from /path/ to /path
#  rewrite ^/(.*)/$ /$1 permanent;
}

1 Ответ

1 голос
/ 11 ноября 2019

Обновление: вот как этого добиться:

server {
  try_files $uri $uri/ @nodeproxy;

  location @nodeproxy {
    proxy_pass http://localhost:3000;
  }
}
...