Nginx和Tomcat用于Spring和Angular应用程序
我在服务器上部署了Tomcat容器中的Spring boot和Angular应用程序。它在本地主机上运行完全正常 现在我正在尝试将我的域映射到应用程序 当我调用我的域时,从Angular到Spring的api调用不会被执行。因为它们在同一台服务器上,所以我使用localhost从angular到spring调用api。它可以在我的服务器浏览器上运行,但不能在其他地方运行,我很清楚为什么它不能运行 但我不完全确定如何绕过它。 这是我的nginx配置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
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调用时,它会尝试点击iplocalhost
,这意味着相对于客户端浏览器来说是本地的,而不是您对于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