El servicio Nginx implementa un host de sitio web virtual

prefacio

Cada servidor solo ejecuta un sitio web, lo que a veces provoca un desperdicio de recursos. En este momento, la función de host virtual se puede usar para usar el servidor físico como múltiples "servidores virtuales"; dirección IP, nombre de dominio del host o número de puerto, proporcionando tecnología para múltiples sitios web para proporcionar servicios de acceso externo al mismo tiempo.

Sobre la base del experimento, Nginx debe instalarse primero. No importa qué método se utilice para instalarlo, el host virtual se puede configurar. Para obtener información sobre el servicio de instalación, consulte el artículo anterior "Implementación e instalación de instancias de servicio de Nginx" . .

Instálelo aquí compilando

servidor IP Atender
CentOS7 192.168.116.166 nginx1.22.1

1. Compilar e instalar Nginx

Los pasos de instalación aquí son relativamente rápidos.Si Nginx ya ha sido instalado, omita este directorio directamente.

wget http://nginx.org/download/nginx-1.22.1.tar.gz
tar xf nginx-1.22.1.tar.gz
#安装所需依赖包
[root@localhost ~]# yum install openssl openssl-devel gcc  -y
[root@localhost ~]# cd nginx-1.22.1
#配置需要到的组件
[root@localhost ~]#./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-pcre
[root@localhost nginx-1.22.1]# echo $?
0
#开始编译
[root@localhost nginx-1.22.1]# make && make install && echo "OK"

Nginx compila e instala muy rápido, y cuando ve OK en la pantalla, significa que se ha instalado.
inserte la descripción de la imagen aquí
Luego puede hacer una conexión suave para que el comando nginx se pueda usar en cualquier ruta.

[root@localhost nginx]# ln -sv sbin/nginx /usr/sbin/
"/usr/sbin/nginx" -> "sbin/nginx"
[root@localhost nginx]# ll /usr/sbin/nginx 
lrwxrwxrwx. 1 root root 10 328 15:45 /usr/sbin/nginx -> sbin/nginx

2. Configurar el host virtual

La configuración de un host virtual requiere agregar contenido al archivo de configuración de Nginx.

[root@localhost nginx]# ln -sv /usr/local/nginx/sbin/nginx /usr/sbin/nginx
"/usr/sbin/nginx" -> "/usr/local/nginx/sbin/nginx"
[root@localhost nginx]# ll /usr/sbin/nginx 
lrwxrwxrwx. 1 root root 27 328 15:48 /usr/sbin/nginx -> /usr/local/nginx/sbin/nginx

Si no sabe dónde está el archivo de configuración, puede usar el comando de búsqueda para encontrarlo.

2.1 Parámetros del archivo de configuración

nginx consta de módulos, que están controlados por directivas especificadas en los archivos de configuración. Las instrucciones se dividen en instrucciones simples e instrucciones de bloque. Las directivas simples consisten en un nombre y parámetros, separados por espacios y terminados con un punto y coma ;. Una directiva de bloque tiene la misma estructura que una directiva simple, pero termina {}con un conjunto de directivas adicionales entre llaves en lugar de punto y coma. Si una directiva de bloque puede contener otras directivas entre llaves, se denomina contexto (ejemplos: eventos, http, servidor y ubicación).
A continuación, necesitaremos implementar hosts de sitios web virtuales, por lo que solo necesitamos conocer algunos.

    server {
    
        #http server块,用来配置监听端口和域名的地方
        listen       80;    #监听端口
        server_name  localhost;   #服务器名称,url要访问的域名或IP

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
    
        #匹配url规则
            root   html;    	#网站网页存放路径
            index  index.html index.htm;   #文件后缀,如果是php的后缀,可以在这里加上index.php
        }

Si desea obtener más información, puede consultarlo en la documentación de nginx en el sitio web oficial: haga clic aquí
Luego, comenzaremos a configurarlo.

2.2 Acceso basado en puerto

El acceso al puerto es relativamente fácil, solo necesita modificar el puerto de escucha, primero creamos una ruta de directorio que luego se usará para almacenar el archivo index.html que se muestra en la página web.

[root@localhost nginx]# mkdir -p /data/html80  /data/html81
[root@localhost nginx]# echo "use 80 port to visit" > /data/html80/index.html
[root@localhost nginx]# echo "use 81 port to visit" > /data/html81/index.html

2.2.1 Modificar el archivo de configuración

Solo necesita modificar el puerto de configuración listen的80, luego copiar server httpel módulo a la línea 80, cambiar el puerto 80 a 81; y necesita modificar la ruta del directorio de index.html en el archivo.

[root@localhost nginx]# vim /usr/local/nginx/conf/nginx.conf
 35     server {
    
    
 36         listen       80;    
 37         server_name  192.168.116.166;
 38 
 39         #charset koi8-r;
 40 
 41         #access_log  logs/host.access.log  main;
 42 
 43         location / {
    
    
 44             root   /data/html80;    #目录路径
 45             index  index.html index.htm;
 46         }

 80      server {
    
    
 81          listen      81;
 82          server_name  192.168.116.166;
 83 
 84          #charset koi8-r;
 85 
 86          #access_log  logs/host.access.log  main;
 87 
 88          location / {
    
    
 89              root   /data/html81;
 90              index  index.html index.htm;
 91          }
 92 }

Nota: si desea escribir la información del módulo del servidor a mano, recuerde agregar un punto y coma después de cada línea para el contenido en el medio; de lo contrario, se informará un error.
El uso directo nginx -ttambién puede saber si el archivo de configuración es incorrecto;

[root@localhost nginx]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

Luego inicie el acceso a nginx. Tenga en cuenta que hice un enlace suave antes. Si el comando no se encuentra en este paso, puede hacer un enlace suave del comando y necesita usar la ruta completa.

ln -sv /usr/local/nginx/sbin/nginx /usr/sbin/nginx

Ingrese nginx directamente en la terminal para iniciar el servicio

[root@localhost nginx]# nginx

2.2.2 Efecto de Acceso

Use curl para acceder directamente en la terminal

[root@localhost nginx]# curl 192.168.116.166
use 80 port to visit
[root@localhost nginx]# curl 192.168.116.166:81
use 81 port to visit

Para acceder a la página web, debe desactivar el firewall y selinux antes de poder acceder con éxito.
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

2.3 Acceso basado en IP

Según el acceso IP, se requieren varias IP. En la máquina física, debe solicitar una IP de red externa. Por supuesto, estamos usando vmware ahora, por lo que agregar una IP temporal se puede usar para experimentos.

[root@localhost nginx]# ifconfig ens32:0 192.168.116.167/24
[root@localhost nginx]# hostname -I
192.168.116.166 192.168.116.167 192.168.122.1 

El archivo de directorio al que se debe acceder se recrea aquí;

[root@localhost nginx]# mkdir -p /data/html166 /data/html167
[root@localhost nginx]# echo "<h1>this is ip 166</h1> " > /data/html166/index.html
[root@localhost nginx]# echo "<h1>this is ip 167</h1> " > /data/html167/index.html

2.3.1 Modificar archivo de configuración

La parte que debe modificarse según el acceso de IP es que, server_namedebido a que es una IP diferente, debe agregar un módulo de servidor y escribir server_nameotra IP en él. locationLa ruta de acceso a la URL bajo la regla también debe modificarse al archivo de directorio creado anteriormente.

[root@localhost nginx]# vim /usr/local/nginx/conf/nginx.conf
 35     server {
    
    
 36         listen       80;
 37         server_name  192.168.116.166;
 38 
 39         #charset koi8-r;
 40 
 41         #access_log  logs/host.access.log  main;
 42 
 43         location / {
    
    
 44             root   /data/html166;
 45             index  index.html index.htm;
 46         }

 80      server {
    
    
 81          listen      80;
 82          server_name  192.168.116.167;
 83 
 84          #charset koi8-r;
 85 
 86          #access_log  logs/host.access.log  main;
 87 
 88          location / {
    
    
 89              root   /data/html167;
 90              index  index.html index.htm;
 91          }
 92 }

Después de la modificación, todavía se usa nginx -tpara verificar si el archivo tiene información de error.

[root@localhost nginx]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

reiniciar servicio

[root@localhost nginx]# nginx -s reload

2.3.2 Acceder a los resultados

Accede a la IP en la terminal

[root@localhost nginx]# curl 192.168.116.166
<h1>this is ip 166</h1> 
[root@localhost nginx]# curl 192.168.116.167
<h1>this is ip 167</h1> 

Visita en la web
inserte la descripción de la imagen aquí

inserte la descripción de la imagen aquí

2.4 Acceso basado en nombre de dominio

Según el acceso del nombre de dominio, el nombre de dominio debe resolverse primero. Dado que está en la máquina virtual, se resuelve directamente en la intranet aquí.

[root@localhost nginx]# vim /etc/hosts
[root@localhost nginx]# tail -2 !$
tail -2 /etc/hosts
192.168.116.166 www.itwhoami.top
192.168.116.166 blog.itwhoami.top

Después de analizar, cree un nuevo directorio aquí

[root@localhost nginx]# mkdir /data/html_www/ /data/html_blog/
[root@localhost nginx]# echo "this is www index" > /data/html_www/index.php
[root@localhost nginx]# echo "this is blog index" > /data/html_blog/index.php

2.4.1 Modificar archivo de configuración

Es necesario modificar el acceso basado en el nombre de dominio server_name, location规则的rootla ruta. `

 35     server {
    
    
 36         listen       80;
 37         server_name  www.itwhoami.top;
 38 
 39         #charset koi8-r;
 40 
 41         #access_log  logs/host.access.log  main;
 42 
 43         location / {
    
    
 44             root   /data/html_www;
 45             index  index.php index.html index.htm;
 46         }

 80      server {
    
    
 81          listen      80;
 82          server_name  blog.itwhoami.top;
 83      
 84          #charset koi8-r;
 85      
 86          #access_log  logs/host.access.log  main;
 87      
 88          location / {
    
    
 89              root   /data/html_blog;
 90              index  index.php index.html index.htm;
 91          }
 92 }

Usar de nuevo nginx -tpara ver el archivo de configuración

[root@localhost nginx]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

Reinicie el servicio nginx

[root@localhost nginx]# nginx -s reload

A veces, reiniciar no tiene efecto, también puede cerrar directamente el servicio y luego volver a abrirlo.

[root@localhost nginx]# nginx -s stop
[root@localhost nginx]# nginx

2.4.2 Acceder a los resultados

acceso en terminal

[root@localhost nginx]# curl www.itwhoami.top
this is www index
[root@localhost nginx]# curl blog.itwhoami.top
^C
[root@localhost nginx]# vim /etc/hosts
[root@localhost nginx]# curl blog.itwhoami.top
this is blog index

Al acceder a la página web, no se puede acceder desde el servidor local aquí, y debe accederse desde el Firefox virtual.
inserte la descripción de la imagen aquí
Para la página de PHP, Firefox la descarga por defecto y podemos verla directamente en el archivo.
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí


Resumir

Los tres hosts virtuales se han configurado aquí, lo cual es bastante interesante. También puedes practicarlo tú mismo. Si crees que el contenido está bien, puedes darle me gusta y seguirlo.
inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/rhn_111/article/details/129815660
Recomendado
Clasificación