Monta tu Wordpress con un proxy Apache delante en Linux Debian

Enviado por christian el

Configura tu Wordpress para que funcione con un proxy delante con Apache - Hosting Linux Debian

 

Sí, lo sé, hoy voy a hablarte un poco de Wordpress y Apache. Son dos tecnologías que no me convencen mucho y que no me siento cómodo pero que hay que conocer porque son muy muy extendidas (no digo que sean malas eh!)

Lo que te voy a explicar es cómo montar/configurar tu Wordpress para que lo puedas montar con un proxy delante. Si no sabes lo que es un proxy mejor cambia de post porque no te vas a enterar de mucho!!

 

Configuración del proxy

Supongamos que tenemos una máquina "front" abierta a internet y que será la que se encargará de gestionar las peticiones hacia nuestro Wordpress (que lo tendremos almacenado en otra máquina sin acceso a internet directo). 

La configuración del Apache sería:

# Usamos SSL
<IfModule mod_ssl.c>
	<VirtualHost *:443>
        	ServerName mi-sitio-web.com
        	DocumentRoot /
        	ServerAdmin webmaster@localhost
        	LogLevel info ssl:warn
        	ErrorLog ${APACHE_LOG_DIR}/error.log
        	CustomLog ${APACHE_LOG_DIR}/access.log combined

			# OPCIONAL. Pemitimos/dengamos acceso según IPs          
        	<Location />
                	Order deny,allow
                	Deny from all
                	Allow from 127.0.0.1
                	Allow from mi_IP
        	</Location>
        	
        	# Habilitamos el proxy
        	ProxyRequests Off
        	ProxyPreserveHost On
        	SSLProxyEngine On
        	RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
        	RequestHeader set "X-Forwarded-SSL" expr=%{HTTPS}
        	ProxyPass / http://mi-servidor-interno.local:8000/
        	ProxyPassReverse / http://mi-servidor-interno.local:8000/

           # Configuramos los certificados SSL
        	SSLEngine on
        	SSLCertificateFile /etc/letsencrypt/live/mi-sitio-web.com/fullchain.pem
        	SSLCertificateKeyFile /etc/letsencrypt/live/mi-sitio-web.com/privkey.pem
        	Include /etc/letsencrypt/options-ssl-apache.conf

	</VirtualHost>
</IfModule>
~                  

A tener en cuenta:

  • En la zona de configuración de SSL, verás "letsencrypt". Si no sabes lo que es aquí te dejo alguna info!
  • Para que tu máquina "conozca"/resuelva el nombre de domino interno, debes indicarlo en el fichero /etc/hosts

 

Configuración del servidor que gestiona el Wordpress

Ahora nos  toca configurar el servidor donde vamos a almacenar este wordpress. Recordar que esta máquina accederá a internet mediante el proxy que configuramos arriba por lo que, todo el tráfico, pasará por el proxy.

La configuración del Apache sería:

# Mismo puerto que indicamos en el proxy
<VirtualHost *:8000>
    ServerName mi-servidor-interno.local
    DocumentRoot /path/hasta/directorio/wordpress
    
    <Directory  /path/hasta/directorio/wordpress>
        Options +Indexes +FollowSymLinks +ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
        Require all granted
    </Directory>

   # Si usas FPM para procesar los ficheros php, usa esta config (para php8.3)
    <FilesMatch \.php$>
        SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost/"
    </FilesMatch>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Todo esto ten en cuenta que te funcionará en un entorno de Wordpress básico. Me refiero, que no tengas ningún .htaccess con algún redirect o cualquier otra configuración extra.

Eso si!, NO montes tu wordpress en un subdirectorio por favor! Te dará muchos problemas y no tiene mucho sentido la verdad!!!

Dinahosting: dominios y alojamiento web
My investor

Regístrate en MyInvestory tendrás un extra de 20€ ! :D

Usa el código U048395 y te llevas un regalo en tu primera inversión :)

Usa el código 22c80f y te llevas un regalo en tu primera inversión :)