Ubuntu 16.04에서 전역적으로 또는 Apache 2.4의 단일 가상 호스트에 대해서만 PUT HTTP 메서드를 활성화하는 방법을 알려주실 수 있는 분 계십니까? 여러 가지를 시도했지만 아무것도 작동하지 않습니다. Jira에 대한 역방향 프록시 구성이 있습니다. 이 구성은 GET 및 POST에는 작동하지만 PUT에는 작동하지 않습니다. 간단히 말해서 다음과 같습니다.
<VirtualHost *:443>
SSLEngine on
# JIRA Proxy Configuration:
<Proxy *>
Order deny,allow
Allow from all
AllowMethods GET POST PUT DELETE OPTIONS
</Proxy>
SSLProxyEngine On
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
나의 첫 번째 접근 방식은 Proxy* 구성이었습니다.
<Limit GET POST PUT DELETE OPTIONS>
Require all granted
</Limit>
그 후 나는 시도했다
<RequireAny>
Require method DELETE GET POST PUT OPTIONS
</RequireAny>
마침내 나는 시도했다
AllowMethods GET POST PUT DELETE OPTIONS
난 항상 이렇게 해
apachectl configtest
apachectl restart
아무것도 작동하지 않습니다. 컬을 통해 PUT 요청을 할 때마다 다음이 표시됩니다.
curl -H "Content-Type: application/json" -X PUT -d '{"comment": "I did some work here.","visibility": {"type": "group","value": "jira-developers"},"started": "2017-09-27T13:06:14.160+0000","timeSpentSeconds": 12000}' https:/hostname/rest/api/2/issue/blubb-11/worklog -vvvv
<snip>
> Content-Type: application/json
> Content-Length: 163
>
* upload completely sent off: 163 out of 163 bytes
< HTTP/1.1 405
< Date: Thu, 28 Sep 2017 14:23:45 GMT
< Server: Apache/2.4.18 (Ubuntu)
< X-AREQUESTID: 983x106858x1
< X-ASEN: SEN-4341829
< X-AUSERNAME: anonymous
< Allow: HEAD,POST,GET,OPTIONS
< X-Content-Type-Options: nosniff
< Content-Type: text/html;charset=UTF-8
< Content-Length: 0
</snip>
답변1
문제는 내 쪽에서 보낸 잘못된 형식의 Jira API Rest 요청이었습니다. 요청이 잘못된 경우 Jira는 Rest 메서드가 PUT을 지원하더라도 다소 오해의 소지가 있는 "Allow: HEAD, POST, GET, OPTIONS"를 보냅니다.