Hi everyone,
I have been scratching my head about two frontend issues for hours.
- ERR_INVALID_ADDRESS
- Some localhost remaining in main.js
This is my first installation of dSpace. Here are some infromations about
the server
- Windows server 2022
- nvm 24.15.0
- using pm2 and environment variables and node.exe for debug
- IIS (10.0.xxxx)) reverse proxy with HTTPS
Here is my dspace-ui.json
{
"apps": [
{
"name": "dspace-ui",
"cwd": "E:\\dspace-ui-deploy",
"script": "dist\\server\\main.js",
"instances": "max",
"exec_mode": "cluster",
"env": {
"NODE_ENV": "production",
"DSPACE_UI_SSL" : "false",
"DSPACE_UI_HOST" : "127.0.0.1",
"DSPACE_UI_PORT": "4000",
"DSPACE_UI_SSL" : "false",
"DSPACE_UI_NAMESPACE" : "/",
"DSPACE_UI_SSL" : "false",
"DSPACE_UI_BASEURL" : "https://[our frontend url]",
"DSPACE_REST_SSL" : "true",
"DSPACE_REST_HOST" : "[our backend url]",
"DSPACE_REST_PORT" : "443",
"DSPACE_REST_NAMESPACE" : "/server",
}
}
]
}
Those are replicated in Windows environment variables.
After build and copying the built code to dspace-ui-deploy-dist I have two
errors.
First is related to having the port in the forwarded IP.
ValidationError: An invalid 'request.ip' (192.168.24.13:54170) was
detected. Consider passing a custom 'keyGenerator' function to the rate
limiter. See
https://express-rate-limit.github.io/ERR_ERL_INVALID_IP_ADDRESS/ for more
information.
at Object.ip (E:\dspace-ui-deploy\dist\server\main.js:1:3829713)
at Object.wrappedValidations.<computed> [as ip]
(E:\dspace-ui-deploy\dist\server\main.js:1:3837557)
at E:\dspace-ui-deploy\dist\server\main.js:1:3839154
at Generator.next (<anonymous>)
at asyncGeneratorStep
(E:\dspace-ui-deploy\dist\server\main.js:1:3806369)
at _next (E:\dspace-ui-deploy\dist\server\main.js:1:3806609)
at E:\dspace-ui-deploy\dist\server\main.js:1:3806728
at new ZoneAwarePromise
(E:\dspace-ui-deploy\dist\server\main.js:1:3716681)
at E:\dspace-ui-deploy\dist\server\main.js:1:3806545
at Object.keyGenerator
(E:\dspace-ui-deploy\dist\server\main.js:1:3839558) {
code: 'ERR_ERL_INVALID_IP_ADDRESS',
help: 'https://express-rate-limit.github.io/ERR_ERL_INVALID_IP_ADDRESS/'
}
The issue is I have no idea where to set up this custom KeyGenerator to
strip the IP from the port. Or should I fix it at reverse proxy level?
Second issue is more troublesome.
ERROR: URL with hostname "localhost" is not allowed.Please provide a list
of allowed hosts in the "allowedHosts" option in the "CommonEngine"
constructor.
Error in server-side rendering (SSR)
Error details : Error: URL with hostname "localhost" is not allowed.
at validateUrl (E:\dspace-ui-deploy\dist\server\main.js:1:8227592)
at E:\dspace-ui-deploy\dist\server\main.js:1:8227653
at Generator.next (<anonymous>)
at asyncGeneratorStep
(E:\dspace-ui-deploy\dist\server\main.js:1:3993125)
at _next (E:\dspace-ui-deploy\dist\server\main.js:1:3993350)
at E:\dspace-ui-deploy\dist\server\main.js:1:3993469
at new ZoneAwarePromise
(E:\dspace-ui-deploy\dist\server\main.js:1:3716681)
at E:\dspace-ui-deploy\dist\server\main.js:1:3993286
at CommonEngine.render
(E:\dspace-ui-deploy\dist\server\main.js:1:8229294)
at serverSideRender (E:\dspace-ui-deploy\dist\server\main.js:1:8242424)
Falling back to serving direct client-side rendering (CSR).
GET /home 200 12.333 ms - 1115
Error: URL with hostname "localhost" is not allowed.
at validateUrl (E:\dspace-ui-deploy\dist\server\main.js:1:8227592)
at E:\dspace-ui-deploy\dist\server\main.js:1:8227653
at Generator.next (<anonymous>)
at asyncGeneratorStep
(E:\dspace-ui-deploy\dist\server\main.js:1:3993125)
at _next (E:\dspace-ui-deploy\dist\server\main.js:1:3993350)
at E:\dspace-ui-deploy\dist\server\main.js:1:3993469
at new ZoneAwarePromise
(E:\dspace-ui-deploy\dist\server\main.js:1:3716681)
at E:\dspace-ui-deploy\dist\server\main.js:1:3993286
at CommonEngine.render
(E:\dspace-ui-deploy\dist\server\main.js:1:8229294)
at serverSideRender (E:\dspace-ui-deploy\dist\server\main.js:1:8242424)
ERROR: URL with hostname "localhost" is not allowed.Please provide a list
of allowed hosts in the "allowedHosts" option in the "CommonEngine"
constructor.
Error in server-side rendering (SSR)
Error details : Error: URL with hostname "localhost" is not allowed.
at validateUrl (E:\dspace-ui-deploy\dist\server\main.js:1:8227592)
at E:\dspace-ui-deploy\dist\server\main.js:1:8227653
at Generator.next (<anonymous>)
at asyncGeneratorStep
(E:\dspace-ui-deploy\dist\server\main.js:1:3993125)
at _next (E:\dspace-ui-deploy\dist\server\main.js:1:3993350)
at E:\dspace-ui-deploy\dist\server\main.js:1:3993469
at new ZoneAwarePromise
(E:\dspace-ui-deploy\dist\server\main.js:1:3716681)
at E:\dspace-ui-deploy\dist\server\main.js:1:3993286
at CommonEngine.render
(E:\dspace-ui-deploy\dist\server\main.js:1:8229294)
at serverSideRender (E:\dspace-ui-deploy\dist\server\main.js:1:8242424)
Falling back to serving direct client-side rendering (CSR).
I checked all my configuration variables and they are consistent with the
dspce-ui.json.
I still get some calls to localhost from main.js
Like here,
...
class sU {
constructor() {
this.production = !1,
this.debug = !1,
this.ui = {
ssl: !1,
host: "localhost",
port: 4e3,
nameSpace: "/",
baseUrl: "http://localhost:4000",
rateLimiter: {
windowMs: 6e4,
limit: 500,
ipv6Subnet: 56
},
useProxies: !0
},
...
The generated config.json seems correct
"ui": {
"ssl": false,
"host": "localhost",
"port": 4000,
"nameSpace": "/",
"baseUrl": "https://[our frontend url] "
}
}
Does anyone have an idea of why I get those localhost in the main.js and
what could be the root of the problem?
Thanks a lot.
Best,
Vincent
--
All messages to this mailing list should adhere to the Code of Conduct:
https://lyrasis.org/code-of-conduct/
---
You received this message because you are subscribed to the Google Groups
"DSpace Technical Support" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/dspace-tech/0333d2b0-4888-4a35-868d-89bfc47cc8c4n%40googlegroups.com.