Instalando o nginx:
Nginx está disponível no repositório oficial do Pacote do CentOS 8. Então, é muito fácil instalar.
Primeiro, atualize o cache do repositório de pacotes DNF da seguinte forma:
$ sudo dnf makecache
Agora, instale o nginx com o seguinte comando:
$ sudo dnf install nginx
Para confirmar a instalação, pressione Y e depois pressione .
Nginx deve ser instalado.
Gerenciando o serviço Nginx:
Por padrão, nginx o serviço deve ser inativo (não correndo) e desabilitado (Não iniciará automaticamente na inicialização).
$ sudo status systemctl nginx
Você pode começar o nginx Serviço da seguinte forma:
$ sudo systemctl start nginx
nginx o serviço deve ser correndo.
$ sudo status systemctl nginx
Agora, adicione nginx Serviço para a inicialização do sistema da seguinte forma:
$ sudo systemctl atabille nginx
Configurando o firewall:
Você deve configurar o firewall para permitir o acesso à porta HTTP 80 e à porta HTTPS 443 para acessar o servidor da web nginx de outros computadores na rede.
Você pode permitir o acesso à porta HTTP e HTTPS com o seguinte comando:
$ sudo firewall-cmd --add-service = http, https --permanente
Agora, para que as mudanças entrem em vigor, execute o seguinte comando:
$ sudo firewall-cmd--reload
Testando o servidor da web:
Você deve conhecer o endereço IP ou o nome de domínio do servidor da web nginx para acessá -lo.
Você pode encontrar o endereço IP do seu servidor Web Nginx com o seguinte comando:
$ ip a
No meu caso, o endereço IP é 192.168.20.175. Vai ser diferente para você. Então, certifique -se de substituí -lo por seu a partir de agora.
Agora, visite http: // 192.168.20.175 do seu navegador da web. Você deve ver a seguinte página. Isso significa que o servidor da web nginx está funcionando.
Arquivos de configuração do nginx:
Os arquivos de configuração do servidor nginx web estão no /etc/nginx/ diretório.
$ árvore /etc /nginx
/etc/nginx/nginx.conf é o principal arquivo de configuração nginx.
O diretório raiz da web padrão do servidor da web nginx é /usr/share/nginx/html/. Então, é aqui que você deve manter os arquivos do seu site.
Configurando um servidor Web básico:
Nesta seção, vou mostrar como configurar um servidor web nginx básico.
Primeiro, faça um backup do arquivo de configuração NGINX original com o seguinte comando:
$ sudo mv -v/etc/nginx/nginx.conf/etc/nginx/nginx.conf.original
Agora, crie um novo arquivo de configuração NGINX da seguinte forma:
$ sudo nano/etc/nginx/nginx.conf
Agora, digite as seguintes linhas no /etc/nginx/nginx.conf Arquive e salve o arquivo.
usuário nginx nginx;Aqui, do utilizador a opção é usada para definir o usuário e o grupo de execução nginx como nginx respectivamente.
O error_log a opção é usada para definir o caminho do arquivo de log de erro como /var/log/nginx/erro.registro. É aqui que os erros relacionados ao servidor nginx serão armazenados.
A configuração principal do servidor nginx é definida no servidor Seção dentro do http seção. Você pode definir mais de um servidor Seção dentro do http Seção, se necessário.
No servidor seção,
ouvir A opção é usada para configurar o nginx para ouvir a porta 80 (porta HTTP) para solicitações da Web.
nome do servidor A opção é usada para definir um ou mais nomes de domínio para o servidor da web nginx. Se as configurações do DNS estiverem corretas, você poderá acessar o Nginx Web Server usando esses nomes de domínio.
access_log é usado para definir o caminho do arquivo de log de acesso para /var/log/nginx/acesso.registro. Quando alguém tenta acessar o servidor da web nginx, as informações de acesso (i.e. Endereço IP, URL, código de status HTTP) será registrado neste arquivo.
O localização A opção é usada para definir o diretório raiz do servidor web nginx.
Aqui o raiz diretório é /usr/share/nginx/html/.
É aqui que todos os arquivos do site devem ser mantidos. O índice Conjuntos de opções índice.html Como o arquivo padrão para servir se nenhum arquivo específico for solicitado. Por exemplo, se você visitar http: // 192.168.20.175/myfile.HTML, então você Nginx retornará meu arquivo.html arquivo. Mas, se você visitar http: // 192.168.20.175/, então o nginx enviará o índice.arquivo html como nenhum arquivo específico foi solicitado.
Agora, remova todos os arquivos do /usr/share/nginx/html/ diretório (raiz da web) da seguinte forma:
$ sudo rm -rfv/usr/share/nginx/html/*
Agora, crie um novo índice.html arquivo no /usr/share/nginx/html/ diretório da seguinte maneira:
Agora, digite as seguintes linhas em índice.html Arquive e salve o arquivo.
© 2020 Linuxhint.com
Agora, reinicie nginx Serviço da seguinte forma:
$ sudo systemctl reinicie nginx
Agora, visite http: // 192.168.20.175 do seu navegador da web e você deve ver a página seguinte. Parabéns! Você configurou seu primeiro servidor da web nginx.
Você pode configurar páginas de erro no nginx. Por exemplo, se uma página/arquivo/diretório não estiver disponível, o código de status HTTP 404 será devolvido ao navegador. Você pode definir uma página de erro HTML personalizada para o código de status HTTP 404, que será devolvido ao navegador.
Para fazer isso, adicione a seguinte linha no servidor Seção de nginx.conf arquivo.
servidorAgora, crie um arquivo 404.html Na raiz da web nginx /usr/share/nginx/html/ do seguinte modo:
$ sudo nano/usr/share/nginx/html/404.html
Agora, digite as seguintes linhas em 404.html e salve o arquivo.
página não encontrada
© 2020 Linuxhint.com
Agora, reinicie nginx Serviço da seguinte forma:
$ sudo systemctl reinicie nginx
Agora, tente acessar um caminho inexistente (http: // 192.168.20.175/nopage.html) e você deve ver a seguinte página de erro.
Se o 404.html O arquivo está em um caminho de sistema de arquivos diferente (digamos /usr/share/nginx/html/erros/ diretório), você pode mapear o URL /404.html a ele o seguinte:
servidorAgora, faça um novo diretório /usr/share/nginx/html/erros/ do seguinte modo:
$ sudo mkdir/usr/share/nginx/html/erros
Agora, crie um novo arquivo 404.html no diretório /usr/share/nginx/html/erros/ do seguinte modo:
$ sudo nano/usr/share/nginx/html/erros/404.html
Agora, digite as seguintes linhas no 404.html Arquive e salve o arquivo.
Agora, reinicie nginx Serviço da seguinte forma:
$ sudo systemctl reinicie nginx
Agora, tente acessar um caminho inexistente (http: // 192.168.20.175/nopage.html) e você deve ver a página de erro atualizada.
Da mesma maneira, você pode definir a página de erro para outros códigos de status HTTP.
Você também pode definir a mesma página de erro para vários códigos de status HTTP. Por exemplo, para definir a mesma página de erro /404.html Para os códigos de status HTTP 403 e 404, escreva o error_page Opção da seguinte forma:
error_page 403 404/404.html;Configurando logs:
Em nginx, o error_log e access_log As opções são usadas para registrar mensagens de erro e informações de acesso.
O formato do error_log e access_log As opções são:
error_log/path/to/error/log/file [opcional: personaliza-name];Você pode definir seu próprio log de erros e acessar formatos de log se quiser.
Para fazer isso, use o log_format opção no http Seção para definir seu formato de log personalizado da seguinte forma.
httpAqui, o nome do formato de log é simples. Algumas variáveis Nginx são usadas para definir o formato de log personalizado. Visite o manual de variáveis incorporadas Nginx para aprender sobre todas as variáveis Nginx.
O formato de log personalizado deve ser incluído em citações únicas. O formato de log pode ser definido em uma única linha ou em várias linhas. Eu mostrei como definir o formato de log em várias linhas neste artigo. Você não terá nenhum problema com o formato de log de linha única, confie em mim!
Uma vez que o formato de log simples é definido, access_log A opção é usada para dizer ao Nginx para usá -lo como log de acesso.
Da mesma maneira, você pode definir um formato de log de erros personalizado usando o error_log opção.
Eu só configurei o formato de log personalizado para o log de acesso neste artigo.
Agora, reinicie nginx Serviço da seguinte forma:
$ sudo systemctl reinicie nginx
Agora, você pode monitorar o arquivo de log de acesso da seguinte forma:
$ sudo cauda -f/var/log/nginx/acesso.registro
Você também pode monitorar o arquivo de log de erros da seguinte maneira:
$ sudo cauda -f/var/log/nginx/erro.registro
Se desejar, você pode monitorar o log de acesso e os arquivos de log de erros ao mesmo tempo da seguinte forma:
$ sudo cauda -f/var/log/nginx/erro, access.registro
Como você pode ver, o novo formato de log de acesso está sendo usado.
Negando o acesso a certos caminhos:
Você pode usar expressões regulares para corresponder a certos caminhos do URI e negar o acesso a ele no nginx.
Digamos que seu site é gerenciado pelo Git e você deseja negar o acesso ao .git/ diretório em sua raiz da web.
Para fazer isso, digite as seguintes linhas no servidor Seção de /etc/nging/nginx.conf arquivo:
servidorComo você pode ver, o acesso a qualquer caminho que contenha .git é negado.
Configurando a compactação:
Você pode compactar o conteúdo da web antes de enviá -los para o navegador usando gzip Para salvar o uso da largura de banda do servidor web nginx.
Eu tenho algumas imagens JPEG no /usr/share/nginx/html/imagens/ diretório.
Eu posso acessar essas imagens usando o caminho URI /imagens.
Para ativar a compactação GZIP apenas para as imagens JPEG no caminho URI /imagens, digite as seguintes linhas no servidor Seção de /etc/nginx/nginx.conf arquivo.
servidorAqui, gzip_comp_level é usado para definir o nível de compressão. Pode ser qualquer número de 1 a 9. Quanto maior o nível, menor o arquivo compactado será.
O arquivo só será comprimido se o tamanho do arquivo estiver acima gzip_min_length. Eu o defini para cerca de 100 kb neste exemplo. Então, os arquivos JPEG menores que 100 kb não serão compactados gzip.
O gzip_types é usado para definir o tipo MIME dos arquivos que serão compactados.
Você pode encontrar o tipo MIME em extensões de arquivo da seguinte forma:
$ grep jpg/etc/nginx/mímica.tipos
Como você pode ver, para .jpg ou .JPEG Extensão de arquivo, o tipo MIME é imagem/jpeg.
Você pode definir um ou mais tipos de mímica usando gzip_types opção.
Se você deseja definir vários tipos de MIME, separe -os com espaços da seguinte forma:
"Agora, reinicie nginx Serviço da seguinte forma:
$ sudo systemctl reinicie nginx
Como você pode ver, o nginx envia arquivos de imagem compactados GZIP para o navegador quando solicitado.
Como você pode ver na captura de tela abaixo, o arquivo compactado GZIP é menor que o arquivo original.
$ sudo cauda -f/var/log/nginx/acesso.registro
Ativando HTTPS:
Você pode ativar o SSL no nginx com muita facilidade. Nesta seção, vou mostrar como definir o certificado SSL autoassinado no nginx.
Primeiro, navegue para o /etc/ssl/ diretório da seguinte maneira:
$ cd /etc /ssl
Agora, gerar uma chave SSL servidor.chave e certificado servidor.Crt com o seguinte comando:
$ sudo openssl req -x509 -Nodes -Days 365 -NewKey RSA: 2048 -Keyout
servidor.Chave -Out servidor.Crt
OBSERVAÇÃO: Você deve ter OpenSSL instalado para que isso funcione. Se o comando OpenSSL não estiver disponível, instale OpenSSL com o seguinte comando:
$ sudo dnf install OpenSSL -y
Agora, digite seu código de país de 2 letras (i.e. EUA para os EUA, Reino Unido para o Reino Unido, RU para a Rússia, CN para a China) e Press .
Agora, digite seu nome de estado/província e pressione .
Agora, digite o nome da sua cidade e pressione .
Agora, digite o nome da sua empresa e pressione .
Agora, digite o nome da unidade organizacional da sua empresa que usará este certificado e pressione .
Agora, digite o nome de domínio totalmente qualificado (FQDN) do seu servidor da web nginx e pressione . O certificado SSL será válido apenas se o servidor da web nginx for acessado usando este nome de domínio.
Agora, digite seu endereço de e -mail e pressione .
Seu certificado SSL deve estar pronto.
O certificado SSL e a chave devem ser gerados no /etc/ssl/ diretório.
$ ls -lh
Agora, abra o arquivo de configuração nginx /etc/nginx/nginx.conf e mudar ouvir porta para 443 e digite as seguintes linhas no servidor seção.
servidorAgora, reinicie nginx Serviço da seguinte forma:
$ sudo systemctl reinicie nginx
Na vida real, você terá a configuração correta do DNS. Mas, para fins de teste, eu configurei o nome de domínio local baseado em arquivos no computador que usei para acessar o servidor da web nginx do.
Se você quiser acompanhar, abra o /etc/hosts Arquivo o seguinte:
$ sudo nano /etc /hosts
Em seguida, adicione a seguinte linha ao /etc/hosts arquivo.
192.168.20.175 www.exemplo.com
Agora, tente visitar https: // www.exemplo.com e você deve ver a seguinte página. Você verá Sua conexão não é segura mensagem porque é um certificado autoassinado. Isso é bom apenas para fins de teste.
Na vida real, você estará comprando certificados SSL das autoridades de certificados (CAS) e as usarão. Então, você não verá esse tipo de mensagem.
Como você pode ver, o nginx serviu a página da web sobre https. Então, SSL está funcionando.
As informações SSL de www.exemplo.com.
Redirecionando solicitações HTTP para HTTPS:
Se alguém visitar seu site sobre o protocolo HTTP (http: // www.exemplo.com ou http: // 192.168.20.175) em vez de https (https: // www.exemplo.com), você não deseja rejeitar a solicitação HTTP. Se você fizer isso, você perderá um visitante. O que você realmente deve fazer é redirecionar o usuário para o site habilitado para SSL. É realmente simples de fazer.
Primeiro, abra o arquivo de configuração Nginx /etc/nginx/nginx.conf e criar um novo servidor Seção dentro do http Seção da seguinte forma:
httpEste é o final /etc/nginx/nginx.conf arquivo:
usuário nginx nginx;Agora, reinicie nginx Serviço da seguinte forma:
$ sudo systemctl reinicie nginx
Agora, se você tentar acessar http: // 192.168.20.175 ou http: // www.exemplo.com, você será redirecionado para https: // www.exemplo.com.
Então, é assim que você instala e configura o Nginx Web Server no CentOS 8. Obrigado por ler este artigo.