浏览 3.4k
有两台服务器A和B,A是公网ip,做反向代理;B是内网ip,在docker容器中部署了3个学校的应用,分别是81,82,83端口。通过访问
1.http://zjy.gz.com:9081/d-ui/
2.http://zjy.gz.com:9082/d-ui/
3.http://zjy.gz.com:9083/d-ui/,可以正常访问这三个学校,A的nginx的配置如下:
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name zjy.gz.com;
absolute_redirect off;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 9081;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
location /dbak/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.2.121:81/dbak/;
}
location /d-ui {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.2.121:81/d-ui;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 9082;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
location /dgimp/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.2.121:82/dgimp/;
}
location /d-ui {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.2.121:82/d-ui;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 9083;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
location /dbak/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.2.121:83/dbak/;
}
location /d-ui {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.2.121:83/d-ui;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
,然后内网中三个学校的nginx配置是一样的,如下:
#user nobody;
worker_processes 1;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
client_max_body_size 100m;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
add_header X-Permitted-Cross-Domain-Policies value;
add_header Strict-Transport-Security: max-age=16070400;
add_header 'Referrer-Policy' 'origin';
add_header X-Download-Options "noopen" always;
add_header X-XSS-Protection 1;
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options SAMEORIGIN;
upstream dataease {
server localhost:8081;
}
server {
listen 80;
server_name localhost;
location /d-ui/ {
alias html/d-ui/;
index index.html index.htm;
try_files $uri $uri/ /d-ui/;
}
location /dbak/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:906/dbak/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
,但是我现在要统一都走80端口,并且路径上添加各自学校的学校名访问,如:
1.http://zjy.gz.com/xuexiao1/d-ui/,
2.http://zjy.gz.com/xuexiao2/dgimp-ui/,
3.http://zjy.gz.com/xuexiao3/dgimp-ui/,并且内网实际调用接口的时候是不带这个学校名的,d-ui是前端,dbak是后端,该如何修改可以解决。大模型查了好多都不行,没招了

按点赞数排序
按时间排序
sticky模块只能在linux下吧,win下没有。tomcat好像有个session复制吧,或者可以用共享session。
没办法完全不受影响的,因为mirror是子请求,当子请求未结束时,主请求消耗的内存至少是无法释放的。你可以尝试在/mirror里,把超时时间大幅度调低,包括connect/read/send,再压下看看。
微信公众号
加入微信群