En esta guía, aprenderemos cómo instalar Nginx en OpenSUSE Leap 15.3 y configurarlo como un servidor proxy. Configuraremos un host virtual Nginx que envía una solicitud de un dominio a un servicio que escucha en un puerto.
Contenido relacionado
- Cómo instalar y configurar PHP y Nginx (LEMP) en Ubuntu 20.04
- Cómo instalar la pila Apache PHP 7.4 (LAMP) en Rocky Linux/Centos 8
- Cómo instalar y configurar PHP y Nginx (LEMP) en Debian 11
- Cómo instalar y configurar PHP y Apache (pila LAMP) en Debian 11
Tabla de contenido
- Asegurarse de que el servidor esté actualizado
- Instalación de Nginx en OpenSUSE Leap 15.3
- Iniciar y habilitar el servicio Nginx en OpenSUSE
- Configurar el servicio de proxy
- Creación de host virtual Nginx para representar la solicitud
- Probar la configuración
1. Asegurarse de que el servidor esté actualizado
Antes de continuar, siempre es una buena práctica asegurarse de que el servidor esté actualizado. Usa estos comandos para lograr esto
sudo zypper refresh
sudo zypper update -y
2. Instalación de Nginx en OpenSUSE Leap 15.3
Nginx, como servidor web estable de alto rendimiento y con un consumo de recursos muy bajo. Nginx tiene una arquitectura asíncrona que es mucho más escalable, basada en eventos.
Nginx está disponible en los repositorios predeterminados de UpenSUSE. Instálalo usando este comando:
sudo zypper install -y nginx
Confirme el nginx instalado
~> zypper info nginx
Loading repository data...
Reading installed packages...
Information for package nginx:
------------------------------
Repository : Main Repository
Name : nginx
Version : 1.19.8-3.6.1
Arch : x86_64
Vendor : SUSE LLC <https://www.suse.com/>
Installed Size : 2.2 MiB
Installed : Yes
Status : up-to-date
Source package : nginx-1.19.8-3.6.1.src
Summary : A HTTP server and IMAP/POP3 proxy server
Description :
nginx [engine x] is a HTTP server and IMAP/POP3 proxy server written by Igor Sysoev.
It has been running on many heavily loaded Russian sites for more than two years.
3. Iniciar y habilitar el servicio nginx
El servicio Nginx instalado no se inicia de forma predeterminada. Para iniciar el servicio, use este comando:
sudo systemctl start nginx
Confirme que el servicio está activo y funcionando con este comando:
~> sudo systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2021-12-20 18:56:15 UTC; 36s ago
Process: 31740 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Main PID: 31741 (nginx)
Tasks: 2 (limit: 4587)
CGroup: /system.slice/nginx.service
├─31741 nginx: master process /usr/sbin/nginx -g daemon off;
└─31742 nginx: worker process
Dec 20 18:56:15 ip-10-2-40-44 systemd[1]: Starting The nginx HTTP and reverse proxy server...
Dec 20 18:56:15 ip-10-2-40-44 nginx[31740]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Dec 20 18:56:15 ip-10-2-40-44 nginx[31740]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Dec 20 18:56:15 ip-10-2-40-44 systemd[1]: Started The nginx HTTP and reverse proxy server.
Para habilitar el servicio en el arranque, use este comando:
sudo systemctl enable nginx
4. Configuración del servicio de proxy
En este ejemplo, usaremos un servicio simple que ya he construido. Tengo un servicio de golang aquí, pero siéntase libre de usar su servicio.
➜ /tmp/gosimple
2021/12/20 23:38:34 service running, listening on 3000
Probar el servicio
➜ curl -iL http://127.0.0.1:3000/
HTTP/1.1 200 OK
Date: Mon, 20 Dec 2021 20:39:01 GMT
Content-Length: 12
Content-Type: text/plain; charset=utf-8
Hello World!
5. Creación de host virtual Nginx para proxy de la solicitud
Nginx le permite atender múltiples sitios utilizando hosts virtuales. El concepto de hosts virtuales permite más de un sitio web en un sistema o servidor web. Los servidores se diferencian por su nombre de host. Los visitantes del sitio web se enrutan por nombre de host o dirección IP al host virtual correcto. El alojamiento virtual permite que las empresas que comparten un servidor tengan sus propios nombres de dominio.
Se pueden usar bloques de servidor Nginx para encapsular detalles de configuración y alojar más de un dominio en un solo servidor. Vamos a crear un host virtual para nuestro sitio (site1.citizix.com
).
Las configuraciones de hosts virtuales de Nginx se almacenan en el directorio /etc/nginx/conf.d/
. Vamos a crear una configuración para nuestro sitio:
sudo vim /etc/nginx/conf.d/site1.citizix.com.conf
Agrega el siguiente contenido
server {
listen 80;
server_tokens off;
client_max_body_size 100M;
server_name site1.citizix.com;
access_log /var/log/nginx/site1.citizix.com.log;
error_log /var/log/nginx/site1.citizix.com.log;
root /opt/simpleapp;
if ($host !~* ^(site1.citizix.com)$) {
return 444;
}
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_pass http://127.0.0.1:3000;
}
}
Reiniciemos el nginx para que se aplique la configuración:
sudo systemctl restart nginx
6. Probando la configuración
En este ejemplo, usaremos el dominio site1.citizix.com
para el host virtual, pero tenga la libertad de usar el dominio de su elección. Tenga en cuenta que el DNS del dominio que se utilizará ya debe estar configurado para apuntar a la dirección IP del servidor. Confirme eso con:
dig -t A site1.citizix.com
Si aún no ha configurado su configuración de DNS o simplemente no desea que el sitio se active todavía, puede modificar el archivo de hosts de su computadora. Para hacer esto, use el siguiente comando en la CLI de su computadora local
sudo vim /etc/hosts
Luego, agregue la dirección IP de su servidor real seguido del nombre de dominio que está configurando, por ejemplo:
10.2.11.11 site1.citizix.com
Con esa configuración podemos hacer una solicitud a nuestro dominio. ¡Para mí funciona bien!
➜ curl -iL http://site1.citizix.com
HTTP/1.1 200 OK
Server: nginx
Date: Mon, 20 Dec 2021 20:51:42 GMT
Content-Type: text/plain; charset=utf-8
Content-Length: 12
Connection: keep-alive
Hello World!
Conclusión
¡Hemos logrado instalar y configurar Nginx para que actúe como proxy en esta guía!