Buscar nos desafios e nas vagas

    Nginx no Ubuntu

    Servidor HTTP e proxy reverso.

    Requisitos

    • Uma máquina Ubuntu com acesso à Internet.
    • Um usuário local que possa se tornar root.

    Instalação

    Este tutorial instala o Nginx pelo pacote oficial da distribuição, para fins de estudo.

    1. Instale o Nginx

    sudo apt-get -y install nginx

    2. Conheça os arquivos de configuração

    A configuração do serviço fica em /etc/nginx, com esta estrutura:

    /etc/nginx
    ├── conf.d
    ├── fastcgi.conf
    ├── fastcgi_params
    ├── koi-utf
    ├── koi-win
    ├── mime.types
    ├── modules-available
    ├── modules-enabled
    │   ├── 50-mod-http-geoip.conf -> /usr/share/nginx/modules-available/mod-http-geoip.conf
    │   ├── 50-mod-http-image-filter.conf -> /usr/share/nginx/modules-available/mod-http-image-filter.conf
    │   ├── 50-mod-http-xslt-filter.conf -> /usr/share/nginx/modules-available/mod-http-xslt-filter.conf
    │   ├── 50-mod-mail.conf -> /usr/share/nginx/modules-available/mod-mail.conf
    │   └── 50-mod-stream.conf -> /usr/share/nginx/modules-available/mod-stream.conf
    ├── nginx.conf
    ├── proxy_params
    ├── scgi_params
    ├── sites-available
    │   └── default
    ├── sites-enabled
    │   └── default -> /etc/nginx/sites-available/default
    ├── snippets
    │   ├── fastcgi-php.conf
    │   └── snakeoil.conf
    ├── uwsgi_params
    └── win-utf

    O arquivo principal de configuração fica em /etc/nginx/nginx.conf.

    O arquivo de configuração do virtual host padrão está em /etc/nginx/sites-enabled/default, no qual podemos ver que os arquivos servidos ficam em root /var/www/html;.

    Quando alterar algo, teste a nova configuração com:

    sudo nginx -t
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful

    Caso esteja tudo correto (como no caso deste exemplo), basta recarregar, ou seja, mandar um sinal para o Nginx:

    sudo pkill -HUP nginx

    Dificilmente é preciso reiniciar o serviço: ao fazer qualquer alteração, basta enviar o sinal HUP, como acima. As conexões correntes continuarão sendo respondidas e as novas conexões serão atendidas com base na nova configuração.

    3. Gerencie o serviço

    Para parar, reiniciar e iniciar o serviço:

    sudo systemctl stop nginx
    sudo systemctl restart nginx
    sudo systemctl start nginx

    Para habilitar ou desabilitar o início automático junto com o sistema:

    sudo systemctl enable nginx
    sudo systemctl disable nginx

    Atenção: esta instalação serve para estudos. Nunca faça isso em produção, pois são necessários muitos outros cuidados, especialmente ao configurar o serviço HTTPS: para estar na Internet, não basta colocar um certificado e ativar, é preciso realizar muitos passos para ter um mínimo de segurança.

    Verificação

    Confira se os processos do Nginx estão em execução:

    pgrep -a nginx
    6508 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
    6509 nginx: worker process
    6510 nginx: worker process
    6511 nginx: worker process
    6512 nginx: worker process

    Ou confira o estado do serviço no systemd:

    systemctl status nginx
    ● nginx.service - A high performance web server and a reverse proxy server
       Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
       Active: active (running) since Thu 2019-01-31 19:34:44 -02; 6min ago
         Docs: man:nginx(8)
      Process: 6497 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
      Process: 6496 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
     Main PID: 6508 (nginx)
        Tasks: 5 (limit: 4542)
       CGroup: /system.slice/nginx.service
               ├─6508 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
               ├─6509 nginx: worker process
               ├─6510 nginx: worker process
               ├─6511 nginx: worker process
               └─6512 nginx: worker process
    
    jan 31 19:34:44 usertest systemd[1]: Starting A high performance web server and a reverse proxy server...
    jan 31 19:34:44 usertest systemd[1]: Started A high performance web server and a reverse proxy server.

    Por fim, acesse pelo navegador o endereço http://localhost ou, pela linha de comando:

    curl http://localhost
    <!DOCTYPE html>
    <html>
    <head>
    <title>Welcome to nginx!</title>
    <style>
        body {
            width: 35em;
            margin: 0 auto;
            font-family: Tahoma, Verdana, Arial, sans-serif;
        }
    </style>
    </head>
    <body>
    <h1>Welcome to nginx!</h1>
    <p>If you see this page, the nginx web server is successfully installed and
    working. Further configuration is required.</p>
    
    <p>For online documentation and support please refer to
    <a href="http://nginx.org/">nginx.org</a>.<br/>
    Commercial support is available at
    <a href="http://nginx.com/">nginx.com</a>.</p>
    
    <p><em>Thank you for using nginx.</em></p>
    </body>
    </html>

    Referências