Tomcat nginx重写以隐藏应用程序名称
这个问题可能会被问很多次,我一直在阅读,但仍然不能得到我想要的 我有一个应用程序运行在Tomcat nginx重写以隐藏应用程序名称,tomcat,nginx,Tomcat,Nginx,这个问题可能会被问很多次,我一直在阅读,但仍然不能得到我想要的 我有一个应用程序运行在172.17.1.10:8080/myapp中,我想设置nginx反向代理,仅使用sub.domain.com访问应用程序,在地址栏中隐藏“myapp” 我目前的设置是: server{ listen 80; server_name sub.domain.com; location /myapp { rewrite ^/myapp(
172.17.1.10:8080/myapp
中,我想设置nginx反向代理,仅使用sub.domain.com
访问应用程序,在地址栏中隐藏“myapp”
我目前的设置是:
server{
listen 80;
server_name sub.domain.com;
location /myapp {
rewrite ^/myapp(.*) /$1 break;
proxy_pass http://172.17.1.10:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
include /etc/nginx/proxy_params;
}
}
但是我一直用
sub.domain.com
和sub.domain.com/myapp
查看Nginx索引页。。。我遗漏了什么?看起来你甚至不需要重写这个案例,这应该足够了:
更新位置:
server{
listen 80;
server_name sub.domain.com;
location / {
proxy_pass http://172.17.1.10:8080/myapp/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
include /etc/nginx/proxy_params;
}
下面是一个模拟后端的服务器示例 您的172.17.1.10:8080将成为我的本地主机:8088:
server {
listen 8088;
location /myapp {
# if the "login" request param = true, will simulate a redirect to a login page to proxy;
if ($arg_login = "true" ){
return 301 http://sub.domain.com/login;
}
#otherwise return normal content
return 200 "$request_uri OK";
}
#Simulated login page
location /myapp/login {
echo "Login page: Provide credentials!";
}
}
所以,(使用浏览器)如果我要求:http://sub.domain.com/api/test
我会得到:
/myapp/api/测试正常
如果我要求:http://sub.domain.com/api/test?login=true
我会得到:
登录页面:提供凭证
我这样做了,得到了无限的重定向,我使用spring安全性,默认情况下,如果您有没有授权,它会重定向到/home或/login depdens