https://github.com/edo1z/ngcon
Ngcon is a tool to easily manage Nginx configuration file.
https://github.com/edo1z/ngcon
Last synced: 4 months ago
JSON representation
Ngcon is a tool to easily manage Nginx configuration file.
- Host: GitHub
- URL: https://github.com/edo1z/ngcon
- Owner: edo1z
- License: mit
- Created: 2017-05-05T17:06:05.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2019-12-06T23:01:01.000Z (almost 6 years ago)
- Last Synced: 2025-04-06T08:19:52.959Z (6 months ago)
- Language: Shell
- Size: 5.86 KB
- Stars: 3
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
1つのサーバに複数のサイトを入れている場合、`/etc/nginx/sites-available`に、各サイト用の設定ファイルを個別につくって、`/etc/nginx/sites-enabled`に反映させたいファイルのリンクをはって、Nginxを再起動させるというのが一般的な管理方法だと思ってますが、sites-availableにファイルを作って、sites-enabledにリンクはって、設定間違ってたからまたavailableのファイルを開いて修正して、リンク張ろうと思ったらファイル名忘れて、availableのファイル一覧確認してとかやってるとつかれるので、ツールを作ってみました。
# 環境
- zshを使っています。(bashでも多分動くと思います)
- Ubuntu16.10で動作確認しました。# 出来ること
- sites-availableのファイル一覧をすぐに確認できる
- sites-enabledのファイル一覧もすぐに確認できる
- 設定ファイルをどこからでもvimで開ける
- enabledへの反映もどこからでもリンクできる
- enabledのリンク削除もすぐできる
- availableへの追加も簡単にできる
- nginxの設定ファイルチェックも短いコマンドでできる
- nginxの再起動も短いコマンドでできる
- 設定ファイルの削除(リンク・ファイル削除)もすぐできる
- enabledのリンク全削除もすぐできる
- certbotを使ったssl取得も簡単にできる(準備作業は必要)# インストール
gitから落として、PATH通ってるフォルダ(/usr/local/binを想定)に置きます。
```
$ git clone https://github.com/edo1z/ngcon.git
$ sudo mv ngcon/ngcon /usr/local/bin
$ sudo rm -rf ngcon
```# 使い方
基本的にroot権限が必要です。
## 簡単なヘルプ
```
$ ngcon
commands [lsa, lse, add, new, a, e, test, re, vim, rm, rmall, delete, get_ssl]
```## site-availableのファイル一覧を確認
```
$ ngcon lsa
```## site-enabledのファイル一覧を確認
```
$ ngcon lse
```## site-enabledにファイルを反映(availableのリンクをはる)
```
$ ngcon add [conf file name]
```## site-availableにファイルを追加
既存ファイル(base file)をコピーして新規ファイルを(new file)という名前で作成します。作成後、new fileをvimで開きます。
```
$ ngcon new [base file name] [new file name]
```## site-availableのパスを表示します
```
$ ngcon a
```## site-enabledのパスを表示します
```
$ ngcon e
```## nginxの設定ファイルチェックをします
```
$ ngcon test
```## nginxを再起動します
```
$ ngcon re
```## vimで設定ファイルを開きます
```
$ ngcon vim [conf file name]
```## site-enabledのリンクを削除します
```
$ ngcon rm [conf file name]
```## site-enabledのリンクを全部削除します
```
$ ngcon rmall
```## 設定ファイルを削除します。
enabledからもavailableからも削除します。
```
$ ngcon delete [conf file name]
```## Let's Encryptの証明書を取得します。(おまけ)
### certbotのインストール
certbotが必要ですので、このコマンドを使う場合、事前にインストールが必要です。
```
$ sudo apt-get install certbot
```### Nginx設定ファイルの作成
下記のような簡単な設定ファイルを、`t_forcert`という名前(ファイル名は変えられます)で、site-abailableに入れておきます。(server_nameは、SSL証明書を取得したいドメインにします)。また、/usr/share/nginx/html配下にindex.htmlが存在する必要があります。(Nginxのデフォルト状態ならあります。)
```
server {
listen 80;
server_name example.com;
index index.html;
root /usr/share/nginx/html;
}
```
### コマンド実行```
$ ngcon get_ssl example.com
```これで取得完了できます。やっているのは、上記設定ファイルを反映してNginxを再起動させて、`certbot certonly`コマンドを実行しています。証明書取得後に、上記設定ファイルを削除して、再度Nginxを再起動しています。
### 補足
--standaloneを使ってインストールできるなら、逆にめんどくさいだけだと思います。すでにサイトが動いていて、Nginxをなるべく止めたくないとかの場合に、ある程度有用かもしれません。
### LICENSE
This software is released under the MIT License, see LICENSE.txt.