このサイトは、只今WEB業界で活躍中のデザイナー、プログラマーの方々の情報を集めたweb統合情報サイトです。

Archives Details

Ubuntu 20.04 LTS サーバ構築 – Nginxインストール

ubuntu

2022.05.01

この記事は最終更新日から1年以上が経過しています。

前回のUbuntu 20.04 LTS サーバ構築 – 初期セットアップの続きです。

メニュー

Nginxのインストール

ローカルパッケージインデックスを更新し、nginxをインストール

$ sudo apt update
$ sudo apt install nginx

ファイアウォールの調整

ufwで使用できるアプリケーション構成を確認。

$ sudo ufw app list

アプリケーションプロファイルの一覧が表示されます。

Output
Available applications:
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH

Nginxには3つのプロファイルがあります。

  • Nginx Full: ポート80とポート443の両方を開放。
  • Nginx HTTP: ポート80のみ開放。
  • Nginx HTTPS: ポート443のみ開放。

後ほど、HTTPSの設定も行うので、Nginx Fullを選択し有効にしておきます。

$ sudo ufw allow 'Nginx Full'

変更後、適応されているのを確認。

$ sudo ufw status

許可されたHTTPトラフィックが出力表示されます。

Output
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
Nginx HTTP                 ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

Webサーバーの確認

インストール後Nginxは自動起動するので、起動確認。

$ systemctl status nginx
Output
● 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 Wed 2022-04-13 18:21:02 UTC; 23h ago
     Docs: man:nginx(8)
 Main PID: 2369 (nginx)
    Tasks: 2 (limit: 1153)
   Memory: 6.6M
   CGroup: /system.slice/nginx.service
           ├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
           └─2380 nginx: worker process

サーバーのIPアドレスをicanhazip.comツールを用いて確認。

$ curl -4 icanhazip.com

ブラウザのアドレスバーにIPアドレスを入力。

http://your_server_ip

デフォルトのNginxページの表示が確認できます。

サーバーブロックのセットアップ

Nginxには、デフォルトで有効になっているサーバーブロックとは別に`/var/www`内に新たにディレクトリ構造を作成していきます。

(your_domainは取得、設定したドメイン)

$ sudo mkdir -p /var/www/your_domain/html

$USER 環境変数を用いて、ディレクトリの所有権を割り当てます。

$ sudo chown -R $USER:$USER /var/www/your_domain/html

所有者には読み取り・書き込み・実行可能権限を、グループには読み取り・実行可能権限のみをそれぞれ付与します。

$ sudo chmod -R 755 /var/www/your_domain

サンプル index.html ページを作成します。

$ vim /var/www/your_domain/html/index.html

サンプルHTML
/var/www/your_domain/html/index.html

<html><head><title>My Home page</title></head><body><h1>Welcome! My website</h1></body></html>

Nginxのサーバーブロック設定ファイルを作成します。

$ sudo vim /etc/nginx/sites-available/your_domain

構成ブロックを作成
/etc/nginx/sites-available/your_domain

server {
        listen 80;
        listen [::]:80;

        root /var/www/your_domain/html;
        index index.html index.htm index.nginx-debian.html;

        server_name your_domain www.your_domain;

        location / {
                try_files $uri $uri/ =404;
        }
}

sites-enabled ディレクトリにリンクを作成し、ファイルを有効にします。

$ sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/

サーバー名を追加することで発生する可能性があるハッシュバケットメモリの問題を回避するために、 /etc/nginx/nginx.conf ファイルを修正。

$ sudo vim /etc/nginx/nginx.conf

server_names_hash_bucket_size のコメントを外します。

/etc/nginx/nginx.conf

...
http {
    ...
    server_names_hash_bucket_size 64;
    ...
}
...

Nginxファイルに構文エラーがないことをテスト。

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

問題なければ、Nginxを再起動して変更を有効にします。

$ sudo systemctl restart nginx

http://your_domainまたはhttp://www.your_domain をブラウザで確認。以下のように表示。

その他の設定

これらの設定は任意で設定していきます。

Access Log設定
$ sudo vim /etc/nginx/nginx.conf
location ~* \.(?:css(\.map)?|js(\.map)?|jpe?g|png|gif|ico|cur|heic|webp|tiff?|mp3|m4a|aac|ogg|midi?|wav|mp4|mov|webm|mpe?g|avi|ogv|flv|wmv)$ {
    expires 7d;
    access_log off;
}

location ~* \.(?:svgz?|ttf|ttc|otf|eot|woff|woff2)$ {
    add_header Access-Control-Allow-Origin "*";
    expires 7d;
    access_log off;
}
Gzip設定

デフォルトではコメントアウトされているので、コメントアウト解除。

$ sudo vim /etc/nginx/nginx.conf
gzip on;

# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

続いて、Let’s Encryptで、TLS設定を行っていきましょう。

Ubuntu 20.04 LTS サーバ構築 – Let’s EncryptでSSL/TLS化

Comment

Related Article

Ubuntu 20.04 LTS サーバ構築 – DKIM、DMARCを設定する

2022.05.01

Ubuntu 20.04 LTS サーバ構築 – Postfix Let’s EncryptでTLS化

2022.05.01

Ubuntu 20.04 LTS サーバ構築 – Postfix SASL認証

2022.05.01

Ubuntu 20.04 LTS サーバ構築 – Dovecotインストール

2022.05.01

Ubuntu 20.04 LTS サーバ構築 – Postfixインストール

2022.05.01

Ubuntu 20.04 LTS サーバ構築 – Let’s EncryptでSSL/TLS化

2022.05.01

Ubuntu 20.04 LTS サーバ構築 – Nginxインストール

2022.05.01

Ubuntu 20.04 LTS サーバ構築 – 初期セットアップ

2022.05.01

Ubuntu 18.04 LTSで OpenGL開発

2019.05.20

平成最後のお買い物!!「Logicool MX Master 2 Wireless Mouse」と「K780 マルチデバイス BLUETOOTH® キーボード」で快適PC生活。

2019.04.27

CATEGORY LIST

LATEST NEWS

Rust - Actix Web mongo ユーザー登録 JWT認証

Rust

2024.03.24

Rust - Actix Web JWT 認証認可 APIの作成

Rust

2024.02.25

Rust - Actix Web × JSON 静的ファイルをAPIで返却

Rust

2024.01.19

Rust - Actix Web × MongoDB環境をサクッと起動

Rust

2024.01.18

5分で学ぶ RustでWave Function Collapse (波動関数崩壊アルゴリズム)

Rust

2024.01.15

LLaMAモデル GGMLフォーマット(llama.cpp)をRustフレームワーク Leptosを用いて M1MacMiniでサクッと動かす。

Rust

2024.01.11

2024年 狙っているモバイルノートPC

tool

2024.01.07

MacOS XcodeにSDL2を追加

tool

2023.12.26

php 7.4にアップデート

PHP

2023.12.24

5分で覚える Flutter Flameで作る Wave Function Collapse - 波動関数崩壊アルゴリズム

AI・Bot・algorithm

2023.12.20

Flutter - Flameでゲーム作成 (キャラクターの移動)

Flutter

2023.07.23

Flutterで作る ChatGPT Prompt Manager

Flutter

2023.07.12

RANKING

Follow

SPONSOR

現在、掲載募集中です。



Links

About Us

WEBデザイナーの、WEBデザイナーによる、WEBデザイナーの為のサイト。「みんなで書こう!」と仲間を募ってみたが、結局書くのは自分だけとなってしまいました。日々のメモを綴っていきます。

Entry Profile

Graphical FrontEnd Engineer
- Daisuke Takayama

MAD CITY 北九州市で生まれ育つ。20代はバンド活動に明け暮れ、ふと「webデザイナーになりたい。」と思い、デジタルハリウッド福岡校入学。卒業後、数々の賞を受賞、web業界をざわつかせる。
現在、主に、ゲーム制作中心に港区六本木界隈で活動中。

FOLLOW US