nodejs逆エージェント-geoserverの例


前に述べましたが、geoserverはドメインをまたぐ問題が発生します.開発に不便があります.tomcatの設定がドメインをまたぐことを許可するのも面倒くさいです.逆代理はいい選択です.inxを言わないで、nodejsについて話します.
話を多くしないで、直接コードをかけます.
const express = require('express');
const router = express.Router();
const proxy = require('http-proxy-middleware');
//      
router.all('*', function(req, res, next) {
     
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
  res.header("X-Powered-By",' 3.2.1');
  next();
});
const proxyOption = {
     
  target: 'http://10.10.52.120:8080',
  // pathRewrite: {
     
  //    '^/req/geoserver/' : '/geoserver/' //     ,req/geoserver/   /geoserver/
  //  },
   changeOrigoin:true
 };
router.use('/geoserver',proxy.createProxyMiddleware(proxyOption))
module.exports = router;
コードにはExpressが使用されていますが、エージェントはhttp-proxy-middlewareを使用しています.
ルートはgeoserverをブロックして、コードで示したように設定されたアドレスに転送します.例えば、本例のnodeは、ポート57776をローカルに有効化している.
アクセスhttp://localhost:57776/geoserver/sf/wms?service=WMS&version=1.1.0&request=GetMap&layers=sf%3Aarchsites&bbox=589851.4376666048%2C4914490.882968263%2C608346.4603107043%2C4926501.8980334345&width=768&height=498&srs=EPSG%3A26713&format=application/openlayers実際転送:http://10.10.52.120:8080/geoserver/sf/wms?service=WMS&version=1.1.0&request=GetMap&layers=sf%3Aarchsites&bbox=589851.4376666048%2C4914490.882968263%2C608346.4603107043%2C4926501.8980334345&width=768&height=498&srs=EPSG%3A26713&format=application/openlayers元々は10.10.52.120:8080上のgeoserverはドメインをまたぐことができませんでしたが、node転送を通じてlocalhost:57776に両替するだけでアクセスできます.
注:このプロキシはgeoserver各種サービスにアクセスしても大丈夫ですが、ログインできません.つまりhttp://localhost:57776/geoserver/webにアクセスした後、アカウントのパスワードを入力してログインできません.解決待ちです.
ここはgeoserverの代理です.他はそのままヒョウタンを描くことができます.もっと多くの配置項目はhttp-proxy-middlewareに訪問できます.
最後に、完全な例コードをクリックして確認することができます.