No protocol handler was valid for the URL for unix sockets

apache-2.4reverse-proxy

I'm trying to use a unix socket with apache 2.4.10 and I keep getting the error No protocol handler was valid for the URL /foo.

I have mod_proxy_uwscgi installed and enabled.

My Virtual Host looks like this:

<VirtualHost *:80>
    ServerAdmin me@example.com
    ServerName foo.example.com

    <Location />
            ProxyPass unix:/path/to/socket.sock|uwscgi://
    </Location>
</VirtualHost>

Output of apachectl -M

Loaded Modules:
 core_module (static)
 so_module (static)
 watchdog_module (static)
 http_module (static)
 log_config_module (static)
 logio_module (static)
 version_module (static)
 unixd_module (static)
 access_compat_module (shared)
 alias_module (shared)
 auth_basic_module (shared)
 authn_core_module (shared)
 authn_file_module (shared)
 authz_core_module (shared)
 authz_host_module (shared)
 authz_user_module (shared)
 autoindex_module (shared)
 deflate_module (shared)
 dir_module (shared)
 env_module (shared)
 filter_module (shared)
 headers_module (shared)
 mime_module (shared)
 mpm_prefork_module (shared)
 negotiation_module (shared)
 php5_module (shared)
 proxy_module (shared)
 proxy_ajp_module (shared)
 proxy_fcgi_module (shared)
 proxy_http_module (shared)
 proxy_uwsgi_module (shared)
 reqtimeout_module (shared)
 rewrite_module (shared)
 setenvif_module (shared)
 socache_shmcb_module (shared)
 ssl_module (shared)
 status_module (shared)

I can't see what I'm doing wrong.

Best Answer

You have a typo. It is not uwscgi, it is uwsgi.

From the UWSGI docs:

Starting from Apache 2.4.9, support for Unix sockets has been added. The syntax is pretty simple:

ProxyPass / unix:/var/lib/uwsgi/app1.sock|uwsgi://uwsgi-uds-app1/

ProxyPass / unix:/var/lib/uwsgi/app2.sock|uwsgi://uwsgi-uds-app2/