Diretório disponível de sites ausentes do nginx

190

Instalei o Nginx no Centos 6 e estou tentando configurar hosts virtuais. O problema que estou tendo é que não consigo encontrar o/etc/nginx/sites-available diretório.

Existe algo que eu preciso fazer para criá-lo? Eu sei que o Nginx está instalado e funcionando, porque posso navegar até ele.

Fr0ntSight
fonte
Se você quiser dividir um grande arquivo de configuração em partes menores, você pode usar o meu script para dividi-lo: stackoverflow.com/a/38635284/1069083
rubo77

Respostas:

354

Bem, acho que o nginx por si só não tem isso em sua configuração, porque o pacote mantido pelo Ubuntu faz isso como uma convenção para imitar a configuração apache do Debian. Você pode criar você mesmo se quiser emular a mesma configuração.

Crie /etc/nginx/sites-availablee /etc/nginx/sites-enablededite o httpbloco interno /etc/nginx/nginx.confe adicione esta linha

include /etc/nginx/sites-enabled/*;

Obviamente, todos os arquivos estarão dentro sites-availablee você criaria um link simbólico para eles dentro sites-enableddaqueles que deseja ativar.

Mohammad AbuShady
fonte
23
Parentes do RedHat (por exemplo, Fedora e Centos) não possuem esse recurso pronto para uso, como o Debian / Ubuntu. É fácil copiar, como disse @Mohammad, no entanto, não ter padrões agradáveis ​​é confuso para os novatos.
MGP 16/09
36
Deus, não posso dizer quantas pesquisas fiz para descobrir isso. Estou usando o Amazon Linux AMI versão 2014.03. Esses diretórios não serão criados automaticamente se você instalar o nginx a partir dos arquivos rpm (seja o nginx 1.6.2 ou o nginx 1.7.5), mas muitos exemplos de configuração do nginx os referem ... fazendo você se perguntar se o nginx foi instalado corretamente ou não.
so_mv
1
Legal obrigado, e o link simbólico? Minha sintaxe está correta? Parece não estar sendo encontrado pela instrução include.
zeros-and-ones
7
Eu fixo-lo, começou a ligação sym fresco e criado assim: sudo ln -s /etc/nginx/sites-available/test.conf /etc/nginx/sites-enabled/test.confnão sei por que o caminho completo feito a diferença: /
zeros-e-ones
1
Muito obrigado. Construiu o nginx a partir da fonte e não percebeu que o ubuntu fez isso.
21417 Sean
66

Se você preferir uma abordagem mais direta, que NÃO mexa com a ligação simbólica entre /etc/nginx/sites-availablee /etc/nginx/sites-enabled, faça o seguinte:

  1. Localize o seu arquivo nginx.conf. Provavelmente em/etc/nginx/nginx.conf
  2. Encontre o bloco http.
  3. Em algum lugar do bloco http, escreva include /etc/nginx/conf.d/*.conf;Isso diz ao nginx para puxar os arquivos do conf.ddiretório que terminam em .conf. (Eu sei: é estranho que um diretório possa conter um ..)
  4. Crie o conf.ddiretório se ele ainda não existir (conforme o caminho na etapa 3). Certifique-se de fornecer as permissões / propriedade corretas. Provável raiz ou www-data.
  5. Mover ou copiar seus arquivos de configuração separados (assim como você tem em /etc/nginx/sites-available) para o diretório conf.d.
  6. Recarregue ou reinicie o nginx.
  7. Coma uma casquinha de sorvete.

Qualquer .confarquivo que você colocar no conf.ddiretório daqui em diante ficará ativo enquanto você recarregar / reiniciar o nginx depois.

Nota: Você pode usar o método conf.de sites-enabled+ sites-availablesimultaneamente, se desejar. Eu gosto de testar na minha caixa de desenvolvimento usando conf.d. Parece mais rápido que o simbolismo e o desassociação.

elbowlobstercowstand
fonte
13
O objetivo da "bagunça" de ligação simbólica é que você pode preservar os arquivos de configuração e ainda desativar os hosts virtuais com muita facilidade. Se você usar sua abordagem, será necessário mover os arquivos para fora do arquivo conf.d quando desejar desativar um site que eu não acho menos bagunçado do que excluir convenientemente um link simbólico.
precisa saber é o seguinte
@bviktor eu ouvi-lo. Na verdade, eu uso os dois lados. Achei mais tedioso [ao testar configurações] alternar entre os diretórios disponíveis e habilitados para sites. No meu ambiente de produção, estou pensando em usar o link simbólico.
Elbowlobstercowstand
1
Sim, eu concordo, digitação ln -s ../sites-available/...é um pouco entediante ao testar rapidamente o material, mas no longo prazo, é útil e fácil de gerenciar :)
bviktor
@bviktor Tão grato pela capacidade de poder pressionar tab no terminal ao escrever o nome do caminho e assistir ao preenchimento automático. Não sabia disso por um tempo até assistir a um vídeo com alguém usando. Eu pensei que eles digitaram a 300 wpm! Então eu entendi. :)
elbowlobstercowstand
12
@bvktor Apenas sites com extensão .conf estão sendo incluídos. Se você não deseja que um site seja ativado, basta adicionar a extensão .disabled ao arquivo de configuração do site. Essa é a convenção padrão no CentOS / Apache e se aplicará ao Nginx também.
Seng
0

Eu tentei o sudo apt install nginx-full. Você receberá todos os pacotes necessários.

Amit Shrestha
fonte