Академический Документы
Профессиональный Документы
Культура Документы
Instalao
O Nginx roda na plataforma GNU/Linux, no Microsoft Windows, ou no OsX da Apple. No
entanto, esta abordagem ser em GNU/Linux. Se voc usa alguma distribuio GNU/Linux baseada
em Debian como por exemplo o Ubuntu, basta digitar o seguinte comando:
Bash
sudo apt-get install -y nginx
Dica: Ainda que o apt-get seja o gerenciador de pacotes mais conhecido, interessante
usar o aptitude que uma evoluo do apt-get. Por outro lado, se voc usa alguma
distribuio baseada em Redhat, basta digitar o comando a seguir:
Bash
sudo yum install -y nginx
Bash
sudo systemctl enabled nginx.service
Nota: Se voc est vindo do Apache, interessante criar o mesmo padro de pastas
como o sites-available, e sites-enabled.
Em distribuies baseadas em Redhat como o Fedora/Centos, o nginx vem cr, sem esta
configurao ao estilo Apache. Neste caso, ser necessrio criar tais pastas (diferentemente de
distribuies baseadas em Debian que j vem com tais configuraes por padro). Estes diretrios
so usados para definir configuraes para as suas aplicaes. Os arquivos so geralmente criados
no diretrio sites-available, e, em seguida, simbolicamente ligados ao diretrio sites-enabled.
Bash
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
O diretrio conf.d pode ser usado para a configurao do site tambm. Cada arquivo dentro deste
diretrio termina com .conf e lido na configurao quando Nginx iniciado garantindo assim,
que cada arquivo defina sintaxe vlida de configurao do Nginx. Na maioria dos casos, outros
arquivos dentro do diretrio /etc/nginx contm detalhes de configurao de processos
especficos ou componentes opcionais. Por fim, o arquivo nginx.conf estar assim:
Bash
user www-data;
worker_processes 4;
pid /run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# SSL Settings
##
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript
text/xml application/xml application/xml+rss text/javascript;
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
Voc pode estar se perguntando: Mas que diabos so estes parmetros do nginx.conf padro?
Vamos l:
O user www-data; significa que o Nginx ir executar como usurio www-data. Isso
til se voc estiver fazendo a transio do Apache, onde o usurio padro o www-data.
Assim, voc no ter que alterar a propriedade de todos os arquivos ou diretrios existentes.
O parmetro worker_processes 4; a espinha dorsal para o processamento do
Nginx. Esta diretiva responsvel por deixar o nosso servidor virtual cinte de que muitos
processos so gastos de uma vez.
O pid /run/nginx.pid define um arquivo que ir armazenar o ID de processo do
processo principal.
A diretiva events fornece a configurao em que as diretivas que afetam o processamento
de conexo so especificados. Neste caso, o worker_connections 768 define o
nmero mximo de conexes simultneas que podem ser abertas por um processo de
trabalho (768 por padro).
Nota: Perceba que ainda dentro de events temos a diretiva multi_accept on; que por
padro vem comentado. Isto , um processo vai aceitar uma nova conexo de cada vez. Caso
contrrio, um processo iria aceitar todas as novas conexes ao mesmo tempo.
Obs: A diretiva http assim como a diretiva events, funcionam como se fossem
funes que encapsulam diretivas dentro delas. A diretiva http contm as
configuraes do protocolo http. Dentro do http temos alguns parmetros. Como
mostra a seguir:
A diretiva sendfile on; em modo on, isto , ativo, no bloqueia a sada e entrada do
disco informando que os dados no esto na memria. Em seguida, o nginx inicia uma carga
de dados assncronos atravs da leitura de um byte.
A diretiva tcp_nopush on; s usada quando o sendfile tambm est ativo. Pois,
esta diretiva reponsvel por enviar o cabealho de resposta de pacotes para o sistema
operacional.
A diretiva tcp_nodelay on; s pode estar ativa quando um h transferncia para o
estado keep-alive.
A diretiva keepalive_timeout define um limite de tempo durante o qual uma conexo
de cliente keep-alive vai ficar aberta no servidor. O valor zero desativa conexes keep-alive
do cliente.
A diretiva types_hash_max_size define o tamanho mximo das hash tables.No caso, o
padro 2048.
A diretiva server_tokens off; que est comentada por padro, serve para emitir
mensagens de erro ao servidor. Esta diretiva extremamente importante quando no se
sabe bem a causa de uma suposta falha envolvendo o nginx.
A diretiva server_names_hash_bucket_size; que tambm est comentada, define
o tamanho de buckets para as tabelas de nome de hash para servidores. O valor padro
depende do tamanho do cache do processador.
A diretiva server_name_in_redirect off que tambm est comentada por padro,
responsvel por ativar ou desativar o uso do nome do servidor principal, especificado pela
diretiva server_name, em redirecionamentos emitidos pelo nginx.
A diretiva include /etc/nginx/mime.types define o tipo MIME padro de uma
resposta. Isto , o mapeamento das extenses de nome de arquivo para tipos de MIME pode
ser definida com a diretiva types que corresponde a uma extensa lista de formados e
extenses permitidas no nginx.
A diretiva default_type application/octet-stream; uma declarao direta
de mime type que no est declarado dentro do arquivo mime.types ativando a aplicao
de stream de vdeo octet-stream.
A diretiva ssl_protocols por padro cria compatibilidade aos formatos ssl TLS verso
1, 1.1, 1.2 no permitindo a iterao com o formato SLLv3. O formato SSLv3 ainda no
est suficientemente maduro e por isto um padro inseguro.
Temos tambm as diretivas para gerao de logs em seus devidos caminhos, no caso a
diretiva access_log e error_log que so gerados por padro em /var/log/nginx
nos arquivos access.log e error.log.