Опа !! ЧЕГАМОС EM MAIS UMA PARTE DA SÉRIE SOBRE NGINX.
Neste Capítulo, APRANDERMOS COMO AGIBAL O Código Fonte Do Nginx No Ubuntu.
Quais как Vantagens? 😎
- Flexibilidade;
- Утилизаção de Módulos de Terceiros;
- Акпликар, как последние представители Correções de Segurança Mais.
Как сомвантагенс? 😢
- É Mais Complemo;
- Темп по требованию МАИС.
Докуациозно к тому, что que prexiso 👷
Precisamos Instalar Algumas Ferramentas Para «Buildar» E Adicionar Supupe Определенные функции Funcoliadades Do Nginx. Сан-элас:
apt update; apt install -y curl \ vim \ # Será nosso editor <3 build-essential \ # Serve para "buildar" gcc \ # " para compilar o código escrito em C systemd \ # " para gerenciar o serviço do servidor libgd-dev \ # " para o uso do módulo de otimização de imagem (será mostrado em outro capítulo) libpcre3-dev \ # " para funções do Core e da diretiva Rewrite, Location (RegExp em geral) libssl-dev \ # " para utilizar SSL libmaxminddb-dev \ # " para usar um módulo de terceiro para GeoIP2 zlib1g-dev # " para otimização com GZIP
Ferramentas Instaladas, Vamos Baixar Nosso Nginx. Neste Capítulo, Utilizaremos A Versão 1.21.
Baixá-la é smples, Baasta Executar O Comando Abaixo Em Seu Terminal.
# Baixa e extrai curl -sSLo- http://nginx.org/download/nginx-1.21.2.tar.gz | \ tar -xzvf - # Acessa a pasta criada cd nginx-1.21.2
Ótimo! Baixamos! Агора É Hora de Usar, как Ferramentas Baixadas Para, соучастник o nginx. 🎉🎉.
IREI DEICAR O Código Celluge E DEPOIS EXPAREI CADA UMA DAS Флаги Отказ
# Configura os diretórios e # quais módulos o Nginx deverá instalar ./configure \ \ --prefix=/etc/nginx \ --sbin-path=/usr/sbin/nginx \ --conf-path=/etc/nginx/nginx.conf \ --http-log-path=/var/log/nginx/access.log \ --error-log-path=/var/log/nginx/error.log \ --pid-path=/run/nginx.pid \ --modules-path=/etc/nginx/modules-available \ \ --http-client-body-temp-path=/usr/local/nginx/client_body_temp \ --http-proxy-temp-path=/usr/local/nginx/proxy_temp \ --http-fastcgi-temp-path=/usr/local/nginx/fastcgi_temp \ --http-uwsgi-temp-path=/usr/local/nginx/uwsgi_temp \ --http-scgi-temp-path=/usr/local/nginx/scgi_temp \ \ --with-debug \ --with-compat \ --with-pcre-jit \ --with-pcre \ --user=www-data \ --group=www-data \ --with-threads \ \ --with-http_ssl_module \ --with-http_stub_status_module \ --with-http_realip_module \ --with-http_auth_request_module \ --with-http_v2_module \ --with-http_dav_module \ --with-http_slice_module \ --with-http_addition_module \ --with-http_gunzip_module \ --with-http_gzip_static_module \ --with-http_image_filter_module=dynamic \ --with-http_sub_module \ --with-stream=dynamic \ --with-stream_ssl_module \ \ --without-mail_pop3_module \ --without-mail_imap_module \ --without-mail_smtp_module # Compila o Nginx já configurado make # Instala o Nginx no sistema make install
ApareCeu Algum erro? Não? 🎉🎉. Ótimo! Finalizamos a Instalação do Servidor. Para Testar, Basta Iniciar O Serviço Do Nginx E Abrir O Невегадор http://localhost 🖥.
/usr/sbin/nginx
NoS Proximos Capítulos, AO Findar UM Módulo Irei Unitearar Qual Флаг deverá ser utilizada para instalá-lo com o Nginx. ELA Deverá Ser Utilizada Нет Momento Da Commitação.
Explicação das flags 🚩
NãO é Obrigatório Saber Todas, Mas é Gathere Saber o que está instalando e para que cada Флаг обслуживать.
Configurações de Caminhos
О Сценарий Настроить
Убедитесь, что Caminhos Para Arquivos Binários E de Configuração Nginx E PARA BIBLIOTECAS Engance Mono PACRE OU SSL, FIM DE Vinculá-Los Ao Binário Nginx.
- {‘dt’: {‘code’: [‘—prefix =’, {’em’: ‘<Путь>’}]}}
- {‘dd’: [‘Определить директор Diretório DAS Configurações do Nginx. Padrão:’, {’em’: ‘/usr/local/nginx’}]}
- {‘dt’: {‘code’: [‘-Сбин- путь =’, {’em’: ‘<Путь>’}]}}
- {‘dd’: [‘Определите oome e o Caminho do Arquivo Executável. Padrão:’, {’em’: ‘<префикс>/sbin/nginx.’}]}
- {‘dt’: {‘code’: [‘—conf- путь =’, {’em’: ‘<Путь>’}]}}
- {‘dd’: [‘Определите принципиальную девичку Arquivo de Configuração do nginx. Ésisível carregar o Nginx comm rarquivo de Configuração Diferente, Баста Усир флаг’, {‘code’: ‘-c <файл>’}, ‘. Padrão:’, {’em’: ‘<префикс>/nginx.conf’}]}
- {‘dt’: {‘code’: [‘—http-log-path =’, {’em’: ‘<Путь>’}]}}
- {‘dd’: [‘Определите директора Arquivo Do Log De Acesso Geral. Essivel Configurar ru Arquivo Diferente Para Cada Servidor Virtual Usango a Diretiva’, {‘a’: [‘access_log.’, {‘href’: ‘https://nginx.org/r/access_log’}]}, ‘. Padrão:’, {’em’: ‘<префикс>/logs/access.log’}]}
- {‘dt’: {‘code’: [‘- log-path =’, {’em’: ‘<Путь>’}]}}
- {‘dd’: [‘Определите директора Arquivo Do Log De erro Geral. Essivel Configurar ru Arquivo Diferente Para Cada Servidor Virtual Usango a Diretiva’, {‘a’: [‘журнал ошибок’, {‘href’: ‘https://nginx.org/r/access_log’}]}, ‘. Padrão:’, {’em’: ‘<префикс>/logs/error.log’}]}
- {‘dt’: {‘code’: [‘—pid- путь =’, {’em’: ‘<Путь>’}]}}
- {‘dd’: [‘Определите oome do arquivo que conterá o pid (id do lesso mestre). Головной проход edrar o Местный Нет Аркиво’, {‘code’: ‘nginx.conf.’}, ‘. Padrão:’, {’em’: ‘<префикс>/logs/nginx.pid’}]}
- {‘dt’: {‘code’: [‘—модул- путь =’, {’em’: ‘<Путь>’}]}}
- {‘dd’: [‘Определите o Diretório Onde OS Módulos Dinâmicos Serão Instalados. Padrão:’, {’em’: ‘< префикс >>/модули/’}]}
Configurações de deretórios de dados temberários
- {‘dt’: {‘code’: [‘- HTTP-клиент-тело-темп- путь =’, {’em’: ‘<Путь>’}]}}
- {‘dd’: [‘Определить o Диреторио Эм Квер Сере Армазенадос Дас Реквизисис. Padrão:’, {’em’: ‘< префикс>/client_body_temp’}]}
- {‘dt’: {‘code’: [‘—http-proxy-temp-path =’, {’em’: ‘<Путь>’}]}}
- {‘dd’: [‘Определите o Diretório EM Que Serão Armazenados Temporrete OS Dados Cenommidos Ao Utilizar Proxy Reverso. Padrão:’, {’em’: ‘< префикс>/proxy_temp’}]}
- {‘dt’: {‘code’: [‘—http-fastcgi-temp- путь =’, {’em’: ‘<Путь>’}]}}
- {‘dd’: [‘Определить o Diretório EM Que Serão Armazenados Diporarirete OS Dados Cenommidos AO Utilizar Por Servidores FastCGI. Padrão:’, {’em’: ‘< префикс>/fastcgi_temp’}]}
- {‘dt’: {‘code’: [‘—http-uwsgi-temp-path =’, {’em’: ‘<Путь>’}]}}
- {‘dd’: [‘Определить o Diretório Em Que Serão Armazenados Temporete OS Dados Chilitys Ao Utilizar Por Servidores UWSGI. Padrão:’, {’em’: ‘< префикс>/uwsgi_temp’}]}
- {‘dt’: {‘code’: [‘- http-scgi-temp- путь =’, {’em’: ‘<Путь>’}]}}
- {‘dd’: [‘Определите o Diretório EM Que Serão Armazenados Temporete OS Dados Chenbmidos Ao Utilizar Por Servidores SCGI. Padrão:’, {’em’: ‘< префикс>/scgi_temp’}]}
Configurações gerais do nginx
- {‘dt’: {‘code’: ‘—с участием -отлаживать’}}
- {‘dd’: ‘Habilita OS Logs de Debug.’}
- {‘dt’: {‘code’: ‘—With-Compat’}}
- {‘dd’: ‘Habilita Compatibilidade Com Módulos Dinâmicos.’}
- {‘dt’: {‘code’: ‘—с участием- PCRE-JIT’}}
- {‘dd’: ‘Habilita Biblioteca PCRE COM SOPUSE A «Очень во временной компиляции». Rever Biblioteca PCRE Instalada.’}
- {‘dt’: {‘code’: ‘—with-PCre’}}
- {‘dd’: ‘Força o uso da biblioteca pcre. Rever Biblioteca PCRE Instalada.’}
- {‘dt’: {‘code’: [‘—user =’, {’em’: ‘имя пользователя’}]}}
- {‘dd’: [‘Определить o Usuário SEM Privilegios Cujas Credentiase Serão Usadas Nos Processos de Trabalho (услуги работника). Padrão:’, {’em’: ‘никто’}]}
- {‘dt’: {‘code’: [‘—group =’, {’em’: ‘имя группы’}]}}
- {‘dd’: [‘Определить o nome do grupo sem privilegios cujas credentiasis serão usadas nos processos de Trabalho (работники услуг). Padrão: O Mesmo que’, {’em’: ‘—Пользователь’}]}
- {‘dt’: {‘code’: ‘- с нитями’}}
- {‘dd’: ‘Хабилита нить бассейна. ELAS SãO USADAS PARA LEITURA E ARVIO DE ARQUIVOS SEM BLOQUEAR OS PROCESTOS DE TRABALHO.’}
Ativando Módulos.
O nginx состоит из них um convunto de módulos EsceiCos de Função, que são commolados com o Сценарий Настроить
junto com routras opções de construção.
SE VOCê Quire Ativar UM Módulo que não é «buadaado» POR Padrão, используйте Prefixo --with-
Отказ
- {‘dt’: {‘code’: ‘—with-http_ssl_module.’}}
- {‘dd’: [‘Habilita Suorde AO Protocolo HTTPS PARA UM Servidor Virtual. Recer Biblioteca’, {‘a’: [‘openssl’, {‘href’: ‘https://www.openssl.org/’}]}]}
- {‘dt’: {‘code’: ‘—with-http_stub_status_module.’}}
- {‘dd’: [‘Habilita O Módulo’, {’em’: ‘ngx_http_stub_status_module.’}, ‘. ELE É USADO POR PLATAFOMMAS DE MÉTRICA OU Gerencaito de * logs *.’]}
- {‘dt’: {‘code’: ‘—with-http_realip_module.’}}
- {‘dd’: [‘Habilita O Módulo’, {’em’: ‘ngx_http_realip_module.’}, ‘. ELE é Usado Para alterar o Endereço Do Cliente. Com o CloudFlare, POR Exemplo, правдивый идентификационный адрес O IP Real Do Usuário.’]}
- {‘dt’: {‘code’: ‘—with-http_auth_request_module.’}}
- {‘dd’: [‘Habilita O Módulo’, {’em’: ‘ngx_http_auth_request_module.’}, ‘. ELE É UTILIZADO PARA INFIMETACAO DE SUBREQUISIççES PARA AUTENTCECEACHãO.’]}
- {‘dt’: {‘code’: ‘—with-http_v2_module.’}}
- {‘dd’: ‘Habilita Suporte AO Protocolo HTTP/2.’}
- {‘dt’: {‘code’: ‘—with-http_dav_module.’}}
- {‘dd’: [‘Habilita O Módulo’, {’em’: ‘ngx_http_dav_module.’}, ‘. ELE é Utilizado Para Gerencaito de Arquivos Com o Protocolo WebDav.’]}
- {‘dt’: {‘code’: ‘—with-http_slice_module.’}}
- {‘dd’: [‘Habilita O Módulo’, {’em’: ‘ngx_http_slice_module.’}, ‘. ELE é Usado Para Discire UMA Requisição. ISSO Purites Recornar Partes de um ruquivo de Acordo Com ou Cabeçalho Range, POR Exemplo.’]}
- {‘dt’: {‘code’: ‘—with-http_addition_module.’}}
- {‘dd’: [‘Habilita O Módulo’, {’em’: ‘ngx_http_addition_module.’}, ‘. ELE é Usado Para Modififar UMA RESPOSTA ADICIONANDO UM Conteúdo Antes OU DEPOIS DELA.’]}
- {‘dt’: {‘code’: ‘—with-http_gunzip_module.’}}
- {‘dd’: [‘Habilita O Módulo’, {’em’: ‘ngx_http_gunzip_module.’}, ‘. ELE é Utilizado Para Compactação комбинированный’, {’em’: ‘гzip.’}]}
- {‘dt’: {‘code’: ‘—with-http_gzip_static_module.’}}
- {‘dd’: [‘Habilita O Módulo’, {’em’: ‘ngx_http_gzip_static_module.’}, ‘. ELE é Utilizado Para Transferência de Arquivos Compactados Com’, {’em’: ‘гzip.’}, ‘.’]}
- {‘dt’: {‘code’: [‘—with-http_image_filter_module =’, {’em’: ‘динамический’}]}}
- {‘dd’: [‘Habilita O Módulo’, {’em’: ‘ngx_http_image_filter_module.’}, ‘. ELE Para Modifistar/alterar Arquivos de Images (JPEG, GIF, PNG, WebP).’]}
- {‘dt’: {‘code’: ‘—with-http_sub_module.’}}
- {‘dd’: [‘Habilita O Módulo’, {’em’: ‘ngx_http_sub_module.’}, ‘. ELE Premate Substituir Trechos da Resposta.’]}
- {‘dt’: {‘code’: [‘—with Stream =’, {’em’: ‘динамический’}]}}
- {‘dd’: [‘Habilita O Módulo’, {’em’: ‘ngx_stream_core_module.’}, ‘Para Proxy TCP/UDP E Balanço de Carga Genérico.’]}
- {‘dt’: {‘code’: ‘—with-stream_ssl_module.’}}
- {‘dd’: [‘Habilitar O Supore Ao Protocolo SSL/TLS PARA Módulo’, {’em’: ‘ngx_stream_core_module.’}, ‘.’]}
Desativando módulos
Alguns Módulos Como Rewrite E http São «Buildados» POR Padrão. Para desativá-los, basta usar o prefixo - with-
Отказ
- {‘dt’: {‘code’: ‘—без- mail_pop3_module.’}}
- {‘dd’: [‘Десабил o протокол’, {’em’: ‘Поп3.’}, ‘пара О. Proxy de Email.’]}
- {‘dt’: {‘code’: ‘—with-mail_imap_module.’}}
- {‘dd’: [‘Десабил o протокол’, {’em’: ‘Имип’}, ‘пара О. Proxy de Email.’]}
- {‘dt’: {‘code’: ‘—без- mail_smtp_module.’}}
- {‘dd’: [‘Десабил o протокол’, {’em’: ‘SMTP.’}, ‘пара О. Proxy de Email.’]}
Уфа !! Terminamos. 🥱🥱. Para Saber Autras Флаги , Basta Acessar O Link http://nginx.org/en/docs/configure.html.
Организанско Nossa estrutura 📝
SE VOCO ABRIR O ARQUIVO /etc/nginx/nginx.conf
Verá Que o Nginx Já deixou UMA Configuração Protta. EU NãO CURTO MUITO ESSA ESTRUTURA E ESSA Configuração, Então Mudá-La-Ei, Mas Este Passo É Tomementmente Opcional e Fica de Acordo Com O Gosto de Cada Dev.
# Cria as pastas necessárias mkdir -p /etc/nginx/{modules-enabled,config_default,sites-available,sites-enabled,log_formats,snippets} /var/www/html # Move os arquivos de exemplo mv /etc/nginx/*.default /etc/nginx/config_default
Agora vamos reecrever o arquivo de configuração /etc/nginx/nginx.conf
COM O Conteúdo Abaixo:
Фальта Поуко! COMO Removemos o Código Padrão, Nosso Servidor Parou de Funciapar. Precisamos Crar Bom Novo Servidor Virtual, Белеза? 👍.
vim /etc/nginx/sites-available/valdeir.dev.conf
Нет погибший DIGITE A Configuração Abaixo:
server { server_name _; index index.html index.htm; autoindex on; location / { try_files $uri $uri/ =404; } }
Ótimo! Агора é beverio Crio Crar Bm Link Simbólico Нет Диреторио Установленные сайты PARA ATIVAR O Site. AINDA NO VIM, APERTE Esc Duas Vezes e Digite:
:w:! ln -s %:p /etc/nginx/sites-enabled :q
APOS CADA MODIFIFASçãO NOS ARQUIVOS de Configuração, é Nebsário Recarregar o Nginx Отказ
/usr/sbin/nginx -s reload
Criando Serviço нет Ubuntu
Este Passo Também é. ELE Permitirá Gerenciar o Nginx Através do Systemd
(Автоинативный, Парар, Recarregar etc).
Эбра! Basta Criar O Arquivo /lib/systemd/system/nginx.service
COM O Código Abaixo:
[Unit] Description=The NGINX HTTP and reverse proxy server After=syslog.target network-online.target remote-fs.target nss-lookup.target Wants=network-online.target [Service] Type=forking PIDFile=/run/nginx.pid ExecStartPre=/usr/sbin/nginx -t ExecStart=/usr/sbin/nginx ExecReload=/usr/sbin/nginx -s reload ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target
O Valor de Pidfile
ДЕВЕРА СЕР И «АО ДА … флаг - PID-путь
que Usamos Durante Commitação.
O Valor de Execstartpre
, Execstart
е Execreload
ДЕВЕРА СЕР И «АО ДА … флаг --sbin-path
Отказ
Вывод
Chegamos Ao Final De Mais Um Capítulo. Nos próximos, Aprienderemos o Que e Como Funciapam As Trankais Diretivas Do Nginx; Artrendemos Também Como Melhorar E Segurança e Performance De Nossos.
Оригинал: «https://dev.to/valdeirpsr/serie-nginx-2-compilando-o-nginx-3f9o»