Ubuntuにnginxをインストールしてウェブサーバーを立ち上げる

Ubuntuにnginxをインストールしてウェブサーバーを立ち上げる
Ubuntuにnginxをインストールしてウェブサーバーを立ち上げる

Ubuntuにnginxをインストール

アプリケーションをインストールする前におまじない。※初めて実行する場合は、時間がかかります。

shell
$ sudo apt-get update
$ sudo apt-get upgrade

次のコマンドでnginxをインストールします。

shell
$ sudo apt install nginx

次のコマンドでnginxがインストールできたか確認します。

shell
$ nginx -v
nginx version: nginx/1.18.0 (Ubuntu)

nginxの起動

nginxのインストール完了と同時にウェブサーバーは自動で立ち上ります。

shell
$ sudo systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2022-10-20 15:15:44 JST; 53s ago
       Docs: man:nginx(8)
    Process: 36839 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 36840 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 36934 (nginx)
      Tasks: 3 (limit: 1033)
     Memory: 7.0M
        CPU: 40ms
     CGroup: /system.slice/nginx.service
             ├─36934 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             ├─36937 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" >
             └─36938 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" >

Oct 20 15:15:44 tk2-121-61239 systemd[1]: Starting A high performance web server and a reverse proxy server...
Oct 20 15:15:44 tk2-121-61239 systemd[1]: Started A high performance web server and a reverse proxy server.

自動起動設定

次のコマンドは、nginxの自動起動設定です。

shell
$ sudo systemctl start nginx
$ sudo systemctl enable nginx

自動起動の解除

次のコマンドは、nginxの自動起動の解除です。

shell
$ sudo systemctl stop nginx
$ sudo systemctl disable nginx

ウェブサーバーへアクセスできるか確認する

レンタルサーバーでパケットフィルターを利用している場合は、Webに使う80/443ポートのアクセスを許可します。

ここまでの設定で問題なければ、ブラウザからサーバーのIPアドレスへアクセスしましょう。次の画像の通り、nginxのスタート画面が表示されるはずです。

nginxのスタート画面
nginxのスタート画面

nginxのドキュメントルートの変更

nginxのドキュメントルートを変更するには default ファイルを書き換えます。

shell
$ sudo vi /etc/nginx/sites-enabled/default
default ファイル内のrootを行を書き換えてみましょう。
# root /var/www/html;
root /home/ubuntu/kitchen-note.fun/output;

設定ファイルを書き換えたら、nginxを再起動させて設定内容を反映させます。

shell
$ sudo systemctl restart nginx

Webドキュメントをubuntuのホームディレクトリ配下にする場合、/home/ubuntu ディレクトリの権限を755に設定しないとnginxがアクセスできないので注意が必要です。

wwwありとなしを統一する

まず大前提として、お使いのネームサーバー(DNS)でwwwのサブドメインを追加します。

wwwをCNAMEに追加
wwwをCNAMEに追加

wwwありとなしを統一する場合には簡単です。/etc/nginx/sites-enabled/default の設定に以下を追記します。

ini
server {
    server_name www.kitchen-note.fun;
    return 301 $scheme://kitchen-note.fun$request_uri;
}

wwwでアクセスされたものは、wwwなしのドメインに301でリダイレクトされます。

ただし、Let's Encryptを使ったhttpsによるwwwサブドメインの転送を行いたい場合はちょっと複雑になります。こちらに関しましては、解決方法を次の記事の後半に書きました。

関連記事

最後までご覧いただきありがとうございます!

▼ 記事に関するご質問やお仕事のご相談は以下よりお願いいたします。
お問い合わせフォーム

関連記事