ProHoster > Blog > Administración > Nextcloud dentro e fóra de OpenLiteSpeed: configuración do proxy inverso
Nextcloud dentro e fóra de OpenLiteSpeed: configuración do proxy inverso
Como configuro OpenLiteSpeed para reverter o proxy a Nextcloud na rede interna?
Sorprendentemente, unha busca en Habré de OpenLiteSpeed non dá nada! Apúrome a corrixir esta inxustiza, porque LSWS é un servidor web decente. Encántame pola súa velocidade e a súa elegante interface de administración web:
Aínda que OpenLiteSpeed é máis famoso como "acelerador" de WordPress, no artigo de hoxe mostrarei un uso bastante específico del. É dicir, proxy inverso de solicitudes (proxy inverso). Di que é máis común usar nginx para iso? estarei de acordo. Pero doe tanto que nos namoramos de LSWS!
O proxy está ben, pero onde? Nun servizo non menos marabilloso - Nextcloud. Usamos Nextcloud para crear "nubes para compartir ficheiros" privadas. Para cada cliente, asignamos unha máquina virtual separada con Nextcloud e non queremos expoñelas "fóra". Pola contra, enviamos as solicitudes mediante un proxy inverso común. Esta solución permite:
1) eliminar o servidor no que se almacenan os datos do cliente de Internet e
2) gardar enderezos ip.
O diagrama ten este aspecto:
Está claro que o esquema é simplificado, porque a organización da infraestrutura de servizos web non é o tema do artigo de hoxe.
Tamén neste artigo omitirei a instalación e configuración básica do nextcloud, sobre todo porque hai materiais sobre este tema en Habré. Pero definitivamente mostrarei a configuración, sen a cal Nextcloud non funcionará detrás dun proxy.
Dado:
Nextcloud está instalado no host 1 e está configurado para funcionar a través de http (sen SSL), só ten unha interface de rede local e un enderezo IP "gris" 172.16.22.110.
Configuramos OpenLiteSpeed no host 2. Ten dúas interfaces, externa (mira a Internet) e interna cun enderezo IP na rede 172.16.22.0/24
O enderezo IP da interface externa do host 2 é o nome DNS cloud.connect.link
Unha tarefa:
Obtén desde Internet a través da ligazón 'https://cloud.connect.link' (SSL) a Nextcloud na rede interna.
sudo ufw permitir ssh
sudo ufw default allow outgoing
sudo ufw default deny incoming
sudo ufw permitir http
sudo ufw permithttps
sudo ufw permitir de o teu host de xestión a calquera porto 7080
sudo ufw habilitar
Configura OpenLiteSpeed como un proxy inverso.
Imos crear directorios baixo o virtualhost.
cd /usr/local/lsws/
sudo mkdirc cloud.connect.link
cd cloud.connect.link/
sudo mkdir {conf,html,logs}
sudo chown lsadm:lsadm ./conf/
Imos configurar o host virtual desde a interface web LSWS.
Abrir a xestión de URL http://cloud.connect.link:7080
Inicio de sesión/contrasinal predeterminado: admin/123456
Engade un host virtual (Anfitrións virtuais > Engadir).
Ao engadir, aparecerá unha mensaxe de erro: falta o ficheiro de configuración. Isto é normal, solucionado facendo clic en Fai clic para crear.
Na pestana Xeral, especifique a raíz do documento (aínda que non é necesaria, a configuración non se despegará sen ela). O nome de dominio, se non se especifica, tomarase do nome de host virtual, que chamamos o noso nome de dominio.
Agora toca lembrar que non temos só un servidor web, senón un proxy inverso. As seguintes configuracións indicarán a LSWS que proxy e onde. Na configuración de virtualhost, abra a pestana Aplicación externa e engada unha nova aplicación do tipo de servidor web:
Especifique o nome e o enderezo. Podes especificar un nome arbitrario, pero cómpre lembralo, será útil nos próximos pasos. A dirección é a onde reside Nextcloud na rede interna:
Na mesma configuración do servidor virtual, abra a pestana Contexto e cree un novo contexto do tipo Proxy:
Especifique os parámetros: URI = /, servidor web = nextcloud_1 (nome do paso anterior)
Reinicie LSWS. Isto faise cun clic desde a interface web, milagres! (un rato hereditario fala en min)
Poñemos o certificado, configuramos https. O procedemento para a obtención dun certificado omitirémolo, aceptaremos que xa o temos e deitarémolo coa chave no directorio /etc/letsencrypt/live/cloud.connect.link.
Imos crear un "listener" (Oíntes > Engadir), chamémoslle "https". Apuntao ao porto 443 e teña en conta que será seguro:
Na pestana SSL, especifique o camiño á clave e ao certificado:
Creouse o "listener", agora na sección Virtual Host Mappings engadirémoslle o noso host virtual:
Se LSWS só proxy a un servizo, pódese completar a configuración. Pero pensamos usalo para enviar solicitudes a diferentes "instancias" dependendo do nome de dominio. E todos os dominios terán os seus propios certificados. Polo tanto, cómpre ir á configuración de virtualhost e volver especificar a súa clave e certificado na pestana SSL. No futuro, isto debería facerse para cada novo host virtual.
Queda por configurar a reescritura de url para que as solicitudes http sexan dirixidas a https. (Por certo, cando rematará isto? É hora de que os navegadores e outro software vaian a https de forma predeterminada, e reenvíen a non SSL manualmente se é necesario).
Activar Activar reescritura e escribir regras de reescritura:
RewriteCond %{SERVER_PORT} 80
Reescribir a regra ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
Debido a un estraño malentendido, é imposible aplicar as regras de reescritura co habitual reinicio Graceful. Polo tanto, reiniciaremos LSWS non con gracia, senón con rudeza e eficiencia:
sudo systemctl reiniciar lsws.service
Para que o servidor escoite o porto 80, imos crear outro escoitador. Chamémoslle http, especifique o porto número 80 e que non será seguro:
Por analoxía coa configuración de escoita https, imos anexar o noso host virtual.
Agora LSWS escoitará no porto 80 e enviará solicitudes a 443 desde el, reescribindo o URL.
En conclusión, recomendo baixar o nivel de rexistro de LSWS, que está configurado como Depurar por defecto. Neste modo, os rexistros multiplícanse á velocidade do raio! Na maioría dos casos, o nivel de Aviso é suficiente. Vaia a Configuración do servidor > Rexistro:
Isto completa a configuración de OpenLiteSpeed como un proxy inverso. Unha vez máis, reinicie LSWS, siga a ligazón https://cloud.connect.link e mira:
Para que Nextcloud nos deixe entrar, necesitamos engadir o dominio cloud.connect.link á lista de confianza. Imos editar config.php. Instalei Nextcloud automaticamente ao instalar Ubuntu e a configuración está aquí: /var/snap/nextcloud/current/nextcloud/config.
Engade o parámetro "cloud.connect.link" á chave trusted_domains:
Ademais, na mesma configuración, debes especificar o enderezo IP do noso proxy. Chámolle a atención sobre o feito de que o enderezo debe especificarse o que é visible para o servidor Nextcloud, é dicir. A IP da interface LSWS local. Sen este paso, a interface web de Nextcloud funciona, pero as aplicacións non están autorizadas.
Xenial, despois podemos entrar na interface de autorización:
Problema resolto! Agora cada cliente pode usar con seguridade a "nube de ficheiros" no seu propio URL persoal, o servidor con ficheiros está separado de Internet, os futuros clientes recibirán todo o mesmo e non se verá afectado nin un só enderezo IP adicional.
Ademais, podes usar un proxy inverso para entregar contido estático, pero no caso de Nextcloud, isto non aumentará notablemente a velocidade. Polo tanto, é opcional e opcional.
Alégrome de compartir esta historia, espero que sexa útil para alguén. Se coñeces métodos máis elegantes e eficientes para resolver o problema, agradecerei os comentarios!