nginxで不足しているサイトで利用可能なディレクトリ


190

Centos 6にNginxをインストールし、仮想ホストをセットアップしようとしています。私が抱えている問題は、/etc/nginx/sites-availableディレクトリが見つからないように見えることです。

作成するために必要なことはありますか?閲覧できるので、Nginxが稼働していることがわかります。


あなたは小さなものに一つの大きな設定ファイルを分割したい場合、あなたはそれを分割するために私のスクリプトを使用することができます。stackoverflow.com/a/38635284/1069083
rubo77

回答:


354

まあ、私はnginx自体にはそのセットアップにそれがないと思います。Ubuntuが保守するパッケージは、Debianのapacheセットアップを模倣する規則としてそれを行うからです。同じ設定をエミュレートしたい場合は、自分で作成できます。

内部のブロックを作成/etc/nginx/sites-available/etc/nginx/sites-enabledて編集し、この行を追加しますhttp/etc/nginx/nginx.conf

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

もちろん、すべてのファイルは内sites-availableにあり、sites-enabled有効にしたいファイルの内部にシンボリックリンクを作成します。


23
RedHatの親戚(つまり、FedoraとCentos)には、Debian / Ubuntuのように、この機能はそのままではありません。@Mohammadが言ったように、コピーするのは簡単ですが、素敵なデフォルトがないと、初心者にとって混乱を招きます。
MGP

36
これを理解するために何回検索したかはわかりません。Amazon Linux AMIリリース2014.03を使用しています。nginxをrpmファイル(nginx 1.6.2またはnginx 1.7.5)からインストールする場合、これらのディレクトリは自動的に作成されませんが、多くのnginx構成例はこれらを参照しています... nginxが正しくインストールされているかどうか疑問に思います。
so_mv 2014

1
よろしくお願いします。symlinkはどうですか?構文は正しいですか?includeステートメントで検出されていないようです。
zeros-and-

7
私はそれを修正し、新たに開始して次のようにsymリンクを作成しました:sudo ln -s /etc/nginx/sites-available/test.conf /etc/nginx/sites-enabled/test.confフルパスが違いを生んだ理由がわかりません:/
zeros-and-ones

1
どうもありがとうございます。ソースからnginxをビルドしましたが、ubuntuがこれを実行していることに気付きませんでした。
Sean Norwood 2017

66

より直接的なアプローチを希望する場合は、/etc/nginx/sites-availableとの間のシンボリックリンクを混乱させない/etc/nginx/sites-enabledようにするには、次のようにします。

  1. nginx.confファイルを見つけます。たぶん/etc/nginx/nginx.conf
  2. httpブロックを見つけます。
  3. httpブロックのどこかに書くinclude /etc/nginx/conf.d/*.conf;これはnginxに、conf.dディレクトリで.conf。(私は知っています:ディレクトリが.中にそれを持つことができるのは奇妙です。)
  4. conf.d(手順3のパスごとに)存在しない場合は、ディレクトリを作成します。必ず適切な権限/所有権を付与してください。おそらくrootまたはwww-data。
  5. 個別の構成ファイル(と同じように/etc/nginx/sites-available)をディレクトリに移動またはコピーしますconf.d
  6. nginxをリロードまたは再起動します。
  7. アイスクリームコーンを食べます。

以降nginxをリロード/再起動する限り、これ以降ディレクトリに.conf配置したファイルはすべてconf.dアクティブになります。

注:必要に応じてconf.dsites-enabled+ sites-availableメソッドを同時に使用できます。を使用して開発ボックスでテストするのが好きconf.dです。シンボリックリンクやシンボリックリンクよりも速く感じます。


13
シンボリックリンクの「混乱」のポイントは、設定ファイルを保持しながら、仮想ホストを非常に簡単に無効にできることです。あなたがあなたのアプローチを使うならば、私が便利にシンボリックリンクを削除することほど厄介ではないと思うサイトを無効にしたいときは、ファイルをconf.dから移動する必要があります。
bviktor 2014

@bviktorうん。私は実際には両方の方法を使用しています。[configsをテストするときに]、sites-availableとsite-enabledのディレクトリ間を行き来するのが面倒なことに気づきました。私の本番環境では、シンボリックリンクを使用することを計画しています。
elbowlobstercowstand 2014

1
ええ、私は同意し../sites-available/...ます。ものをすばやくテストする場合、ln -sを入力するのはかなり退屈ですが、長期的には管理が簡単で簡単です:)
bviktor

@bviktorパス名を書き込んでいるときにターミナルのタブを押してオートコンプリートを監視できる機能に感謝します。誰かがそれを使用しているビデオを見るまで、しばらくそれを知りませんでした。300 wpmで入力したと思いました!それから私は追いついた。:)
elbowlobstercowstand 2014年

12
@bvktor拡張子が.confのサイトのみが含まれます。サイトを有効にしたくない場合は、サイトのconfiguratoinファイルに.disabled拡張子を追加するだけです。これはCentOS / Apacheの標準規約であり、Nginxにも適用されます。
SenG、2015年

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.