Nginxのコンパイルインストール
1. ファイアウォールの無効化と必要なソフトウェアパッケージの準備
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
# パッケージを/usr/local/srcディレクトリにダウンロード
cd /usr/local/src
wget http://nginx.org/download/nginx-1.20.1.tar.gz
2. 依存パッケージのインストール
yum -y install gcc pcre-devel openssl-devel zlib-devel
# Nginxの設定と実行にはpcre、zlibなどのソフトウェアパッケージのサポートが必要です
# これらの開発パッケージをインストールして、対応するライブラリとヘッダーファイルを提供します
3. 実行ユーザーとグループの作成
Nginxサービスプログラムはデフォルトでnobodyとして実行されますが、アクセス権限をより正確に制御するために、専用のユーザーアカウントを作成することをお勧めします。
useradd -r -s /sbin/nologin nginx
4. Nginxのコンパイルとインストール
tar xf nginx-1.20.1.tar.gz
cd nginx-1.20.1/
# ソフトウェアパッケージを解凍
mkdir /usr/local/nginx -p
./configure --help
# ヘルプモジュールを表示
./configure --prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre \
--with-stream \
--with-stream_ssl_module \
--with-stream_realip_module
make -j4 && make install
chown -R nginx:nginx /usr/local/nginx
# 権限を変更
インストールが完了すると、4つの主要ディレクトリが生成されます:
- conf:Nginxのすべての設定ファイルを保存します。nginx.confはNginxサーバーの最も重要なコア設定ファイルです。他の.confファイルはNginxの関連機能を設定するために使用されます。
- html:NginxサーバーのWebファイルを保存しますが、他のディレクトリに変更してWebファイルを保存することもできます。
- logs:Nginxサーバーのアクセスログやエラーログなどを保存します。logsディレクトリは/var/log/nginxなど他のパスに配置できます。
- sbin:Nginxのバイナリ起動スクリプトを保存し、異なるパラメータを受け入れてさまざまな機能を実現できます。
5. シンボリックリンクの作成とNginxの起動
########## 起動 ##########
/usr/local/nginx/sbin/nginx
# 絶対パスで起動
ln -s /usr/local/nginx/sbin/nginx /usr/bin/
# シンボリックリンクを作成後、直接nginxコマンドで起動
########## 停止 ###########
pkill -f nginx
6. Nginxの自動起動ファイルの作成
cat > /usr/lib/systemd/system/nginx.service << 'EOF'
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
[Install]
WantedBy=multi-user.target
EOF
6.1 設定の再読み込み、自動起動の有効化、およびサービスの開始
systemctl daemon-reload # 設定を再読み込み
systemctl enable --now nginx # 自動起動を有効化して即時起動
systemctl status nginx # サービス状態を確認(検証)
YUMを使用したインストール
# CentOS7の場合、EPELリポジトリのインストールが必要です
cd /etc/yum.repos.d
cat > epel.repo << 'EOF'
[epel]
name=Extra Packages for Enterprise Linux $releasever - $basearch
baseurl=https://mirrors.aliyun.com/epel/$releasever/$basearch
enabled=1
gpgcheck=0
EOF
yum install -y epel-release
yum install nginx -y