Nginx和Tomcat用于Spring和Angular应用程序

Nginx和Tomcat用于Spring和Angular应用程序,angular,spring-boot,nginx,tomcat,deployment,Angular,Spring Boot,Nginx,Tomcat,Deployment,我在服务器上部署了Tomcat容器中的Spring boot和Angular应用程序。它在本地主机上运行完全正常 现在我正在尝试将我的域映射到应用程序 当我调用我的域时,从Angular到Spring的api调用不会被执行。因为它们在同一台服务器上,所以我使用localhost从angular到spring调用api。它可以在我的服务器浏览器上运行,但不能在其他地方运行,我很清楚为什么它不能运行 但我不完全确定如何绕过它。 这是我的nginx配置 server { lis

我在服务器上部署了Tomcat容器中的Spring boot和Angular应用程序。它在本地主机上运行完全正常

现在我正在尝试将我的域映射到应用程序

当我调用我的域时,从Angular到Spring的api调用不会被执行。因为它们在同一台服务器上,所以我使用localhost从angular到spring调用api。它可以在我的服务器浏览器上运行,但不能在其他地方运行,我很清楚为什么它不能运行

但我不完全确定如何绕过它。

这是我的nginx配置

   server {
        listen       80;
        server_name localhost mydomain mydomain;


        #access_log  logs/host.access.log  main;

        location {
            root   html;
         proxy_pass      http://mydomain:8080;
            index  index.html index.htm;
        }       
    }
Tomcat configuration :

 <Host name="mydomain"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Alias>mydomain</Alias>
        <Valve className="org.apache.catalina.valves.rewrite.RewriteValve" />   
</Host>
服务器{
听80;
服务器名称localhost mydomain mydomain;
#access_log logs/host.access.log main;
位置{
根html;
代理通行证http://mydomain:8080;
index.html index.htm;
}       
}
Tomcat配置:
&但仍然没有成功

对于这两个问题的任何建议都将不胜感激。我可以在这里获得任何信息


谢谢

是的,您需要在调用API时使用服务器IP。原因是当客户请求你的网站时,代码会呈现在他的网站上。现在,当angular网站启动一个API调用时,它会尝试点击ip
localhost
,这意味着相对于客户端浏览器来说是本地的,而不是您对于angular网站来说是本地的


关于第二个问题,您希望访问您的域并需要通过根路径加载您的网站,对吗?

如果您希望在用户访问“mydomain.com”时重定向到/web映射,您可以向nginx添加如下配置:

server {
    listen 8080;

    location / {
        proxy_pass mydomain.com/web;
    } 
}

这将侦听端口8080,并为第一部分将所有请求定向/追加到
/web

+1。我想如果用户点击mydomain.com,那么它应该转到localhost:8080/web。但是Nginx不接受/webpart-only本地主机:8080