Como instalar o nginx e configurar no CentOS 8

Como instalar o nginx e configurar no CentOS 8
Nginx é um servidor web rápido e leve. Os arquivos de configuração do nginx são realmente simples e fáceis de trabalhar. É uma ótima alternativa ao servidor da Web Apache. Neste artigo, vou mostrar como instalar e configurar o Nginx Web Server no CentOS 8. Então vamos começar.

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;
trabalhador_processos automaticamente;
error_log/var/log/nginx/erro.registro;
pid /run /nginx.pid;
Eventos
trabalhador_connections 1024;

http
incluir/etc/nginx/mímica.tipos;
default_type Application/Octet-Stream;
servidor
Ouça 80;
Exemplo server_name.com www.exemplo.com;
root/usr/share/nginx/html;
ÍNDICE ÍNDICE.html;
access_log/var/log/nginx/acesso.registro;

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.

Olá Mundo


© 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.

Configurando páginas de erro:

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.

servidor
..
error_page 404 /404.html;
..

Agora, 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.

Erro 404


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:

servidor
..
error_page 404 /404.html;
Localização /404.html
root/usr/share/nginx/html/erros;

..

Agora, 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.

PÁGINA NÃO ENCONTRADA


VOLTO PARA CASA

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];
Access_log/Path/to/Access/Log/File [Opcional: Custom-Log-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.

http
..
log_format simples '[$ time_iso8601] $ request_method $ request_uri'
'[$ status] ($ request_time) -> $ bytes_sent bytes';
..
servidor
..
access_log/var/log/nginx/acesso.log simples;
..

Aqui, 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:

servidor
..
Localização ~ \.git
negar tudo;

..

Como 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.

servidor
..
Localização /imagens
gzip on;
gzip_comp_level 9;
gzip_min_length 100000;
gzip_types imagem/jpeg;

..

Aqui, 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:

"
GZIP_TYPES Image/JPEG Image/PNG Image/GIF;

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.

servidor
..
ssl on;
ssl_certificate/etc/ssl/servidor.CRT;
ssl_certificate_key/etc/ssl/servidor.chave;
..

Agora, 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:

http
..
servidor
Ouça 80;
Server_name www.exemplo.com;
retornar 301 https: // www.exemplo.com $ request_uri;

..

Este é o final /etc/nginx/nginx.conf arquivo:

usuário nginx nginx;
trabalhador_processos automaticamente;
error_log/var/log/nginx/erro.registro;
pid /run /nginx.pid;
Eventos
trabalhador_connections 1024;

http
incluir/etc/nginx/mímica.tipos;
default_type Application/Octet-Stream;
log_format simples '[$ time_iso8601] $ request_method $ request_uri'
'[$ status] ($ request_time) -> $ bytes_sent bytes';
servidor
Ouça 80;
Server_name www.exemplo.com;
retornar 301 https: // www.exemplo.com $ request_uri;

servidor
Ouça 443;
Server_name www.exemplo.com;
ssl on;
ssl_certificate/etc/ssl/servidor.CRT;
ssl_certificate_key/etc/ssl/servidor.chave;
access_log/var/log/nginx/acesso.log simples;
Localização /
root/usr/share/nginx/html;
ÍNDICE ÍNDICE.html;

Localização /imagens
gzip on;
gzip_comp_level 9;
gzip_min_length 100000;
gzip_types imagem/jpeg;

error_page 404 /404.html;
Localização /404.html
root/usr/share/nginx/html/erros;

Localização ~ \.git
negar tudo;


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.