Итак, я установил Nginx, Node.js и C # ASP.NET Core 2.1 на мой виртуальный сервер (virtualbox) и в настоящее время работает на каждом отдельном порту.
Node.js, работающий на localhost: 3000.
.NET Core, работающий на локальном хосте: 5000.
Но тогда я хочу создать пользовательский URI для такого рода случаев.Если пользователь получает доступ к корневому сайту (только «/»), он переходит в приложение Node.js.И если пользователь получает доступ к другой странице (в данном случае, если пользователь обращается к «/ api»), я хочу, чтобы пользователь заходил в приложение .NET Core.
Теперь, если я получаю доступ к корневому сайту, он работаетдолжным образом.Например, я посещаю 192.168.56.2 (это IP-адрес моего виртуального сервера), затем браузер открывает приложение Node.js.Но если я получаю доступ к 192.168.56.2/api, он возвращает код ошибки 404.
Вот моя /etc/nginx/sites-available/default
конфигурация:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm;
root /var/www/html;
server_name _;
# Front-end : Node.js
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
# Back-end : C# ASP.NET Core 2.1
location /api/ {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
В моем коде C # после того, как я сгенерировал код спод управлением dotnet new webapp -o mywebsite
, я не изменяю ничего, кроме Properties / launchSettings.json (я удаляю localhost: 5001 в only localhost: 5000).
Неправильно ли я настроил Nginx?Или я должен что-то изменить в своем коде C #?