Apache HTTP Server: Difference between revisions
Line 25: | Line 25: | ||
* <code>mod_proxy_wstunnel</code> for websockets | * <code>mod_proxy_wstunnel</code> for websockets | ||
<pre> | <pre> | ||
RewriteEngine on | |||
RewriteCond %{HTTP:Upgrade} =websocket | |||
RewriteRule /(.*) ws://192.168.1.99/$1 [P,L] | |||
RewriteCond %{HTTP:Upgrade} !=websocket | |||
RewriteRule /(.*) http://192.168.1.40:99/$1 [P,L] | |||
ProxyPreserveHost On | ProxyPreserveHost On | ||
ProxyRequests Off | ProxyRequests Off |
Revision as of 22:18, 2 March 2020
Compression
HTTPS Redirect
<VirtualHost *:80> ServerName my_server.com ServerSignature Off RewriteEngine on RewriteCond %{HTTPS} !=on RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [NE,R,L] RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] </VirtualHost>
Proxying
mod_proxy documentation
mod_proxy_wstunnel documentation
General proxying to another server.
Note that this can be another service on the same machine (localhost), same network, or another network entirely.
This can be useful if you have a some entry point which handles HTTPS for another service on the same PC which does not handle HTTPS.
- Requirements
mod_proxy
mod_proxy_wstunnel
for websockets
RewriteEngine on RewriteCond %{HTTP:Upgrade} =websocket RewriteRule /(.*) ws://192.168.1.99/$1 [P,L] RewriteCond %{HTTP:Upgrade} !=websocket RewriteRule /(.*) http://192.168.1.40:99/$1 [P,L] ProxyPreserveHost On ProxyRequests Off ProxyPass / http://192.168.1.99:80/ ProxyPassReverse / http://192.168.1.99:80/ # Proxy websockets ProxyPass "/ws2/" "ws://echo.websocket.org/" ProxyPass "/wss2/" "wss://echo.websocket.org/"
.htaccess
.htaccess
allows modifying selected Apache configurations on a per-folder basis.
To enable this feature, add AllowOverride All
to your apache.conf
for the directories you want to allow .htaccess files.