我是这个领域的新手,并试图“发布”我自己的后端+前端。
我租了一个装有Ubuntu 20.04的Linux V-Server,并安装了Nginx“nginx/1.18.0(Ubuntu)”。
Angular(版本13)-Frontend-Files从dist-folder(ng build后)复制到服务器上的目标。我只是复制了文件,我没有在服务器上安装angular,因为angular文档说这样就足够了,这会是一个问题吗?
类似于/home/FrontEnd(AngularFiles)+ /home/Backend(Springboot.jar)
Springboot-Backend(版本2.6.2)是一个监听端口8080的“胖JAR”。安装了Java并配置了home-variable(如果我使用curl -I 127.0.0.1/api/EXAMPLE
我得到了预期的响应)我还尝试了“localhost”而不是“127.0.0.1”。
不幸的是,我不能从前端调用后端函数,因为CORS。
下面是我的NginX配置文件:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events
{
worker_connections 768;
# multi_accept on;
}
http
{
include /etc/nginx/mime.types;
upstream springboot
{
server 127.0.0.1:8080 max_conns=10;
}
server
{
listen 80;
listen [::]:80;
server_name my_server;
location /
{
root /home/DogCommando_Frontend;
try_files $uri $uri/ /index.html;
proxy_http_version 1.1;
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;
}
location /api
{
proxy_pass http://springboot;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
include /etc/nginx/mime.types;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
}
我可以调用Spring应用程序,如果我把
proxy_pass http://springboot;
但是我的Angular-Frontend在这种情况下不会显示,即使文件的其余部分看起来像我上面发布的那个。
我还尝试了不同的
add_header Access-Control-Allow-Origin *;
但问题依然存在。
我想有某种我看不见的根本问题。
因为我在这个领域非常缺乏经验,每一个帮助都很感激,如果我错过了发布的东西,请让我知道。
提前感谢大家!
1条答案
按热度按时间dffbzjpn1#
我终于明白了。
我的问题是我读了很多指南,他们总是谈论“localhost”。我假设(也许我读过了重要的部分)Spring-Application一旦启动就可以通过“localhost”或“127.0.0.1”进行寻址,但这是错误的。
我不得不修改我的API调用使用我的服务器地址,而不是“本地主机”。因此,从“localhost:8080/API/EXAMPLE”我将其重写为“myserveradress.net/api/EXAMPLE“,并且我在问题中发布的nginx-config工作并将“/api/”调用重定向到spring-application。
我希望这是可以理解的,我所写的,有人可以保存一些时间,如果他读这一点。