使用nginx做代理,nginx的ip映射出另一个IP让两个IP皆访问到OA
1.是当前内部映射出来一个IP,然后使用这个IP做nginx代理proxyHost,我想要它内部环境那个IP也能访问到OA。现在我配置出只有映射出来那个IP能访问到OA,内部IP访问是一直转圈,请问有什么解决办法能让这两个IP一起访问,修改哪个配置文件,比如我现在原IP是192.168.60.30映射出IP为119.91.217.172。2.这是我OA配置文件
{
"enable": true,
"center": {
"enable": true,
"order": 3.0,
"sslEnable": false,
"port": 8080.0,
"httpProtocol": "",
"proxyHost": "119.91.217.172",
"proxyPort": 8081.0,
"###enable": "是否启用###",
"###order": "center节点顺序,顺序排列0,1,2...###",
"###sslEnable": "是否启用ssl传输加密,如果启用将使用config/keystore文件作为密钥文件.使用config/token.json文件中的sslKeyStorePassword字段为密钥密码,sslKeyManagerPassword为管理密码.###",
"###port": "端口,center服务器端口,默认20030###",
"###httpProtocol": "对外http访问协议,http/https###",
"###proxyHost": "代理主机,当服务器是通过apache/nginx等代理服务器映射到公网或者通过路由器做端口映射,在这样的情况下需要设置此地址以标明公网访问地址.###",
"###proxyPort": "代理端口,当服务器是通过apache/nginx等代理服务器映射到公网或者通过路由器做端口映射,在这样的情况下需要设置此地址以标明公网访问端口.###",
"###extension": "扩展设置.###"
},
"application": {
"enable": true,
"port": 8080.0,
"sslEnable": false,
"proxyHost": "119.91.217.172",
"proxyPort": 8081.0,
"includes": [],
"excludes": [],
"###enable": "是否启用###",
"###port": "http/https端口,负责向前端提供数据访问接口.默认为20020端口.###",
"###sslEnable": "是否启用ssl传输加密,如果启用将使用config/keystore文件作为密钥文件.使用config/token.json文件中的sslKeyStorePassword字段为密钥密码,sslKeyManagerPassword为管理密码.###",
"###proxyHost": "代理主机,当服务器是通过apache/nginx等代理服务器映射到公网或者通过路由器做端口映射,在这样的情况下需要设置此地址以标明公网访问地址.###",
"###proxyPort": "代理端口,当服务器是通过apache/nginx等代理服务器映射到公网或者通过路由器做端口映射,在这样的情况下需要设置此地址以标明公网访问端口.###",
"###includes": "承载的应用,在集群环境下可以选择仅承载部分应用以降低服务器负载,可以使用*作为通配符.###",
"###excludes": "选择不承载的应用,和includes的值配合使用可以选择或者排除承载的应用,可以使用*作为通配符.###",
"###extension": "扩展设置.###"
},
"web": {
"enable": true,
"port": 8080.0,
"sslEnable": false,
"proxyHost": "",
"proxyPort": 8081.0,
"proxyCenterEnable": true,
"proxyApplicationEnable": true,
"proxyTimeOut": 300.0,
"###enable": "是否启用###",
"###port": "http/https端口,用户输入网址后实际访问的第一个端口.http协议默认为8080端口,https默认为443端口.###",
"###sslEnable": "是否启用ssl传输加密,如果启用将使用config/keystore文件作为密钥文件.使用config/token.json文件中的sslKeyStorePassword字段为密钥密码,sslKeyManagerPassword为管理密码.###",
"###proxyHost": "代理主机,当服务器是通过apache/nginx等代理服务器映射到公网或者通过路由器做端口映射,在这样的情况下需要设置此地址以标明公网访问地址.###",
"###proxyPort": "代理端口,当服务器是通过apache/nginx等代理服务器映射到公网或者通过路由器做端口映射,在这样的情况下需要设置此地址以标明公网访问端口.###",
"###proxyCenterEnable": "是否启用center服务器代理.###",
"###proxyApplicationEnable": "是否启用application服务器代理###",
"###proxyTimeOut": "代理连接超时时间,默认300(秒)###",
"###extension"
3.这是我nginx配置文件
server {
listen 8081;
server_name 119.91.217.172;
location / {
proxy_set_header Host $http_host;
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 $scheme;
# proxy_set_header X-NginX-Proxy true;
# real_ip_header X-Real-IP;
proxy_connect_timeout 300;
# Default is HTTP/1, keepalive is only enabled in HTTP/1.1
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;# 支持websocket连接
proxy_set_header Connection "upgrade";
chunked_transfer_encoding off;
proxy_pass http://192.168.60.33:8080;
}
}
想让我192.168.60.30:8080也能访问到OA不是转圈圈。
简单一点o2oa和nginx监听端口一样,都设置为8080或者都是8081,这样不要去配置node文件的proxyHost这个值,这样任何能访问nginx的地址都能访问到o2oa,如果端口不一致那需要在portal.json配置urlmapping,可以参考上下文模式配置(上下文没有也可以类似配置):https://www.o2oa.net/cms/serverdeployment/701.html 感谢你解答,就是我采用你说那个上下文模式配置,然后我配置好出现网页端还是转圈圈打不开
1.这是我OA配置文件
{
"enable": true,
"center": {
"enable": true,
"order": 3.0,
"sslEnable": false,
"port": 8080.0,
"httpProtocol": "",
"proxyHost": "",
"proxyPort": 8080.0,
"###enable": "是否启用###",
"###order": "center节点顺序,顺序排列0,1,2...###",
"###sslEnable": "是否启用ssl传输加密,如果启用将使用config/keystore文件作为密钥文件.使用config/token.json文件中的sslKeyStorePassword字段为密钥密码,sslKeyManagerPassword为管理密码.###",
"###port": "端口,center服务器端口,默认20030###",
"###httpProtocol": "对外http访问协议,http/https###",
"###proxyHost": "代理主机,当服务器是通过apache/nginx等代理服务器映射到公网或者通过路由器做端口映射,在这样的情况下需要设置此地址以标明公网访问地址.###",
"###proxyPort": "代理端口,当服务器是通过apache/nginx等代理服务器映射到公网或者通过路由器做端口映射,在这样的情况下需要设置此地址以标明公网访问端口.###",
"###extension": "扩展设置.###"
},
"application": {
"enable": true,
"port": 8080.0,
"sslEnable": false,
"proxyHost": "",
"proxyPort": 8080.0,
"includes": [],
"excludes": [],
"###enable": "是否启用###",
"###port": "http/https端口,负责向前端提供数据访问接口.默认为20020端口.###",
"###sslEnable": "是否启用ssl传输加密,如果启用将使用config/keystore文件作为密钥文件.使用config/token.json文件中的sslKeyStorePassword字段为密钥密码,sslKeyManagerPassword为管理密码.###",
"###proxyHost": "代理主机,当服务器是通过apache/nginx等代理服务器映射到公网或者通过路由器做端口映射,在这样的情况下需要设置此地址以标明公网访问地址.###",
"###proxyPort": "代理端口,当服务器是通过apache/nginx等代理服务器映射到公网或者通过路由器做端口映射,在这样的情况下需要设置此地址以标明公网访问端口.###",
"###includes": "承载的应用,在集群环境下可以选择仅承载部分应用以降低服务器负载,可以使用*作为通配符.###",
"###excludes": "选择不承载的应用,和includes的值配合使用可以选择或者排除承载的应用,可以使用*作为通配符.###",
"###extension": "扩展设置.###"
},
"web": {
"enable": true,
"port": 8080.0,
"sslEnable": false,
"proxyHost": "",
"proxyPort": 8080.0,
"proxyCenterEnable": true,
"proxyApplicationEnable": true,
"proxyTimeOut": 300.0,
"###enable": "是否启用###",
"###port": "http/https端口,用户输入网址后实际访问的第一个端口.http协议默认为8080端口,https默认为443端口.###",
"###sslEnable": "是否启用ssl传输加密,如果启用将使用config/keystore文件作为密钥文件.使用config/token.json文件中的sslKeyStorePassword字段为密钥密码,sslKeyManagerPassword为管理密码.###",
"###proxyHost": "代理主机,当服务器是通过apache/nginx等代理服务器映射到公网或者通过路由器做端口映射,在这样的情况下需要设置此地址以标明公网访问地址.###",
"###proxyPort": "代理端口,当服务器是通过apache/nginx等代理服务器映射到公网或者通过路由器做端口映射,在这样的情况下需要设置此地址以标明公网访问端口.###",
"###proxyCenterEnable": "是否启用center服务器代理.###",
"###proxyApplicationEnable": "是否启用application服务器代理###",
"###proxyTimeOut": "代理连接超时时间,默认300(秒)###",
"###extension"
2.这是我portal.json配置
{
"indexPage": {
"enable": false,
"portal": "",
"page": "",
"###enable": "是否启用定制的首页面.###",
"###portal": "指定首页面所属的portal,可以用id,name,alias.###",
"###page": "指定的首页面,可以使用name,alias,id###",
"###extension": "扩展设置.###"
},
"loginPage": {
"enable": true,
"portal": "f4fbfb29-98ae-45c5-a9ac-a4d141048978",
"page": "",
"###enable": "是否启用定制登录页面.###",
"###portal": "指定登录页面所属的portal,可以用id,name,alias.###",
"###page": "指定的登录页面,可以使用name,alias,id###",
"###extension": "扩展设置.###"
},
"urlMapping": {
"119.91.217.172/": "119.91.217.172/o2oa"
},
"###indexPage": "定制首页面设置.###",
"###loginPage": "定制登录页面设置.###",
"###extension": "扩展设置.###"
}
3.这是我nginx配置文件
upstream o2Server { # Server: 分发名
server 119.91.217.175:8080; # 我是先采用单台OA跑看看能不能跑通这个服务
}
server {
listen 8081;
server_namelocalhost;
proxy_http_version 1.1;
proxy_read_timeout 300s;
proxy_set_header Upgrade $http_upgrade;# 支持websocket连接
proxy_set_header Connection "upgrade"; # 支持websocket连接
proxy_set_header Host $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;
location / {
root html;
indexindex.html;
proxy_pass http://o2Server/;
}
}
}
是我哪里没有配置对吗这样配好访问时会一直出现转圈 你nginx监听的是8081,o2oa是8080,你配置的urlmapping映射不对,你可以这样配置(其中119.91.217.172要是nginx访问地址,如果有多个ip或者域名,那urlmapping继续加):
"urlMapping": {
"119.91.217.172:8080/": "119.91.217.172:8081/o2oa",
"119.91.217.172:8081/": "119.91.217.172:8081/o2oa"
}
页:
[1]