Nginx use detailsNginx início rápido Detalhes do arquivo de configuração Nginx

Nginx

Todos os arquivos de instalação necessários para o documento foram empacotados,
link para download : https://pan.baidu.com/s/1yWUDj3lXK9nm-huyzSwu8g
Código de extração: u7dl
copie este conteúdo e abra o aplicativo Baidu Netdisk para celular, a operação é mais conveniente - Compartilhar do Baidu Netdisk Super Member V3

Um, introdução ao Nginx

O Nginx é um servidor proxy reverso e HTTP de alto desempenho. Ele ocupa uma pequena memória e tem uma capacidade muito poderosa de lidar com alta simultaneidade.

Nginx pode ser concluído, balanceamento de carga, separação dinâmica e estática

Alguns deles não podem ser enviados devido a violações. Recomenda-se assistir a este vídeo para completar os pontos de conhecimento que não são mencionados. Nginx no Vale do Silício explica o portal

1. Balanceamento de carga

Aumente o número de servidores e distribua as solicitações para cada servidor em vez de concentrar as solicitações em um único servidor

Insira a descrição da imagem aqui

2. Separação de dinâmico e estático

Analisa recursos dinâmicos e recursos estáticos por diferentes servidores, reduzindo a pressão ao usar um único servidor
Insira a descrição da imagem aqui

Dois, instalação do Nginx (Linux)

  1. Carregue os arquivos dependentes de pcre para o diretório / usr / src do Linux

Insira a descrição da imagem aqui

  1. Digite o diretório acima,cd /usr/src

  2. Descompacte o arquivo compactado pcre,tar -zxvf pcre-8.37.tar.gz

  3. Digite o diretório descompactado,cd pcre-8.37/

  4. Seguido pela implementação ./configure, make && make installpara concluir a instalação

  5. Verifique se a instalação foi bem-sucedida,pcre-config --version

Insira a descrição da imagem aqui

  1. Instale dependências openssl, zlib e gcc
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
  1. Faça upload do pacote de instalação do Nginx para o diretório / usr / src do Linux

Insira a descrição da imagem aqui

  1. Digite o diretório acima,cd /usr/src

  2. Descompacte o arquivo de instalação do Nginx,tar -zxvf nginx-1.12.2.tar.gz

  3. Digite o diretório descompactado,cd nginx-1.12.2/

  4. Seguido pela implementação ./configure, make && make installpara concluir a instalação

  5. Abra a porta 80:

(1) firewall-cmd --permanent --add-port=80/tcp, mostrar que sucesso significa sucesso

(2) firewall-cmd --reloadReinicie o firewall para ter efeito, e exibir sucesso significa sucesso

(3 ) firewall-cmd --query-port=80/tcp, display sim significa que a porta 80 foi aberta com sucesso

  1. Inicie o Nginx cd /usr/local/nginx/sbine execute./nginx

Insira a descrição da imagem aqui

  1. Digite http: // [endereço IP do Linux]: 80 na barra de endereço do navegador (o Nginx usa a porta 80 por padrão)

Insira a descrição da imagem aqui

Três, instruções comuns do Nginx

1. Inicie o Nginx

Primeiro cd / usr / local / nginx / sbin, depois ./nginx ou diretamente /usr/local/nginx/sbin/nginx

2. Feche o Nginx

Primeiro cd / usr / local / nginx / sbin, depois ./nginx -s pare ou diretamente /usr/local/nginx/sbin/nginx -s stop

3. Implantação ativa do Nginx

(Você também pode recarregar o arquivo de configuração modificado sem reiniciar o Nginx)

Primeiro cd / usr / local / nginx / sbin, depois ./nginx -s recarregar, ou diretamente /usr/local/nginx/sbin/nginx -s reload

Quatro, arquivo de configuração Nginx

Os arquivos de configuração do Nginx são colocados no diretório / usr / local / nginx / conf /

Insira a descrição da imagem aqui

O conteúdo após abrir o arquivo nginx.conf:

# 第一部分:全局块
worker_processes  1;  # worker进程数,值越大,支持的并发数量越大,尽量与cpu数相同

# 第二部分:events块
events {
    worker_connections  1024;  # 每个worker进程支持的最大连接数默认为1024
}

# 第三部分:http块
http {
	# http全局块
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

	# server块,一般都是对此部分进行配置 (可以有多个server块)
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

Cinco, exemplo de configuração Nginx (1)

1. Obtenha o efeito

Digite o endereço www.123.com no navegador para ir para a página inicial do servidor tomcat do sistema Linux

2. Análise de etapas

(1) Instale o tomcat no Linux, use a porta padrão 8080

(2) Análise do processo de acesso

Insira a descrição da imagem aqui

(3) Defina a correspondência entre o nome de domínio e o endereço IP no arquivo host do Windows

Insira a descrição da imagem aqui

(4) No arquivo de configuração Nginx,vim /usr/local/nginx/conf/nginx.conf

Insira a descrição da imagem aqui

(5) Inicie o Nginx, abra o navegador para executar, o efeito é como mostrado na figura

Insira a descrição da imagem aqui

Seis, exemplo de configuração Nginx (2)

1. Obtenha o efeito

Modifique a porta de escuta do Nginx para 9001 e vá para diferentes páginas do servidor de acordo com o endereço do navegador

Visite http: // [Linux ip address]: 9001 / edu / Jump to 127.0.0.1:8080
Visite http: // [Linux ip address]: 9001 / vod / Jump to 127.0.0.1:8081

2. Análise de etapas

(1) Crie dois servidores Tomcat, uma porta 8080 e uma porta 8081 (e abra essas duas portas)

(2) Crie pastas edu, vod e arquivos a.html nos diretórios webapps dos dois servidores Tomcat, respectivamente

(3) Configure no arquivo de configuração Nginx,vim /usr/local/nginx/conf/nginx.conf

Insira a descrição da imagem aqui

(4) Abra o navegador para testar

Insira a descrição da imagem aqui

3. Descrição da diretiva de localização no arquivo de configuração Nginx

(1) Introdução: usado para corresponder ao endereço solicitado

(2) Gramática

Insira a descrição da imagem aqui

(3) Wildcard

=: Antes do uri sem expressões regulares, a string da solicitação deve corresponder estritamente ao uri. Se a correspondência for bem-sucedida, pare de
continuar a pesquisar e processe a solicitação imediatamente

~: Corresponde ao endereço de solicitação que contém uri, diferencia maiúsculas de minúsculas

~ *: corresponde ao endereço do pedido que contém uri, sem distinção entre maiúsculas e minúsculas

^ ~: Antes do uri sem expressões regulares, o servidor Nginx deve encontrar o local com o maior grau de correspondência entre o uri de identificação e a string de solicitação e, em seguida, usar esse local para processar a solicitação imediatamente, em vez de usar o uri regular e solicitação no bloco de localização correspondência de string

Sete, balanceamento de carga de exemplo de configuração Nginx

1. Obtenha o efeito

Digite http: // [endereço ip do Linux] /edu/a.html na barra de endereço do navegador e distribua esta solicitação para dois servidores Tomcat

2. Análise de etapas

(1) Crie dois servidores Tomcat, uma porta 8080 e uma porta 8081 (e abra essas duas portas)

(2) Crie a pasta edu e um arquivo.html no diretório webapps dos dois servidores Tomcat respectivamente

(3) Configuração de balanceamento de carga no arquivo de configuração Nginx,vim /usr/local/nginx/conf/nginx.conf

upstream myserver {
# 列出所要负载均衡的tomcat服务器
    server 192.168.206.128:8080;
    server 192.168.206.128:8081;
}

    server {
        listen       80;
        server_name  192.168.206.128;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass http://myserver;
        }

(4) Resultado da operação: Digite o endereço na barra de endereço, e cada atualização irá para outro servidor Tomcat

3. Estratégia de distribuição de balanceamento de carga

(1) Sondagem (padrão)

Atribua a diferentes servidores um por um de acordo com a seqüência de tempo da solicitação. Se um servidor cair, este servidor será removido automaticamente

(2) peso

peso representa o peso, o padrão é 1, quanto maior o peso, mais solicitações são alocadas, uso:

Insira a descrição da imagem aqui

(3) ip_hash

Cada requisição é alocada de acordo com o hash do endereço IP acessado, ou seja, qual servidor é acessado por determinado endereço pela primeira vez, e então essa requisição sempre acessará este servidor, que pode resolver o problema da sessão.

Insira a descrição da imagem aqui

(4) justo

A solicitação é alocada de acordo com o tempo de resposta do servidor, e o servidor com um tempo de resposta curto tem prioridade.

Insira a descrição da imagem aqui

Oito, separação de exemplo de configuração Nginx de dinâmico e estático

1. Visão Geral

A separação dinâmica e estática do Nginx significa simplesmente separar solicitações dinâmicas e estáticas. Não pode ser entendida como simplesmente separar fisicamente páginas dinâmicas e estáticas. A rigor, as solicitações dinâmicas devem ser separadas das solicitações estáticas, que podem ser entendidas como o uso de Nginx para processar páginas estáticas e Tomcat para processar páginas dinâmicas. Da perspectiva da implementação atual, ele pode ser dividido em dois tipos. Um é separar puramente os arquivos estáticos em um nome de domínio separado e colocá-los em um servidor separado, que também é a solução principal atual; o outro método é dinâmico e arquivos estáticos. Misturados e liberados, separados por Nginx

2. Alcance o efeito

Crie uma pasta / data / www / no diretório raiz do Linux, que armazena o recurso estático a.html, e crie uma pasta / data / www / sob os aplicativos da web do servidor Tomcat em 8080, que armazena o recurso estático a. html, quando a solicitação para este recurso estático é inserida, o recurso estático no diretório raiz é acessado, não o recurso estático no servidor Tomcat

3. Análise de etapas

(1) Crie as pastas e arquivos acima

(2) Executar configuração de separação dinâmica e estática no arquivo de configuração Nginx,vim /usr/local/nginx/conf/nginx.conf

server {
    listen       80;
    server_name  192.168.206.128;
    #charset koi8-r;
    #access_log  logs/host.access.log  main;
    location /www/ {
        root /data/;
        index index.html index.htm;
}
}

Nove, cluster de exemplo de alta disponibilidade de configuração Nginx

1. Visão Geral

Quando o servidor principal Nginx fica inativo, o servidor em espera é usado para garantir a alta disponibilidade do serviço. A ideia é a seguinte:

Insira a descrição da imagem aqui

2. Análise de etapas

(1) Dois servidores Nginx (ou seja, duas máquinas virtuais Linux) são necessários, os endereços são 192.168.17.129 e 192.168.17.131, respectivamente

(2) Instale o Nginx em duas máquinas virtuais

(3) Instale o keepalived no servidor principal

i. Digite o diretório usr,cd /usr/

ii. Ambiente de instalação

1. wget http://www.percona.com/redir/downloads/Percona-XtraDB-Cluster/5.5.37-25.10/RPM/rhel6/x86_64/Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm

2. rpm -ivh Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm

iii. Use o comando yum para instalar,yum install keepalived -y

iv. Após a instalação, crie um diretório keepalived em / etc, que contém o arquivo de configuração keepalived.conf

(4) Exclua o arquivo de configuração original,rm -rf /etc/keepalived/keepalived.conf

(5) Substitua pelo novo arquivo de configuração keepalived.conf, o conteúdo é o seguinte:

global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   #邮件服务器通知地址(暂不配置,默认即可,默认是当前虚拟机的ip地址)
   smtp_server 192.168.17.129
   #邮件服务器超时时间(暂不配置,默认即可)
   smtp_connect_timeout 30
   #当前虚拟机的IP地址
   router_id 192.168.17.129
}

vrrp_script Monitor_Nginx {
 script "/etc/keepalived/nginx_check.sh"    #检测脚本执行的路径
 interval 2                             #检测脚本执行的间隔
 weight 2                              #检测脚本执行的权重
}

vrrp_instance VI_1 {
    state MASTER       # 标识这个机器是MASTER(主服务器)还是BACKUP(备服务器)
    interface ens33      # 当前机器的网卡名称  
    virtual_router_id 51  # 虚拟路由的编号,主备必须一致
    priority 100         # 主、备机取不同的优先级,主机值较大,备份机值较小
    advert_int 1         # VRRP Multicast广播周期秒数,即每隔一秒检测是否宕机
    authentication {
        auth_type PASS   #(VRRP认证方式)
        auth_pass 1111   #(密码)
    }
    track_script {
		Monitor_Nginx # 调用nginx进程检测脚本
	}
    virtual_ipaddress {
        192.168.17.50  # 给两台Nginx服务器绑定的虚拟ip地址
    }
}

(6) Adicionado script de detecção de keepalived,vim /etc/keepalived/nginx_check.sh

#!/bin/bash
if [ "$(ps -ef | grep "nginx: master process" | grep -v grep )" == "" ]
 then
 killall keepalived
fi

(7) Inicie o serviço keepalived,service keepalived start

(8) Instale o servidor de espera Nginx e mantenha-o vivo em outro sistema Linux, as etapas são conforme descrito acima, mas a parte vermelha do conteúdo acima precisa ser modificada no arquivo de configuração de keepalived

3. Resultados da operação

O navegador insere o endereço ip virtual 192.168.17.50 para acessar o servidor principal, finaliza o processo Nginx do servidor principal, e este endereço ip virtual acessará o servidor em espera

Dez, análise do princípio Nginx

Olhando para o processo Nginx, você encontrará dois processos, trabalhador e mestre.

Insira a descrição da imagem aqui

O modelo de rosca de trabalho é mostrado na figura:

Insira a descrição da imagem aqui

O princípio de funcionamento é mostrado na figura:

Insira a descrição da imagem aqui

Os benefícios de usar um mestre e vários trabalhadores:

  1. Propício para implantação dinâmica: o trabalhador que pega a solicitação executará a tarefa e o restante dos trabalhadores ociosos atualizarão o arquivo de configuração, e as informações do arquivo de configuração serão atualizadas automaticamente quando a tarefa do trabalhador for concluída.

  2. Cada trabalhador é um processo independente, se um dos trabalhadores tiver um problema, isso não afetará os outros trabalhadores

Três problemas comuns:

  1. Quantos trabalhadores são adequados?

Resposta: O número de workers é igual ao número de CPUs do servidor, é melhor modificá-lo no bloco global do arquivo de configuração Nginx.

  1. Quantas conexões de um trabalhador serão ocupadas por uma solicitação?

Resposta:
(1) Se for apenas um recurso estático, ocupará 2 conexões (recebendo e retornando duas conexões)

(2) Se o Nginx for usado como um servidor proxy para usar o Tomcat para processar recursos dinâmicos, ele levará até 4 conexões

  1. Como calcular o número máximo simultâneo de Nginx?

Resposta:
(1) Se for apenas um recurso estático, o número máximo simultâneo = o número de trabalhadores * o número máximo de conexões por trabalhador / 2

(2) Se o Nginx for usado como um servidor proxy para usar o Tomcat para processar recursos dinâmicos, o
número máximo simultâneo = o número de trabalhadores * o número máximo de conexões por trabalhador / 4

Acho que você gosta

Origin blog.csdn.net/weixin_49343190/article/details/112006564
Recomendado
Clasificación