Справочная информация / Цели:
Привет всем, здесь впервые постер!
В настоящее время я пытаюсь настроить NGINX так, чтобы он -
- Служит React App, когда заданы c маршруты, например, / auth /
- Проксирует все трафики c на маршруте / api к внутреннему узлу
- Обслуживает сайт Wordpress по всем другим маршрутам
Проблема: У меня есть блок местоположения / auth, определенный в моем файле конфигурации NGINX, который указывает на приложение React, содержащееся в папке /home/ubuntu/app/client/build.
Если я посещаю маршрут / auth, NGINX правильно обслуживает приложение React.
Однако, когда я делаю HTTP-запрос к вложенный маршрут (например, / auth / login) Я получаю ошибку 404.
Я попытался удалить файл конфигурации NGINX обратно, чтобы он содержал блок местоположения / auth, но проблема все еще сохраняется. Поэтому я не думаю, что это связано с другими настройками внутри файла.
Указание точных маршрутов не является жизнеспособным решением, так как многие другие маршруты, которые мне еще предстоит добавить, имеют динамические c вложенные значения Например, /users/someuniqueid.
Файл конфигурации
Надеемся, что следующее проливает свет на то, что я делаю неправильно. Обратите внимание, я удалил имя сервера из соображений конфиденциальности, поэтому не думайте, что я использовал это фактическое имя:)
server {
listen 80;
server_name myipaddress;
root /home/ubuntu/wordpress;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location /css {
alias /home/ubuntu/app/client/build/css;
}
location /media {
alias /home/ubuntu/app/client/build/media;
}
location /static {
alias /home/ubuntu/app/client/build/static;
}
location /assets {
alias /home/ubuntu/app/client/build/assets;
}
location /auth {
alias /home/ubuntu/app/client/build;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock; #Ubuntu 17.10
include fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location /api {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/myurl.io/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/myurl.io/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhusername.pem; # managed by Certbot
}