Я не могу понять, почему мой сервер apache дважды обрабатывает HTTP-запросы к одному из моих API.
У меня в конфиге следующее:
WSGIDaemonProcess myapp user=apache processes=3 threads=5 display-name=myapp python-home=/home/bmakan/python-venvs/myapp python-path=/home/bmakan/ws/myapp/src/server
WSGIScriptAlias /myapp /home/bmakan/ws/myapp/src/server/app.wsgi
WSGIScriptReloading On
<Directory /home/bmakan/ws/myapp/src/server>
WSGIProcessGroup myapp
WSGIApplicationGroup %{GLOBAL}
Require all granted
</Directory>
Запросы правильно обрабатываются флягой. Но в то же время я продолжаю видеть эти сообщения об ошибках в моем журнале ошибок apache:
[Fri Feb 07 10:15:47.671278 2020] [authz_core:error] [pid 32194] [client 135.243.192.8:50024] AH01630: client denied by server configuration: /home/bmakan/ws/foo
[Fri Feb 07 10:15:59.343858 2020] [authz_core:error] [pid 32336] [client 135.243.192.8:50030] AH01630: client denied by server configuration: /home/bmakan/ws/bar
Это те же запросы из журнала доступа (отправленные из модуля запросов python):
135.243.192.8 - - [07/Feb/2020:10:15:47 +0100] "POST /myapp/foo/update HTTP/1.1" 200 2 "-" "python-requests/2.18.4"
135.243.192.8 - - [07/Feb/2020:10:15:59 +0100] "POST /myapp/bar/update HTTP/1.1" 200 4 "-" "python-requests/2.18.4"
В <Directory>
оговорка определена в /etc/httpd/config.d/regressdb3.config
файл, который должен поместить эту конфигурацию в main host
если я не ошибаюсь. И по умолчанию он должен использовать следующие VirtualHost
:
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile [path]
SSLCertificateKeyFile [path]
ServerName my-server.com
ServerAlias bmakanpc
DocumentRoot /home/bmakan/ws
</VirtualHost>
Сообщение об ошибке указывает, что эти запросы пытаются получить доступ к документам в DocumentRoot
. Насколько мне известно, apache должен обрабатывать запрос только один раз по наиболее подходящему совпадению, которое он находит, а именно WSGIScriptAlias
в таком случае. Даже если клиент отправил два запроса вместо одного, они все равно должны достичь одного и того же пункта назначения.