+2
在这里,我们没有很多公共IP。因此,我们将所有域都指向一个VM,在该VM上,我们将反向代理(重定向请求)设置为仅具有内部IP的另一个VM。
我也有一个域注册为Prism控制台,因此我们可以访问域而不是IP,并且也可以访问外部外部网络,但是我遵循的其他站点的配置也不适用于Prism。
下面附加样品配置
服务器 {
听80;
server_name示例网站
地点 / {
proxy_set_header主机example.com;
PROXY_SET_HEADER X-REAL -IP $ remote_addr;
proxy_set_header x-forwarded proto http;
proxy_set_header x-forwarded-for $ remote_addr;
proxy_set_header x-forwarded-host $ remote_addr;
proxy_passhttps://172.x.x.x.x:9440/;
#proxy_connect_timeout 240;
#proxy_send_timeout 240;
#proxy_read_timeout 240;
///添加了此代码以设置cookie,但没有工作
if($ http_cookie〜*“ jsessionid =([^;]+)(?:; | $)”){
设置$ co“ jsessionid = $ 1”;
}
proxy_set_header cookie“ $ co”;
///代码结束
}
}
我也有一个域注册为Prism控制台,因此我们可以访问域而不是IP,并且也可以访问外部外部网络,但是我遵循的其他站点的配置也不适用于Prism。
下面附加样品配置
服务器 {
听80;
server_name示例网站
地点 / {
proxy_set_header主机example.com;
PROXY_SET_HEADER X-REAL -IP $ remote_addr;
proxy_set_header x-forwarded proto http;
proxy_set_header x-forwarded-for $ remote_addr;
proxy_set_header x-forwarded-host $ remote_addr;
proxy_passhttps://172.x.x.x.x:9440/;
#proxy_connect_timeout 240;
#proxy_send_timeout 240;
#proxy_read_timeout 240;
///添加了此代码以设置cookie,但没有工作
if($ http_cookie〜*“ jsessionid =([^;]+)(?:; | $)”){
设置$ co“ jsessionid = $ 1”;
}
proxy_set_header cookie“ $ co”;
///代码结束
}
}
+2
是的
+1
乍一看,值得尝试的两件事:
1)将Proxy_Pass指令移至该部分的末尾(set_cookie部分之后)
2)与您正在查看的cookie方法,可以查看以下参数proxy_cookie_domain:
http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cookie_domain
1)将Proxy_Pass指令移至该部分的末尾(set_cookie部分之后)
2)与您正在查看的cookie方法,可以查看以下参数proxy_cookie_domain:
http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cookie_domain
拉维,我很感激这已经解决了将近一年,所以我假设您已经找到了答案。以防万一,为了Docuthaiton,这是两个指针。全面披露:我为Nginx工作,刚刚开始挖掘Nutanix平台,所以YMMV。1)要使用NGINX设置新的cookie,您需要使用“ add_header set-cookie”指令而不是'proxy_set_header'。使用您的示例的格式将是'add_header set-cookie jsessionid = $ co;'(请注意,在这种情况下,您需要从$ CO集中删除“ JSessionId”)。2)Nginx Plus是NGINX的商业版本,支持可以从应用程序中读取和学习JSessionID的其他负载平衡方法。作为Nutanix的新手,我不确定这是您要寻找的东西,但是仅基于您在寻找JSessionId的if语句,我认为这是同一用例。您可以在nginx.org上找到有关JSessionId学习的文档。希望在这几个月之后有所帮助。 ravismula wrote:Here we don't have many public IP's. So we point all the domains to one VM, on which we setup a reverse proxy (redirect request) to another VM which has only an internal IP.
我也有一个域注册为Prism控制台,因此我们可以访问域而不是IP,并且也可以访问外部外部网络,但是我遵循的其他站点的配置也不适用于Prism。
下面附加样品配置
服务器 {
听80;
server_name示例网站
地点 / {
proxy_set_header主机example.com;
PROXY_SET_HEADER X-REAL -IP $ remote_addr;
proxy_set_header x-forwarded proto http;
proxy_set_header x-forwarded-for $ remote_addr;
proxy_set_header x-forwarded-host $ remote_addr;
proxy_passhttps://172.x.x.x.x:9440/;
#proxy_connect_timeout 240;
#proxy_send_timeout 240;
#proxy_read_timeout 240;
///添加了此代码以设置cookie,但没有工作
if($ http_cookie〜*“ jsessionid =([^;]+)(?:; | $)”){
设置$ co“ jsessionid = $ 1”;
}
proxy_set_header cookie“ $ co”;
///代码结束
}
}
(1)这种预期的行为是反向代理PC吗?有人有工作吗?
(2)可以将PC配置为在443上收听吗?我检查的最后一个,答案是“否”。
1-我怀疑有人在这里内部实际尝试过,所以我不知道一种或另一种方法是否会很好地工作或不脱机
2-不,棱镜(元素和中央)在9440上发表作为静态事物。我认为一个足够狡猾的人可以侵入它,但是它可能以奇妙的方式炸毁,因为这不是我们支持的/QA(更改Prism端口)
地点 / {
proxy_pass https:// cloudConsole;
proxy_intercept_errors on;
proxy_set_header主机$主机;
PROXY_SET_HEADER X-REAL -IP $ remote_addr;
proxy_set_header x-forwarded-for $ proxy_add_x_forwarded_for;
proxy_set_header x-forwarded proto $方案;
proxy_http_version 1.1;
proxy_set_header升级$ http_upgrade;
proxy_set_header连接“升级”;
}
CloudConsole是指上游PC URL。
通过反向代理访问PC时,没有发现任何损坏的东西。