기계에서 실행중인 요리사 서버 (포트 4000에서 수신)가 있으며 SSL을 통해 액세스하고 싶습니다. 나는 (포트 4001에서 수신 대기) 아파치 리버스 프록시를 설정했다. 아파치 설정은Apache 역방향 HTTP 프록시 뒤에있는 Chef API 서버가 https 링크 대신 http를 반환합니다.
Listen 4001
<VirtualHost *:4001>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
ProxyRequests Off
ProxyPreserveHost On
<Proxy http://localhost:4000*>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /http://localhost:4000/
ProxyPassReverse/http://localhost:4000/
ProxyPassReverse/http://www.example.com:4000/
ProxyPassReverse/http://www.example.com:4001/
CustomLog ${APACHE_LOG_DIR}/chef.access.log common
ErrorLog ${APACHE_LOG_DIR}/chef.error.log
</VirtualHost>
문제는 요리사 API 호출에 의해 반환 된 JSON의 URL에 http https 대신해야한다는 것입니다 (www.example.com으로 대체 내 컴퓨터 이름)처럼 보인다. 위의 링크를 만들어 새로운 샌드 박스를 만들 /sandboxes
에 POST를 수행 할 때
https://www.example.com:4001/sandboxes/a25fa2615d3d4dbd91e91a5e3a76c0ea
한 예는 다음과 같습니다
http://www.example.com:4001/sandboxes/a25fa2615d3d4dbd91e91a5e3a76c0ea
대신 예를 들어, 그들은처럼 보인다. 이렇게하면 요리 책을 업로드 할 때 칼을 사용하는 것과 같은 문제가 발생합니다.
내가 말할 수있는 것부터, /sandboxes
POST에 의해 호출 된 요리사 서버 create method은 Merb absolute_url 도우미 메서드를 호출하여 URL을 생성합니다.
이 시점에서 나는이 문제를 해결하는 방법을 잘 모른다. 아파치 역 프록시 설정을 어쨌든 변경해야합니까? Chef 서버의 구성 옵션입니까? 또는 다른 것?
"a2enmod 헤더"가 필요했지만 그렇지 않으면이 기능이 작동했습니다. –