環境
- Ubuntu 20.04
インストール
$ sudo apt install nginx
http://localhost にアクセスして nginx が起動していることを確認します。
設定
nginx の設定ファイルは /etc/nginx/nginx.conf
ですが、この中を見ると、http ディレクティブの中に以下の記述があります。
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
conf.d
と sites-enabled
の中に置いた設定ファイルが読み込まれるようになっています。
2つの使い分けについては以下のページが参考になりました。
というわけで、sites-available
に設定ファイルを作成して、sites-enabled
にシンボリックリンクを作成します。
conf ファイルの追加
$ sudo nano /etc/nginx/sites-available/sample.conf
以下を追記します。
server {
listen 80 default_server;
server_name _;
location / {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
server_name
の _;
は catch-all の意味らしく、任意の URL に対して有効になります。
proxy_pass
が遷移先の URL です。
その他の設定については以下を参考にさせてもらいました。
デフォルトの設定の削除
sites-enabled
の中には最初から default
という設定へのシンボリックリンクがあります。
設定内容次第ではこの default の設定が邪魔になることもあるので、そのような場合は削除しておきます。
今回の場合は default_server
と server_name _;
が重複しているので、削除しておかないと上手くルーティングできません。
$ sudo rm /etc/nginx/sites-enabled/default
シンボリックリンクの作成
$ sudo ln -s /etc/nginx/sites-available/sample.conf /etc/nginx/sites-enabled/sample
nginx を再起動します。
$ sudo systemctl restart nginx
以上で完了です。