Я пытался разместить приложение .NET Core 2.2 на сервере Digital Ocean Ubuntu, используя NGINX в качестве обратного прокси-сервера для Kestrel, следуя руководству Microsoft .
Кажется, все работает нормально, в моем файле default-server нет ошибок, который выглядит следующим образом
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/ =404;
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-For $scheme;
}
}
# Virtual Host configuration for example.com
server {
listen 80;
listen [::]:80;
# these were here by default
root /var/www/example.com;
index index.html
location / {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-For $scheme;
}
}
Я запускаю свое приложение на localhost: 5000, используя dotnet [MyApplication].dll
, на данный момент все еще есть без ошибок, но переход к PostMan и попытка получить доступ к API через http://<my-server-ip>:80/api/users/new-user
возвращает 404:
404 не найдено
Что я делаю не так? Я новичок в настройке сервера, поэтому, пожалуйста, будьте осторожны!
Оказывается, что проблема была внутри location /
на try_files $uri $uri/ =404;
который начинает искать файлы. Проблема состоит в том, что это - сеть API, который служит JSON, таким образом, никогда не было никакого содержания, которое будет найдено для начала. Удаление этого и виртуальной конфигурации хоста получило все работа.