Instalando e configurando o Nginx com HTTPS

Publicado por Alexsandro Oliveira em 09/10/2015

[ Hits: 47.783 ]

 


Instalando e configurando o Nginx com HTTPS



O Nginx é um servidor web gratuito e de código aberto, o que tornou uma opção fácil para aqueles que procuram um pequeno servidor web de alto desempenho.

Nginx foi desenvolvido por Igor Sysoev para uso com um dos maiores sites da Rússia: Rambler (um portal web). Ele começou a desenvolver o software em 2002, mas a primeira versão pública foi em 2004. A popularidade do nginx, desde então, explodiu e agora ele é usado por milhões de sites.
Linux: Instalando é configurando o Nginx com HTTPS

Nginx vs Apache

Em termos de mundo real de casos de uso, uma das comparações mais comuns entre Apache e Nginx é a maneira em que cada servidor lida com solicitações de conteúdo estático e dinâmico.

O Apache é uma ferramenta muito completa para conteúdo dinâmico e o nginx possui uma performance incrível para conteúdo estático. Contudo, ambos possuem desvantagens: o Apache consome uma grande quantidade de memória e o Nginx não é bom o bastante, quando se trata de conteúdos dinâmicos.

Eles não são necessariamente "concorrentes", Apache e Nginx podem trabalhar juntos!

Deste modo, podemos combinar o melhor dos dois mundos, usando Nginx para servir conteúdo estático e o Apache para servir conteúdo dinâmico.

Instalando é configurando o Nginx com HTTPS

Versão estável Nginx - 1.8.0 - 2015-04-21

1. Atualizar o repositório do Linux:

sudo apt-get update

2. Instalar o Nginx:

sudo apt-get install nginx

3. Verificar se o serviço esta rodando:

sudo /etc/init.d/nginx status

Caso o serviço esteja parado, execute o comando abaixo:

sudo /etc/init.d/nginx start

4. Verificar se o serviço está ativo na porta padrão:

sudo netstat -pan | grep :80

Caso o serviço não esteja ativo na porta padrão, entre no arquivo de configuração e acrescente as linhas abaixo ou modifique a porta.

sudo vim /etc/nginx/sites-available/default

listen   80;
listen   [::]:80 default ipv6only=on;

5. Criar o certificado SSL:

$ sudo mkdir /etc/nginx/ssl
$ cd /etc/nginx/ssl
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt


6. Configurar o Nginx para usar o SSL:

sudo vim /etc/nginx/sites-available/default

Acrescentar as linhas:

server {
        listen 80;
        listen [::]:80 default_server ipv6only=on;
        listen 443 ssl;
        root /usr/share/nginx/html;
        index index.html index.htm;
        server_name seu_dominio;
        ssl_certificate /etc/nginx/ssl/nginx.crt;
        ssl_certificate_key /etc/nginx/ssl/nginx.key;
               location / {
                try_files $uri $uri/ =404;
        }
}

Quando você terminar, salve e feche o arquivo.

Agora, tudo que você tem a fazer é reiniciar Nginx para usar as novas configurações:

sudo service nginx restart

Pronto, seu servidor Nginx está apto a responder consultas HTTP e HTTPS.

No seu web browser, digite o domínio do seu servidor.

https://seu_dominio_server

Valeu galera!!!

Alexsandro Oliveira
Faculdade de Tecnologia BandTec

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Instalar KDE4 no Etch e Gutsy

Ubuntu, Xubuntu e Kubuntu - tudo em um

Hack 'n' Cast v0.3 - Introdução ao GNU/Linux

Impressão através do sistema de emulação 3270 SIAFI/HOD para Debian Linux

Blog sobre o Linux

  

Comentários
[1] Comentário enviado por yurifc4 em 12/10/2015 - 01:49h

Beleza, deu tudo certo... só estou com problemas para utilizar a reescrita. Já tentei de diversas formas que encontrei no google, nenhuma deu certo. Por acaso tem aee alguma dica ou sugestão do mod rewrite do nginx?

Esse é a melhor config que encontrei...

server {
listen 80;

server_name 127.0.0.1;

index index.php index.html;

set $root_path '/media/yuri/Dados/html/';
root $root_path;

try_files $uri $uri/ @rewrite;

location @rewrite {
rewrite ^(.*)$ /index.php?_url=$1;
}

location ~ \.php {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index /index.php;

include /etc/nginx/fastcgi_params;

fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

location ~* ^/(css|img|js|flv|swf|download)/(.+)$ {
root $root_path;
}

location ~ /\.ht {
deny all;
}
}

Só que se entro em um projeto... 127.0.0.1/projeto, ele entra, só que se acesso uma página de edição por exemplo: 127.0.0.1/projeto/editar/123456, era para ele reescrever o index.php aqui: 127.0.0.1/projeto/index.php/editar/123456. Só que com essa config, pelo que eu percebi, ele está colocando aqui... 127.0.0.1/index.php/projeto/editar/123456.

Ideias? Aceitando...



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts