Performing layer 7 health check with HAProxy and uWSGI in Django application

I'm using this uwsgi.ini to run a Django application.

[uwsgi]
http-socket = :8000
enable-proxy-protocol = true
chdir = /usr/local/src/api
module = api.wsgi
uid = root
gid = root
pidfile = /var/run/api-uwsgi.pid
master = true
processes = 10
chmod-socket = 664
threaded-logger = true
logto = /var/log/api/uwsgi.log
log-maxsize = 10000000
logfile-chown = true
vacuum = true
die-on-term = true

I've added an API url to perform database and cache health checks under the /health-check url. This API returns status code 200 if everything is fine. Now I want to be able to health check in layer 7 using this API with HAProxy but using option httpchk the response status code is 301, so the health check fails. Here is the backend part of my HAProxy config.

backend http_server
  mode http
  balance leastconn
  option forwardfor
  http-request set-header X-Forwarded-Port %[dst_port]
  http-request add-header X-Forwarded-Proto https if { ssl_fc }
  option httpchk
  http-check send meth GET uri /health-check ver HTTP/1.1 hdr Accept application\json
  http-check expect rstatus 200
  server app1 192.168.0.11:8000 check inter 500 downinter 5s fall 2 rise 3
  server app2 192.168.0.12:8000 check inter 500 downinter 5s fall 2 rise 3

Here is the result of running the Django apps with uWSGI and HAProxy. Note that the health check on layer 4 is working as expected.

Server http_server/app2 is DOWN, reason: Layer7 wrong status, code: 301, info: "Moved Permanently", check duration: 54ms. 0 active and 0 backup servers left. 0 sessions active, 0 requeued, 0 remaining in queue.

So what is causing this problem (I'm guessing uWSGI) and is there a way to fix it?