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 aNo 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.
O 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.tiposComo 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 -keyoutservidor.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 -yAgora, 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
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.