Configure sua própria rede privada com o OpenVPN
O Vultr oferece uma incrível conectividade de rede privada para servidores executando no mesmo local. Mas às vezes você quer dois servidores em países diferentes
O Nginx é um software de servidor web de código aberto projetado com alta simultaneidade, que pode ser usado como servidor HTTP / HTTPS, servidor proxy reverso, servidor proxy de email, balanceador de carga de software, balanceador de carga de software, terminador TLS, servidor de cache e muito mais!
É um software muito modular. Mesmo algumas das partes aparentemente "integradas" do software, como GZIP ou SSL, são realmente criadas como módulos que podem ser ativados e desativados durante o tempo de compilação.
Possui módulos principais (nativos) e módulos de terceiros (externos) criados pela comunidade. No momento, existem mais de cem módulos de terceiros que podemos utilizar.
Escrito em C, é um software rápido e leve.
Instalar o Nginx a partir do código-fonte é relativamente fácil - faça o download da versão mais recente do código-fonte do Nginx, configure, construa e instale.
Você precisará escolher se deseja fazer o download da linha principal ou de uma versão estável, mas construí-las é a mesma.
Neste guia, compilaremos uma versão principal do Nginx no Debian 10 (buster). Usaremos todos os módulos disponíveis na versão de código aberto do Nginx.
Você provavelmente pergunta por que alguém compila o Nginx a partir de uma fonte quando pode usar pacotes preparados. Aqui estão algumas razões pelas quais você pode compilar software específico:
O Nginx Open Source está disponível em duas versões:
O Nginx possui dois tipos de módulos que você pode utilizar: módulos principais e módulos de terceiros.
Os principais desenvolvedores do Nginx constroem módulos principais e fazem parte do próprio software.
A comunidade cria módulos de terceiros e você pode usá-los para estender a funcionalidade. Existem muitos módulos de terceiros úteis.
Existem módulos estáticos no Nginx desde a primeira versão. Os módulos dinâmicos foram introduzidos com o Nginx 1.9.11+ em fevereiro de 2016.
Com módulos estáticos, um conjunto de módulos que constituem um binário Nginx é corrigido em tempo de compilação pelo ./configure
script. Módulos estáticos usam --with-foo_bar_module
ou --add-module=PATH
sintaxe.
Para compilar um módulo principal (padrão) como dinâmico, adicionamos =dynamic
, por exemplo --with-http_image_filter_module=dynamic
.
Para compilar um módulo de terceiros como dinâmico, usamos a --add-dynamic-module=/path/to/module
sintaxe e os carregamos usando a load_module
diretiva no contexto global do nginx.conf
arquivo.
Em comparação com outros softwares UNIX / Linux, o Nginx é bastante leve e não possui muitas dependências de bibliotecas. A configuração de compilação padrão depende de apenas 3 bibliotecas a serem instaladas: OpenSSL / LibreSSL / BoringSSL, Zlib e PCRE.
NOTA : O Nginx também pode ser compilado nas bibliotecas de criptografia LibreSSL e BoringSSL, em vez do OpenSSL.
Verifique a versão do Debian.
lsb_release -ds
# Debian GNU/Linux 10 (buster)
Crie um usuário comum com sudo
acesso.
adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
NOTA : Substitua johndoe
pelo seu nome de usuário .
Mude para um novo usuário.
su - johndoe
Configure o fuso horário.
sudo dpkg-reconfigure tzdata
Atualize o software do seu sistema operacional.
sudo apt update && sudo apt upgrade -y
Instale os pacotes necessários.
sudo apt install -y software-properties-common ufw
O Nginx é um programa escrito em C, então você primeiro precisará instalar uma ferramenta de compilação. Instalar build-essential
, git
e tree
.
sudo apt install -y build-essential git tree
Baixe a versão principal mais recente do código-fonte do Nginx e descompacte o arquivo de código-fonte. O código fonte do Nginx é distribuído como um arquivo compactado, como a maioria dos softwares Unix e Linux.
wget https://nginx.org/download/nginx-1.17.2.tar.gz && tar zxvf nginx-1.17.2.tar.gz
Faça o download do código fonte das dependências obrigatórias do Nginx e extraia-o.
# PCRE version 8.43
wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz && tar xzvf pcre-8.43.tar.gz
# zlib version 1.2.11
wget https://www.zlib.net/zlib-1.2.11.tar.gz && tar xzvf zlib-1.2.11.tar.gz
# OpenSSL version 1.1.1c
wget https://www.openssl.org/source/openssl-1.1.1c.tar.gz && tar xzvf openssl-1.1.1c.tar.gz
Instale dependências opcionais do Nginx.
sudo apt install -y perl libperl-dev libgd3 libgd-dev libgeoip1 libgeoip-dev geoip-bin libxml2 libxml2-dev libxslt1.1 libxslt1-dev
Limpe todos os .tar.gz
arquivos. Não precisamos mais deles.
rm -rf *.tar.gz
Digite o diretório de origem Nginx.
cd ~/nginx-1.17.2
Para uma boa medida, liste os diretórios e arquivos que compõem o código-fonte do Nginx tree
.
tree -L 2 .
Copie a página do manual para /usr/share/man/man8/
.
sudo cp ~/nginx-1.17.2/man/nginx.8 /usr/share/man/man8
sudo gzip /usr/share/man/man8/nginx.8
ls /usr/share/man/man8/ | grep nginx.8.gz
# Check that man page for Nginx is working
man nginx
Para obter ajuda, você pode ver uma lista completa das opções atualizadas de tempo de compilação do Nginx executando o seguinte.
./configure --help
# To see want core modules can be built as dynamic run:
./configure --help | grep -F =dynamic
Configure, compile e instale o Nginx.
./configure --prefix=/etc/nginx \
--sbin-path=/usr/sbin/nginx \
--modules-path=/usr/lib/nginx/modules \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/run/nginx.lock \
--user=nginx \
--group=nginx \
--build=Debian \
--builddir=nginx-1.17.2 \
--with-select_module \
--with-poll_module \
--with-threads \
--with-file-aio \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_xslt_module=dynamic \
--with-http_image_filter_module=dynamic \
--with-http_geoip_module=dynamic \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_auth_request_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_degradation_module \
--with-http_slice_module \
--with-http_stub_status_module \
--with-http_perl_module=dynamic \
--with-perl_modules_path=/usr/share/perl/5.26.1 \
--with-perl=/usr/bin/perl \
--http-log-path=/var/log/nginx/access.log \
--http-client-body-temp-path=/var/cache/nginx/client_temp \
--http-proxy-temp-path=/var/cache/nginx/proxy_temp \
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
--http-scgi-temp-path=/var/cache/nginx/scgi_temp \
--with-mail=dynamic \
--with-mail_ssl_module \
--with-stream=dynamic \
--with-stream_ssl_module \
--with-stream_realip_module \
--with-stream_geoip_module=dynamic \
--with-stream_ssl_preread_module \
--with-compat \
--with-pcre=../pcre-8.43 \
--with-pcre-jit \
--with-zlib=../zlib-1.2.11 \
--with-openssl=../openssl-1.1.1c \
--with-openssl-opt=no-nextprotoneg \
--with-debug
make
sudo make install
Após a compilação, navegue até o ~
diretório home ( ).
cd ~
Link simbólico /usr/lib/nginx/modules
para /etc/nginx/modules
. Este é um local padrão para os módulos Nginx.
sudo ln -s /usr/lib/nginx/modules /etc/nginx/modules
Imprima a versão do Nginx, a versão do compilador e configure os parâmetros do script.
sudo nginx -V
# nginx version: nginx/1.17.2 (Debian)
# built by gcc 8.3.0 (Debian 8.3.0-6)
# built with OpenSSL 1.1.1c 28 May 2019
# TLS SNI support enabled
# configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules . . .
# . . .
# . . .
Crie um grupo de sistema e usuário do Nginx.
sudo adduser --system --home /nonexistent --shell /bin/false --no-create-home --disabled-login --disabled-password --gecos "nginx user" --group nginx
# Check that user and group are created
sudo tail -n 1 /etc/passwd /etc/group /etc/shadow
Verifique a sintaxe do Nginx e possíveis erros.
sudo nginx -t
# Will throw this error -> nginx: [emerg] mkdir() "/var/cache/nginx/client_temp" failed (2: No such file or directory)
# Create NGINX cache directories and set proper permissions
sudo mkdir -p /var/cache/nginx/client_temp /var/cache/nginx/fastcgi_temp /var/cache/nginx/proxy_temp /var/cache/nginx/scgi_temp /var/cache/nginx/uwsgi_temp
sudo chmod 700 /var/cache/nginx/*
sudo chown nginx:root /var/cache/nginx/*
# Re-check syntax and potential errors.
sudo nginx -t
Crie um arquivo de unidade do sistema Nginx.
sudo vim /etc/systemd/system/nginx.service
Preencha o /etc/systemd/system/nginx.service
arquivo com o seguinte conteúdo.
[Unit]
Description=nginx - high performance web server
Documentation=https://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
[Install]
WantedBy=multi-user.target
Habilite o Nginx para iniciar na inicialização e inicie o Nginx imediatamente.
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
Verifique se o Nginx será iniciado automaticamente após uma reinicialização.
sudo systemctl is-enabled nginx.service
# enabled
Verifique o status.
sudo systemctl status nginx.service
NOTA : Você pode verificar se o Nginx está em execução acessando o domínio ou endereço IP do seu site em um navegador da web. Você verá a página de boas-vindas do Nginx. Isso é um indicador de que o Nginx está funcionando no seu VPS.
Crie um perfil de aplicativo UFW Nginx.
sudo vim /etc/ufw/applications.d/nginx
Copie / cole o seguinte conteúdo no /etc/ufw/applications.d/nginx
arquivo.
[Nginx HTTP]
title=Web Server (Nginx, HTTP)
description=Small, but very powerful and efficient web server
ports=80/tcp
[Nginx HTTPS]
title=Web Server (Nginx, HTTPS)
description=Small, but very powerful and efficient web server
ports=443/tcp
[Nginx Full]
title=Web Server (Nginx, HTTP + HTTPS)
description=Small, but very powerful and efficient web server
ports=80,443/tcp
Valide se os perfis de aplicativos UFW são criados e reconhecidos.
sudo ufw app list
# Available applications:
# Nginx Full
# Nginx HTTP
# Nginx HTTPS
# OpenSSH
O Nginx, por padrão, gera .default
arquivos de backup no Windows /etc/nginx
. Remova os .default
arquivos do /etc/nginx
diretório.
sudo rm /etc/nginx/*.default
Coloque o realce da sintaxe da configuração do Nginx para o editor Vim ~/.vim
.
# For regular non-root user
mkdir ~/.vim/
cp -r ~/nginx-1.17.2/contrib/vim/* ~/.vim/
# For root user
sudo mkdir /root/.vim/
sudo cp -r ~/nginx-1.17.2/contrib/vim/* /root/.vim/
NOTA : Ao executar a etapa acima, você obterá uma boa sintaxe destacada ao editar os arquivos de configuração do Nginx no editor do Vim.
Criar conf.d
, snippets
, sites-available
e sites-enabled
diretórios /etc/nginx
.
sudo mkdir /etc/nginx/{conf.d,snippets,sites-available,sites-enabled}
Altere as permissões e a propriedade do grupo dos arquivos de log do Nginx.
sudo chmod 640 /var/log/nginx/*
sudo chown nginx:adm /var/log/nginx/access.log /var/log/nginx/error.log
Crie uma configuração de rotação de log para o Nginx.
sudo vim /etc/logrotate.d/nginx
Preencha o arquivo com o texto a seguir, salve e saia.
/var/log/nginx/*.log {
daily
missingok
rotate 52
compress
delaycompress
notifempty
create 640 nginx adm
sharedscripts
postrotate
if [ -f /var/run/nginx.pid ]; then
kill -USR1 `cat /var/run/nginx.pid`
fi
endscript
}
Remova todos os arquivos baixados do diretório inicial.
cd ~
rm -rf nginx-1.17.2/ openssl-1.1.1c/ pcre-8.43/ zlib-1.2.11/
É isso aí. Agora, você tem a versão mais recente do Nginx instalada. É compilado estaticamente em algumas bibliotecas importantes como o OpenSSL. Freqüentemente, a versão do OpenSSL fornecida pelo sistema está desatualizada. Usando esse método de instalação com uma versão mais recente do OpenSSL, você pode tirar proveito de cifras modernas CHACHA20_POLY1305
e protocolos como o TLS 1.3, disponíveis no OpenSSL 1.1.1
. Além disso, ao compilar seu próprio binário, você pode personalizar a funcionalidade que o Nginx fornecerá, o que é muito mais flexível do que instalar um binário pré-construído.
O Vultr oferece uma incrível conectividade de rede privada para servidores executando no mesmo local. Mas às vezes você quer dois servidores em países diferentes
Usando um sistema diferente? O Couch CMS é um sistema de gerenciamento de conteúdo (CMS) simples e flexível, gratuito e de código aberto que permite que os web designers
Usar um usuário sudo para acessar um servidor e executar comandos no nível raiz é uma prática muito comum entre o Linux e o Unix Systems Administrator. O uso de um sud
Este artigo ensinará como configurar uma prisão chroot no Debian. Presumo que você esteja usando o Debian 7.x. Se você estiver executando o Debian 6 ou 8, isso pode funcionar, mas
Introdução Uma maneira fácil de configurar um servidor VPN no Debian é com o PiVPN. PiVPN é um instalador e wrapper para o OpenVPN. Ele cria comandos simples para você t
Usando um sistema diferente? Introdução O Kanboard é um programa de software de gerenciamento de projetos gratuito e de código aberto, projetado para facilitar e visualizar
Usando um sistema diferente? Neos é uma plataforma de aplicativos de conteúdo com um CMS e uma estrutura de aplicativos em seu núcleo. Este guia mostra como instalar
Introdução O Cacti é uma ferramenta de monitoramento e gráfico de código aberto totalmente baseada em dados RRD. Através do Cacti, você pode monitorar quase qualquer tipo de dispositivo
Java é uma linguagem de programação independente de plataforma / máquina virtual. Neste tutorial, instalaremos a implementação OpenJDK do Java 8 em um Debian
O Git é um sistema de controle de versão (VCS) que permite o rastreamento de alterações no código. Neste tutorial, mostraremos a instalação de um servidor HTTP (S) Git, um
Introdução O MyCLI é um cliente de linha de comando para MySQL e MariaDB que permite concluir automaticamente e ajuda na sintaxe de seus comandos SQL. MyCL
Introdução O MySQL possui um ótimo recurso conhecido como views. As visualizações são consultas armazenadas. Pense neles como um alias para uma consulta longa. Neste guia,
Usando um sistema diferente? O Matomo (anteriormente Piwik) é uma plataforma de análise de código aberto, uma alternativa aberta ao Google Analytics. Fonte Matomo está hospedado o
Munin é uma ferramenta de monitoramento para pesquisar processos e recursos em sua máquina e apresenta as informações em gráficos através de uma interface da web. Use o seguinte
Usando um sistema diferente? O NodeBB é um fórum baseado no Node.js. Ele utiliza soquetes da web para interações instantâneas e notificações em tempo real. Código fonte do NodeBB i
O Samba é uma solução de código aberto que permite aos usuários configurar compartilhamentos de arquivos e impressão rápidos e seguros. Neste artigo, abordarei como configurar a sagacidade do Samba
Introdução Neste tutorial, abordaremos o processo de adicionar um intervalo / sub-rede IP inteiro a um servidor Linux executando o CentOS, Debian ou Ubuntu. O processo
Usando um sistema diferente? O Plesk é um painel de controle proprietário de host da web que permite que os usuários administrem seus sites pessoais e / ou clientes, bancos de dados
Usando um sistema diferente? O Koel é um aplicativo simples de transmissão de áudio pessoal baseado na Web, escrito em Vue no lado do cliente e Laravel no lado do servidor. Koe
Usando um sistema diferente? O Ghost é uma plataforma de blog de código aberto que vem ganhando popularidade entre desenvolvedores e usuários comuns desde a sua 201
Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane
ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.
O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+
Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.
Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais
13 Ferramentas de Extração de Dados Comerciais de Big Data
Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true
À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.
Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1
A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA na área da saúde ainda está crescendo dia a dia.