Todos sabemos como habilitar um site usando o apache no linux. Tenho certeza de que todos concordamos em usar o comando a2ensite.
Infelizmente, não existe um comando equivalente padrão no Nginx, mas aconteceu que eu instalei algum pacote no ubuntu que me permitiu ativar / desativar sites e listá-los.
O problema é que não me lembro do nome deste pacote.
Alguém sabe do que estou falando?
Por favor, diga-me o nome deste pacote e o nome do comando.
nginx
command-line-interface
website
command
Ghassen Telmoudi
fonte
fonte
Respostas:
Se você instalou o
nginx
pacote a partir dos repositórios do Ubuntu, terá dois diretórios./etc/nginx/sites-enabled
e/etc/nginx/sites-available
.Na configuração principal do nginx
/etc/nginx/nginx.conf
, você tem a seguinte linha:Então, basicamente, para listar todos os virtualhosts disponíveis, você pode executar o seguinte comando:
Para ativar um deles, execute o seguinte comando:
Os scripts que acompanham o Apache são basicamente simples invólucros de shell que fazem algo semelhante ao acima.
Depois de vincular os arquivos, lembre-se de executar
sudo service nginx reload
/service nginx reload
fonte
Basta criar esse script
/usr/bin/nginx_modsite
e torná-lo executável.Como funciona:
Para listar todos os sites
Para habilitar o site "test_website"
Para desativar o site "test_website"
fonte
Você está se referindo a
nginx_ensite
enginx_dissite
?fonte
NGINX
Se você estiver usando um dos pacotes oficiais do upstream do nginx em http://nginx.org/packages/ , a melhor maneira é navegar para o
/etc/nginx/conf.d
diretório e renomear o arquivo afetado de ter um.conf
sufixo para outro. desativar o site:sudo mv -i /etc/nginx/conf.d/default.conf{,.off}
Ou o oposto para habilitá-lo:
sudo mv -i /etc/nginx/conf.d/example.com.conf{.disabled,}
Isso ocorre porque o padrão
/etc/nginx/nginx.conf
tem a seguinteinclude
diretiva:Debian / Ubuntu
No entanto, se você estiver usando um derivado Debian / Ubuntu, além de
conf.d
, também poderá ter os diretórios e padrões não padronizadossites-available
sites-enabled
, alguns arquivos sob os quais podem ser incluídos desleixadamente, sem levar em consideração sua extensão:Como tal, no Debian / Ubuntu, você pode primeiro ter que descobrir onde a configuração do site está localizada.
Você pode usar o comando a seguir para obter uma lista de todos os sites disponíveis executando
find(1)
para encontrar todos os arquivos regulares correspondentes à máscara especificada:find /etc/nginx -maxdepth 2 -type f \( -path "*/conf.d/*.conf" -or -path "*/sites-*/*" \)
Você pode usar o seguinte comando para obter uma lista de todos os sites ativados :
find /etc/nginx -maxdepth 2 \( -path "*/conf.d/*.conf" -or -path "*/sites-enabled/*" \)
Em seguida, para desativar / ativar sites no Debian / Ubuntu:
Para desativar um site: se a configuração estiver ativada
conf.d
, apenas renomeie o arquivo para não ter mais um.conf
sufixo; ou, se estiver dentrosites-enabled
, remova-osites-enabled
.Para habilitar um site, a melhor maneira seria movê-lo para
/etc/nginx/conf.d
e renomear para ter um.conf
sufixo.PS Por que eu acho que o Debian
include /etc/nginx/sites-enabled/*;
é mau? Tente editar alguns arquivos nesse diretório e faça com que vocêemacs
crie os arquivos de backup (com o~
sufixo) e me pergunte novamente.fonte
conf.d
diretório é a configuração em todo o servidor, como a de módulos, plugins, manipuladores fastcgi etc. e explicitamente para não armazenar o host configurações do / vhost em e 2) Não se deve editar nenhum arquivo emsites-enabled
serverfault.com/a/825297/86189conf.d
, porque elas estão incluídas no mesmo contexto que o contexto desites-enabled
umhttp
nível; portanto, as diretivas de módulo e plug-in podem não se aplicar. Da mesma forma, sua suposição de que não se deve editar arquivossites-enabled
é meramente uma ilusão - não existem instruções na distribuição ou no diretório; portanto, é puramente sua suposição, que não é de forma alguma imposta pela distribuição; portanto, você tem todos os tipos de problemas decorrentes dele, por exemplo, stackoverflow.com/q/45852224/1122270 .conf.d
que é, provavelmente, o mantenedor do Nginx do Debian (ou talvez seja mantido para compatibilidade com o upstream). Sobre não editar arquivossites-enabled
, não é uma ilusão, mas o suposto worflow no Apache que eles tentaram emular no Nginx. No apache, é bastante óbvio devido à existênciaa2ensite
ea2dissite
scripts. Infelizmente nada do tipo é fornecido para o Nginx, que mostra quão baixa a qualidade de manutenção desse pacote está no Debian. Ambos não têm documentação, é verdade.ls -al sites-enabled
no Apache ou Nginx mostra que os arquivos existentes no diretório são links simbólicos-available
, idem para módulos no Apache, junto com osa2enmod
/a2dismod
scirpts fornecidos .conf.d
como está.Outro método é apenas renomear o arquivo de configuração do site para algo que termine sem o .conf
Por exemplo
sudo mv mysite.conf mysite.conf.disabled
Em seguida, recarregue o nginx e esse vhost retornará ao padrão.
fonte
include /etc/nginx/sites-enabled/*;
ele só inclui conf dir como*.conf
sites-available
esites-enabled
como eles têm mérito e uso. Alguém provavelmente deveria apenas enviar um relatório de bug para a verdadeira linha ofensiva no nginx conf to/etc/nginx/sites-enabled/*.conf;
e provavelmente o fará, pois provavelmente é uma supervisão. Mas se você respeitar o fluxo de trabalho do Debian, estará editando os arquivos desites-available
qualquer maneira e simbolizando os que deseja ativarsites-enabled
.