Nginx

Como instalar o Nginx e configurar no CentOS 8

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

Instalando o Nginx:

Nginx está disponível no repositório oficial de pacotes do CentOS 8. Então, é muito fácil de instalar.

Primeiro, atualize o cache do repositório de pacotes DNF da seguinte maneira:

$ sudo dnf makecache

Agora, instale o Nginx com o seguinte comando:

$ sudo dnf install nginx

Para confirmar a instalação, pressione Y e então pressione .

Nginx deve ser instalado.

Gerenciando o serviço nginx:

Por padrão, nginx serviço deve ser inativo (não está funcionando) e Desativado (não iniciará automaticamente na inicialização).

$ sudo systemctl status nginx

Você pode começar o nginx serviço da seguinte forma:

$ sudo systemctl start nginx

nginx serviço deve ser corrida.

$ sudo systemctl status nginx

Agora, adicione nginx serviço para a inicialização do sistema da seguinte forma:

$ sudo systemctl enable 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 às portas HTTP e HTTPS com o seguinte comando:

$ sudo firewall-cmd --add-service = http, https --permanent

Agora, para que as alterações tenham efeito, execute o seguinte comando:

$ sudo firewall-cmd --reload

Testando o servidor web:

Você deve saber o endereço IP ou nome de domínio do servidor da web Nginx para acessá-lo.

Você pode encontrar o endereço IP do seu servidor da web Nginx com o seguinte comando:

$ ip a

No meu caso, o endereço IP é 192.168.20.175. Será diferente para você. Portanto, certifique-se de substituí-lo pelo seu a partir de agora.

Agora, visite http: // 192.168.20.175 a partir do seu navegador. 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 da web Nginx estão no / etc / nginx / diretório.

$ tree / etc / nginx

/ etc / nginx / nginx.conf é o arquivo de configuração principal do 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 da Web básico:

Nesta seção, vou mostrar como configurar um servidor da 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 maneira:

$ sudo nano / etc / nginx / nginx.conf

Agora, digite as seguintes linhas no / etc / nginx / nginx.conf arquivo e salve o arquivo.

usuário nginx nginx;
worker_processes auto;
error_log / var / log / nginx / error.registro;
pid / run / nginx.pid;
 
eventos
trabalhador_conexões 1024;

 
http
inclua / etc / nginx / mime.tipos;
default_type application / octet-stream;
 
servidor
escute 80;
server_name example.com www.exemplo.com;
root / usr / share / nginx / html;
índice de índice.html;
access_log / var / log / nginx / access.registro;

Aqui, do utilizador opção é usada para definir o usuário e grupo de execução do Nginx para nginx respectivamente.

O error_log opção é usada para definir o caminho do arquivo de log de erros para / var / log / nginx / error.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,

ouço opção é usada para configurar o Nginx para ouvir a porta 80 (porta HTTP) para solicitações da web.

nome do servidor opção é usada para definir um ou mais nomes de domínio para o servidor da web Nginx. Se as configurações de DNS estiverem corretas, você pode acessar o servidor da web Nginx usando esses nomes de domínio.

access_log é usado para definir o caminho do arquivo de log de acesso para / var / log / nginx / access.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ão registrados neste arquivo.

O localização 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 irá retornar meu arquivo.html Arquivo. Mas, se você visitar http: // 192.168.20.175 /, o Nginx enviará a você o índice.arquivo html, pois 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 forma:

Agora, digite as seguintes linhas em índice.html arquivo e salve o arquivo.

Olá Mundo


© 2020 LinuxHint.com

Agora, reinicie nginx serviço da seguinte forma:

$ sudo systemctl restart nginx

Agora, visite http: // 192.168.20.175 do seu navegador da web e você deverá ver a página a seguir. 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á retornado ao navegador. Você pode definir uma página de erro HTML personalizada para o código de status HTTP 404, que será retornado 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 restart nginx

Agora, tente acessar um caminho inexistente (http: // 192.168.20.175 / n página.html) e você deverá ver a seguinte página de erro.

Se o 404.html arquivo está em um caminho de sistema de arquivos diferente (digamos / usr / share / nginx / html / errors / diretório), você pode mapear o URL / 404.html para ele da seguinte forma:

servidor

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


Agora, crie um novo diretório  / usr / share / nginx / html / errors / do seguinte modo:

$ sudo mkdir / usr / share / nginx / html / errors

Agora, crie um novo arquivo 404.html no diretório / usr / share / nginx / html / errors / do seguinte modo:

$ sudo nano / usr / share / nginx / html / errors / 404.html

Agora, digite as seguintes linhas no 404.html arquivo e salve o arquivo.

PÁGINA NÃO ENCONTRADA


VOLTO PARA CASA

Agora reinicie nginx serviço da seguinte forma:

$ sudo systemctl restart nginx

Agora, tente acessar um caminho inexistente (http: // 192.168.20.175 / n página.html) e você deve ver a página de erro atualizada.

Da mesma forma, 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:

No Nginx, o error_log e access_log opções são usadas para registrar mensagens de erro e acessar informações.

O formato do error_log e access_log as opções são:

error_log / path / to / error / log / file [opcional: custom-log-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 desejar.

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 simple '[$ time_iso8601] $ request_method $ request_uri'
'[$ status] ($ request_time) -> $ bytes_sent bytes';

servidor

access_log / var / log / nginx / access.log simples;


Aqui, o nome do formato de registro é 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 colocado entre aspas simples. O formato do registro pode ser definido em uma única linha ou em várias linhas. Mostrei como definir o formato do log em várias linhas neste artigo. Você não terá nenhum problema com o formato de registro de linha única, confie em mim!

Uma vez que o formato de log simples é definido, access_log opção é usada para dizer ao Nginx para usá-lo como registro de acesso.

Da mesma forma, você pode definir um formato de log de erro personalizado usando o error_log opção.

Eu apenas configurei o formato de registro personalizado para o registro de acesso neste artigo.

Agora, reinicie nginx serviço da seguinte forma:

$ sudo systemctl restart nginx

Agora, você pode monitorar o arquivo de registro de acesso da seguinte maneira:

$ sudo tail -f / var / log / nginx / access.registro

Você também pode monitorar o arquivo de log de erros da seguinte maneira:

$ sudo tail -f / var / log / nginx / error.registro

Se desejar, você pode monitorar o log de acesso e os arquivos de log de erros ao mesmo tempo, da seguinte maneira:

$ sudo tail -f / var / log / nginx / erro, acesso.registro

Como você pode ver, o novo formato de registro de acesso está sendo usado.

Negar acesso a certos caminhos:

Você pode usar expressões regulares para corresponder a certos caminhos de URI e negar acesso a ele no Nginx.

Digamos que seu site seja 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, acesse qualquer caminho que contenha .idiota é negado.

Configurando a compactação:

Você pode compactar o conteúdo da web antes de enviá-lo ao navegador usando gzip para economizar o uso da largura de banda do servidor da web Nginx.

Tenho algumas imagens JPEG no / usr / share / nginx / html / images / diretório.

Posso acessar essas imagens usando o caminho URI / imagens.

Para habilitar a compactação gzip apenas para 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 image / jpeg;


Aqui, gzip_comp_level é usado para definir o nível de compressão. Pode ser qualquer número de 1 a 9. Quanto mais alto o nível, menor será o arquivo compactado.

O arquivo só será compactado se o tamanho do arquivo for superior gzip_min_length. Eu o configurei para cerca de 100 KB neste exemplo. Portanto, arquivos JPEG menores que 100 KB não serão compactados em gzip.

gzip_types é usado para definir o tipo MIME dos arquivos que serão compactados.

Você pode encontrar o tipo MIME nas extensões de arquivo da seguinte maneira:

$ grep jpg / etc / nginx / mime.tipos

Como você pode ver, por .jpg ou .JPEG extensão de arquivo, o tipo MIME é imagem / jpeg.

Você pode definir um ou mais tipos MIME usando gzip_types opção.

Se você deseja definir vários tipos MIME, certifique-se de separá-los com espaços da seguinte forma:

"
gzip_types image / jpeg image / png image / gif;

Agora reinicie nginx serviço da seguinte forma:

$ sudo systemctl restart 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 tail -f / var / log / nginx / access.registro

Habilitando HTTPS:

Você pode habilitar SSL no Nginx muito facilmente. Nesta seção, vou mostrar como definir um certificado SSL autoassinado no Nginx.

Primeiro, navegue até o / etc / ssl / diretório da seguinte forma:

$ cd / etc / ssl

Agora, gere 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.servidor key -out.crt

NOTA: 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 EUA, Reino Unido para Reino Unido, RU para Rússia, CN para China) e imprensa .

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 de 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 ouço porta para 443 e digite as seguintes linhas no servidor seção.

servidor

ssl on;
ssl_certificate / etc / ssl / server.crt;
ssl_certificate_key / etc / ssl / server.chave;

Agora, reinicie nginx serviço da seguinte forma:

$ sudo systemctl restart nginx

Na vida real, você terá a configuração de DNS correta. Mas, para fins de teste, configurei o nome de domínio baseado em arquivo local no computador que usei para acessar o servidor da web Nginx de.

Se você quiser acompanhar, abra o / etc / hosts arquivo da seguinte forma:

$ 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ê comprará certificados SSL de autoridades de certificação (CAs) e os usará. Então, você não verá este tipo de mensagem.

Como você pode ver, o Nginx veiculou a página da web em HTTPS. Então, SSL está funcionando.

As informações SSL de www.exemplo.com.

Redirecionando solicitações de HTTP para HTTPS:

Se alguém visitar seu site por meio do protocolo HTTP (http: // www.exemplo.com ou http: // 192.168.20.175) em vez de HTTPS (https: // www.exemplo.com), você não quer 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. É muito 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
escute 80;
server_name www.exemplo.com;
retornar 301 https: // www.exemplo.com $ request_uri;


Esta é a final / etc / nginx / nginx.conf Arquivo:

usuário nginx nginx;
worker_processes auto;
error_log / var / log / nginx / error.registro;
pid / run / nginx.pid;
eventos
trabalhador_conexões 1024;

http
inclua / etc / nginx / mime.tipos;
default_type application / octet-stream;
log_format simple '[$ time_iso8601] $ request_method $ request_uri'
'[$ status] ($ request_time) -> $ bytes_sent bytes';
 
servidor
escute 80;
server_name www.exemplo.com;
retornar 301 https: // www.exemplo.com $ request_uri;

servidor
escute 443;
server_name www.exemplo.com;
ssl on;
ssl_certificate / etc / ssl / server.crt;
ssl_certificate_key / etc / ssl / server.chave;
access_log / var / log / nginx / access.log simples;
localização /
root / usr / share / nginx / html;
índice de índice.html;

localização / imagens
gzip on;
gzip_comp_level 9;
gzip_min_length 100000;
gzip_types image / 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 restart 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 servidor web Nginx no CentOS 8. Obrigado por ler este artigo.

Melhores jogos de linha de comando para Linux
A linha de comando não é apenas sua maior aliada ao usar o Linux - ela também pode ser uma fonte de entretenimento porque você pode usá-la para jogar ...
Melhores aplicativos de mapeamento de gamepad para Linux
Se você gosta de jogar no Linux com um gamepad em vez de um teclado típico e sistema de entrada de mouse, existem alguns aplicativos úteis para você. ...
Ferramentas úteis para jogadores de Linux
Se você gosta de jogar no Linux, é provável que tenha usado aplicativos e utilitários como Wine, Lutris e OBS Studio para melhorar a experiência de jo...