Serviço Nginx implanta host de site virtual

prefácio

Cada servidor executa apenas um site, o que às vezes causa desperdício de recursos. Neste momento, a função de host virtual pode ser usada para usar o servidor físico como vários "servidores virtuais"; endereço IP, nome de domínio do host ou número da porta, fornecendo tecnologia para vários sites fornecerem serviços de acesso externo ao mesmo tempo.

Com base na experiência, o Nginx precisa ser instalado primeiro. Independentemente do método usado para instalá-lo, o host virtual pode ser configurado. Para o serviço de instalação, consulte o artigo anterior "Implantando e instalando instâncias de serviço Nginx " .

Instale-o aqui compilando

servidor IP Servir
CentOS7 192.168.116.166 nginx1.22.1

1. Compile e instale o Nginx

As etapas de instalação aqui são relativamente rápidas. Se o Nginx já tiver sido instalado, pule este diretório diretamente.

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"

O Nginx compila e instala muito rapidamente, e quando você vê OK na tela, significa que ele foi instalado.
insira a descrição da imagem aqui
Em seguida, você pode fazer uma conexão suave para que o comando nginx possa ser usado em qualquer caminho.

[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. Configure o host virtual

Configurar um host virtual requer adicionar conteúdo ao arquivo de configuração 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

Se você não sabe onde está o arquivo de configuração, pode usar o comando find para localizá-lo.

2.1 Parâmetros do arquivo de configuração

nginx consiste em módulos, que são controlados por diretivas especificadas em arquivos de configuração. As instruções são divididas em instruções simples e instruções de bloco. Diretivas simples consistem em um nome e parâmetros, separados por espaços e ;finalizados com ponto e vírgula. Uma diretiva de bloco tem a mesma estrutura de uma diretiva simples, mas termina {}com um conjunto de diretivas adicionais entre chaves em vez de ponto e vírgula. Se uma diretiva de bloco pode conter outras diretivas entre chaves, ela é chamada de contexto (exemplos: eventos, http, servidor e localização).
Em seguida, precisaremos implantar hosts de sites virtuais, portanto, só precisamos conhecer alguns.

    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
        }

Se você quiser saber mais, pode verificar na documentação do nginx no site oficial - clique aqui
Então vamos começar a configurá-lo.

2.2 Acesso baseado em porta

O acesso à porta é relativamente fácil, você só precisa modificar a porta de escuta, primeiro criamos um caminho de diretório para ser usado posteriormente para armazenar o arquivo index.html exibido na página da 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 Modifique o arquivo de configuração

Você só precisa modificar a porta de configuração listen的80, depois copiar server httpo módulo para a linha 80, alterar a porta 80 para 81 e modificar o caminho do diretório index.html no arquivo.

[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: Se você deseja digitar manualmente as informações do módulo do servidor, lembre-se de adicionar um ponto-e-vírgula após cada linha para o conteúdo no meio, caso contrário, um erro será relatado.
O uso direto nginx -ttambém pode saber se o arquivo de configuração está errado;

[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

Em seguida, inicie o acesso nginx. Observe que fiz um link flexível antes. Se o comando não for encontrado nesta etapa, você pode criar um link suave do comando e precisará usar o caminho completo.

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

Digite nginx diretamente no terminal para iniciar o serviço

[root@localhost nginx]# nginx

2.2.2 Efeito de Acesso

Use o curl para acessar diretamente no 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 acessar a página da web, você precisa desligar o firewall e o selinux antes de poder acessar com sucesso.
insira a descrição da imagem aqui
insira a descrição da imagem aqui

2.3 Acesso baseado em IP

Com base no acesso IP, vários IPs são necessários. Na máquina física, você precisa solicitar um IP de rede externo. Claro, estamos usando vmware agora, portanto, adicionar um IP temporário pode ser usado 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 

O arquivo de diretório que precisa ser acessado é recriado aqui;

[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 arquivo de configuração

A parte que precisa ser modificada com base no IP de acesso é que server_namepor ser um IP diferente, você precisa adicionar um módulo servidor, e gravar server_nameoutro IP nele. locationO caminho de acesso à url sob a regra também precisa ser modificado para o arquivo de diretório criado 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 }

Após a modificação, ele ainda é usado nginx -tpara verificar se o arquivo possui informações de erro.

[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 o serviço

[root@localhost nginx]# nginx -s reload

2.3.2 Resultados de acesso

Acesse o IP no 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> 

Visite na web
insira a descrição da imagem aqui

insira a descrição da imagem aqui

2.4 Acesso baseado no nome de domínio

Com base no acesso ao nome de domínio, o nome de domínio precisa ser resolvido primeiro. Como está na máquina virtual, é resolvido diretamente na intranet aqui.

[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

Após a análise, crie um novo diretório aqui

[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 arquivo de configuração

O acesso baseado no nome de domínio precisa ser modificado server_name, location规则的rooto caminho. `

 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 }

Use novamente nginx -tpara visualizar o arquivo de configuração

[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 o serviço nginx

[root@localhost nginx]# nginx -s reload

Às vezes, a reinicialização não surte efeito, você também pode fechar o serviço diretamente e reabri-lo.

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

2.4.2 Resultados de acesso

acesso no 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

Ao acessar a página da web, ela não pode ser acessada no servidor local aqui, e precisa ser acessada no Firefox virtual.
insira a descrição da imagem aqui
Para a página PHP, o Firefox baixa por padrão e podemos visualizá-la diretamente no arquivo.
insira a descrição da imagem aqui
insira a descrição da imagem aqui


Resumir

Os três hosts virtuais foram configurados aqui, o que é bastante interessante. Você também pode praticar você mesmo. Se achar que o conteúdo está bom, você pode curtir e seguir.
insira a descrição da imagem aqui

Acho que você gosta

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