Los artículos anteriores de Arch Linux LEMP solo cubrieron los conceptos básicos, comenzando con la instalación de servicios de red (nginx, PHP, mysql, y phpMyAdmin) y configurar la seguridad mínima requerida mysql servidor y phpMyadmin.
Este tema está estrechamente relacionado con la instalación anterior de LEMP en Arch Linux y lo guiará a través de la configuración de configuraciones más complejas para LEMP. LEMP apilamiento, especialmente nginx Configuración del servidor web, como la creación anfitrión virtual, usar directorio protegidoconstruir y configurar Capa final de comunicación segura HTTPredireccionamiento HTTP inseguro a HTTPS.
También le proporcionaremos algunos scripts Bash útiles que simplificarán el trabajo de iniciar un host virtual y generar Certificados y claves SSL.
Tabla de Contenidos
Paso 1: habilite el alojamiento virtual en Nginx
Una de las formas más sencillas de habilitar servidor virtual nginx usando include
declaración en el archivo de configuración principal de Nginx, lo que hace que el trabajo de configuración adicional sea más fácil y más eficiente, ya que puede crear archivos simples para cada nuevo host y mantener el archivo de configuración principal más limpio.
Este método funciona de la misma manera que el anterior. servidor web apachelo primero que debes hacer es especificar el nuevo URI
donde esta el camino nginx Se debe leer el comando del archivo.
1. Entonces, abre nginx.conf
El perfil principal se encuentra en /etc/nginx/ Ruta del sistema, ubicada en la parte inferior, antes de la última llave «}
“Agregar caminos futuros anfitrión virtual El perfil permanecerá.
sudo nano /etc/nginx/nginx.conf
Agregue la siguiente declaración en la parte inferior.
include /etc/nginx/sites-enabled/*.conf;
Esta directiva le dice a Nginx que debe leer todos los archivos encontrados en /etc/nginx/sitios habilitados/ terminar con un .conf expandir.
2. El siguiente paso es crear sites-enabled
directorio y otro directorio llamado sites-available
almacenas todo anfitrión virtual Perfil.
sudo mkdir /etc/nginx/sites-available /etc/nginx/sites-enabled
3. Ahora es el momento de crear un nuevo perfil para «tecmint.com» existir /etc/nginx/sitios-disponibles Tabla de contenido.
sudo nano /etc/nginx/sites-available/tecmint.com.conf
Añade lo siguiente.
server { listen 80; server_name tecmint.com www.tecmint.com; root /srv/www/tecmint.com; index index.html; access_log /var/log/nginx/tecmint.com.access.log; error_log /var/log/nginx/tecmint.com.error.log; location / { try_files $uri $uri/ =404; } location /phpMyAdmin { alias /usr/share/webapps/phpMyAdmin; index index.php; try_files $uri $uri/ =404; } location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
El comando para iniciar el host virtual es server_name
Escuche las declaraciones debajo del puerto. Además, otra directiva importante aquí es root
Declaración que apunta al host virtual Nginx para servir el contenido del archivo /srv/www/tecmint.com
Ruta del sistema.
4. El último paso es crear /srv/www/tecmint.com
catálogo y producción tecmint.com.conf
Configuración de archivo disponible para que Nginx la lea (mediante enlaces simbólicos).
sudo mkdir -p /srv/www/tecmint.com sudo ln -s /etc/nginx/sites-available/tecmint.com.conf /etc/nginx/sites-enabled/
5. Cree un archivo HTML simple para que sirva como página de inicio de su sitio web.
sudo nano /srv/www/tecmint.com/index.html
Agregue lo siguiente:
Welcome to TecMint This is a sample website hosted on Nginx.
6. A continuación, pruebe la configuración de Nginx para detectar errores de sintaxis y reinicie Nginx para aplicar los cambios.
sudo nginx -t sudo systemctl restart nginx
7. Para verificarlo, abra un navegador web y navegue hasta https://tecmint.com
. Deberías ver la página HTML de muestra que creaste.
Paso 2: habilite SSL para el host virtual en Nginx
8. protocolo SSL (Capa final de comunicación segura) es un protocolo diseñado para cifrar conexiones HTTP a través de una red o Internet, permitiendo que los flujos de datos se transmitan a través de un canal seguro utilizando claves de cifrado simétricas/asimétricas, proporcionadas por Arch Linux. Robot certificado embalar.
sudo pacman -S certbot certbot-nginx
9. A continuación, utilice Robot certificado Obtenga e instale automáticamente certificados SSL. reemplazar tu_dominio.com con su nombre de dominio real o IP del servidor.
sudo certbot --nginx -d tecmint.com
Robot certificado Se configurará automáticamente nginx Utilice el certificado SSL obtenido y también configure la configuración automática. protocolo HTTP llegar HTTPS Redirigir.
10. Para verificar la configuración de instalación y renovación de credenciales, puede realizar un ensayo:
sudo certbot renew --dry-run
11. Vuelva a apuntar su navegador a Dirección IP del arco Pero esta vez usando HTTPS protocolo – – Esta vez ahora puede ver su host virtual Nginx ofreciendo el mismo contenido que antes. nombre-ip host, pero esta vez usando una conexión segura HTTP.
Paso 3: acceda a PhpMyAdmin a través de alojamiento virtual
Si el alojamiento virtual está habilitado en Nginx, ya no podremos acceder contenido de la ruta (máquina local Normalmente, el contenido se entrega utilizando una dirección IP de bucle invertido o una dirección IP del sistema (no configurada de otra manera) porque usamos el dominio «tecmint.com«Como server_name
Entonces nuestra ruta de contenido ha cambiado.
12. Para acceder a phpMyAdmin desde un host virtual, debe agregar permiso para acceder al directorio phpMyAdmin en el archivo de configuración del host virtual de Nginx.
sudo nano /etc/nginx/sites-available/tecmint.com.conf
Agregue la siguiente configuración para garantizar el acceso correcto:
location /phpMyAdmin { alias /usr/share/webapps/phpMyAdmin; index index.php; try_files $uri $uri/ =404; } location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; }
13. La forma más fácil de acceder phpMyAdmin A través de la red, se crea un vínculo simbólico entre /usr/share/webapps/phpMyAdmin/ ruta y nuestra ruta de host virtual recién definida (/srv/www/tecmint.com).
sudo ln -s /usr/share/webapps/phpMyAdmin/ /srv/www/tecmint.com/
14. Después de ejecutar el comando anterior, actualice la página y verá aparecer una nueva carpeta phpMyAdmin. indexación automática Habilite declaraciones en el host virtual Nginx o apunte su URL directamente a la carpeta PhpMyAdmin https://arch_IP/phpMyAdmin
.
Paso 4: habilite el directorio protegido con contraseña en Nginx
a diferencia de apacheNginx utiliza HttpAuthBasic Mod habilitado Directorio protegido con contraseña pero no proporciona ninguna herramienta para crear archivos cifrados. .htpasswd
documento.
15. Implementar protección de contraseña de directorio nginx existir ArquitecturaLinux,Instalar apache Servidor web y utilizar sus herramientas para generar datos cifrados. .htaccess
documento.
sudo pacman -S apache
16. Una vez completada la instalación apachecree un nuevo directorio a continuación /etc/nginx/ denominación intuitiva passwd
Dónde .htpasswd
El archivo será almacenado y utilizado. contraseña comando con -c
Abra el primer usuario agregado para generar el archivo, luego, si desea agregar más usuarios, use contraseña No -c
cambiar.
sudo mkdir /etc/nginx/passwd sudo htpasswd -c /etc/nginx/passwd/.htpasswd first_user sudo htpasswd /etc/nginx/passwd/.htpasswd second_user sudo htpasswd /etc/nginx/passwd/.htpasswd third_user
17. Para proteger el directorio del host virtual, en server
Bloquea tu configuración de Nginx.
sudo nano /etc/nginx/sites-available/tecmint.com.conf
Agregue la siguiente configuración.
auth_basic "Restricted Website"; auth_basic_user_file /etc/nginx/passwd/.htpasswd;
18. Siguiente reinicio nginx servicio, actualice la página y Se requiere autenticación Una ventana emergente debería pedirle sus credenciales.
sudo systemctl restart nginx
Ahora ha habilitado Nginx con éxito Directorio protegido con contraseña Pero al mismo tiempo debemos prestar atención a apache El servidor web ya está instalado en su sistema, así que asegúrese de que permanezca deshabilitado y no lo inicie de todos modos, ya que puede causar conflictos de puertos con Nginx.
Todas las configuraciones descritas en este artículo están en ArquitecturaLinux sistemas que actúan como servidores, pero la mayoría de ellos, especialmente aquellos que involucran nginx Los perfiles están disponibles en la mayoría de los sistemas Linux, pero son ligeramente diferentes.