Apache 프록시 : 유효한 프로토콜 핸들러가 없습니다.
하위 서버를 다른 서버에 프록시하려고합니다. 내 httpd.conf :
RewriteEngine On
ProxyPreserveHost On
RewriteRule .*subdir/ https://anotherserver/subdir/ [P]
문제는 아파치가 항상 이것을 기록한다는 것입니다.
AH01144: No protocol handler was valid for the URL /subdir/. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule., referer: http://localhost/
인터넷을 검색 한 후 다음 모듈을 활성화했습니다.
LoadModule headers_module modules/mod_headers.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_express_module modules/mod_proxy_express.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_html_module modules/mod_proxy_html.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
LoadModule rewrite_module modules/mod_rewrite.so
(나는 그들 모두가 필요하지는 않지만 하나만 누락되지 않도록 활성화했습니다.)
그러나이 오류는 여전히 나타나고 클라이언트는 HTTP 500을받습니다.
이 문제를 어떻게 해결할 수 있습니까?
mod_proxy_http
활성화 하지 않은 경우 발생할 수 있습니다
sudo a2enmod proxy_http
https 기반로드 밸런서가 작동하게하려면 다음을 활성화해야합니다.
sudo a2enmod ssl
sudo a2enmod proxy
sudo a2enmod proxy_balancer
sudo a2enmod proxy_http
Apache2.4 + php5-fpm 설치가 작동하려면 다음 Apache 모듈을 활성화해야했습니다.
sudo a2enmod proxy
sudo a2enmod proxy_fcgi
필요가 없으며 proxy_http
모든 .php
파일을 php5-fpm으로 바로 보냅니다 .
<FilesMatch \.php$>
SetHandler "proxy:unix:/var/run/php5-fpm.sock|fcgi://localhost"
</FilesMatch>
제 경우에는 proxy_ajp
모듈이 필요했습니다 .
a2enmod proxy proxy_http proxy_ajp
나중에 참조 할 수 있도록 위의 여러 답변에서 제안 된 a2enmod는 데비안 / 우분투 용입니다. Red Hat은이를 사용하여 Apache 모듈을 활성화하지 않고 httpd.conf에서 LoadModule 문을 사용합니다.
해결 / 정답은 OP에 대한 의견에 있습니다.
ProxyPass와 함께 mod_ssl과 SSLProxyEngine이 필요하다고 생각합니다 – Deadooshka May 29 '14 at 11:35
@Deadooshka 예, 작동합니다. 답변으로 게시하면, 받아 들일 수 있습니다 – das_j May 29 '14 at 12:04
다른 이유로 동일한 오류 메시지가 있었으므로 여기에 답변을 게시하고 있습니다.
예를 들어, 아파치 httpd를 사용하여 프로토콜 A의 소스에서 프로토콜 B의 대상으로 요청을 프록시하는 경우이 오류 메시지가 발생할 수 있습니다.
내 상황의 예는 다음과 같습니다.
AH01144 : URL / sockjs-node / info에 유효한 프로토콜 핸들러가 없습니다 (체계 'ws').
위의 경우에 일어난 일은 단순히 다음과 같습니다. 경로 / sockjs-node를 기반으로 nodejs에 websocket 요청을 프록시하기 위해 mod 프록시를 활성화했습니다.
문제는 노드가 websocket 요청에 / sockjs-node 경로를 독점적으로 사용하지 않는다는 것입니다. 또한이 경로를 사용하여 웹 소켓에 대한 정보를 제공하는 REST 진입 점을 호스팅합니다.
이 방식으로 애플리케이션이 http : // localhost : 7001 / sockjs-node / info를 열려고 하면 Apache httpd는 나머지 호출을 HTTP 프로토콜에서 Webscoket 엔드 포인트 호출로 라우팅하려고합니다. 노드가이를 수락하지 않았습니다.
이것은 위의 예외로 이어집니다.
So be mindful that even if you enable the right modules, if you try to do the wrong forwarding, this will end with apache httpd informing you that the protocol you tried to use on the target server is not valid.
This was happening for me in my Apache/2.4.18 (Ubuntu) setup. In my case, the error I was seeing was:
... AH01144: No protocol handler was valid for the URL /~socket.io/. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.
The configuration related to this was:
ProxyPass /~socket.io/ ws://127.0.0.1:8090/~socket.io/
ProxyPassReverse /~socket.io/ ws://127.0.0.1:8090/~socket.io/
"No protocol handler was valid for the URL /~socket.io/
" meant that Apache could not handle the request being sent to "ws://127.0.0.1:8090/~socket.io/
"
I had proxy_http
loaded, but also needed proxy_wstunnel
. Once that was enabled all was good.
I tried to get an uwsgi://
working, but somehow the manual thought it was clear to me that I actually needed mod_proxy_uwsgi
. It was not. Here is how you do it: How to compile mod_proxy_uwsgi or mod_uwsgi?
참고URL : https://stackoverflow.com/questions/23931987/apache-proxy-no-protocol-handler-was-valid
'IT' 카테고리의 다른 글
스레드 간 작업이 유효하지 않음 : 에서 작성된 스레드 이외의 스레드에서 액세스하는 제어 'textBox1' (0) | 2020.05.28 |
---|---|
JavaScript 양식 제출-제출 확인 또는 취소 대화 상자 (0) | 2020.05.28 |
VS 2017의 클래스 다이어그램 (0) | 2020.05.28 |
왜 프래그먼트에서 기본이 아닌 생성자를 피하고 싶습니까? (0) | 2020.05.28 |
HTML 템플릿 파일이 많은 대형 Meteor 앱을 구성하는 모범 사례는 무엇입니까? (0) | 2020.05.28 |