I use Kong gateway to make Django project accessible at localhost/python. I can see Django start page, but when I try to open localhost/python/admin it redirects to localhost/admin/login/?next=/admin/, so that isn't Django project anymore. Project is just files from python -m startproject with connected db.
What can I do to fix that? Thanks
This is how Kong service and route looks like:
{
"enabled": true,
"tls_verify": null,
"tls_verify_depth": null,
"port": 3000,
"protocol": "http",
"path": null,
"client_certificate": null,
"write_timeout": 60000,
"connect_timeout": 60000,
"retries": 5,
"read_timeout": 60000,
"id": "8da72803-ffea-4424-a568-31faa3782a6d",
"name": "python-service",
"host": "python-service",
"updated_at": 1711390446,
"created_at": 1711390446,
"tags": null,
"ca_certificates": null
}
route:
{
"next": null,
"data": [
{
"strip_path": true,
"regex_priority": 0,
"methods": null,
"request_buffering": true,
"response_buffering": true,
"protocols": [
"http",
"https"
],
"service": {
"id": "8da72803-ffea-4424-a568-31faa3782a6d"
},
"https_redirect_status_code": 426,
"tags": null,
"paths": [
"/python"
],
"headers": null,
"id": "2c1fb24a-21dd-42f5-9784-a3bf95c6f7dc",
"path_handling": "v0",
"created_at": 1711390464,
"updated_at": 1711390464,
"name": null,
"snis": null,
"sources": null,
"hosts": null,
"preserve_host": false,
"destinations": null
}
]
}
Your issue lies with the
strip_path: truevalue in your Kong route settings.When set to
true, Kong will strip the path that matches your route from the URL before forwarding it to your upstream service (Django in this case). This is why when you try to accesslocalhost/python/admin, Kong strips the '/python' and only '/admin' is left, which doesn't exist in your Django project.Therefore, you should change the
strip_pathvalue tofalseas follows:With
strip_pathset tofalse, the initial request tolocalhost/python/adminwill be forwarded to your Django project as/python/admin, and Django will be able to handle the routing correctly.After making this change, remember to reload your Kong configuration to apply the changes.
Please note that this would also mean adjusting your Django project's URL configuration to handle the additional '/python' in the path, as Django will now see it as part of the path. So ensure your Django URLs are correctly setup.