Memo

メモ > サーバ > 構築: Webサーバ設定 > nginx

■nginx
※Apacheの代替になり得るとされているWebサーバ ※Apacheよりも大量のアクセスを捌くことができるとされている ※Basic認証やリダイレクトの方法がApacheと同じではないので注意 nginxの設定ファイルに記述する必要があり、SSHで設定再読み込みやミドルウェア再起動が発生する NginxとApacheって何が違うの?? - Qiita https://qiita.com/hiroaki-u/items/f2455d62f8a4017663cb Re: NginxとApacheって何が違うの?? - inductor's blog https://blog.inductor.me/entry/2022/05/31/150707 Apacheからnginxへ移行する際に気になったことメモ - Qiita https://qiita.com/nayuneko/items/a3b326e2e9466e4117d6 Nginxとは?Apacheとの違いについてエンジニアに聞いてみた https://academy.gmocloud.com/qa/20160616/2761 EC2(Amazon Linux)に Nginx をインストールしてBasic認証する http://dev.classmethod.jp/etc/amazon_linux_nginx_basic_auth/ Nginxセキュリティ設定 http://qiita.com/hideji2/items/1421f9bff2a97a5e5794 nginxのパラメータチューニングとh2o http://qiita.com/cubicdaiya/items/235777dc401ec419b14e Nginx導入時やること - Qiita https://qiita.com/kidach1/items/985efebba639713c562e nginxの設定ファイル nginx.conf の読み方 超入門 - 或る阿呆の記 https://hack-le.com/nginx/ Nginx設定のまとめ - Qiita https://qiita.com/syou007/items/3e2d410bbe65a364b603 nginxについてまとめ(設定編) - Qiita https://qiita.com/morrr/items/7c97f0d2e46f7a8ec967 nginx.confが読めるようになる | 魔法使いの卵 http://raichel.tech/web/read-nginx-conf nginxでは、.htaccessを使用できない 設定の変更にはnginxの設定ファイル調整が伴うので注意(FTP経由で調整を…というわけにはいかない) Apacheのように: .htaccess | NGINX https://mogile.web.fc2.com/nginx_wiki/start/topics/examples/likeapache-htaccess/ nginxに.htaccessを移行する。 - Qiita https://qiita.com/rdonster/items/a49b1861003645e7054b Nginxなはずのエックスサーバーで.htaccessが有効な理由 | けーちゃんの個人サイト https://affi-sapo.com/1264/ htaccessファイルはnginxのに変換 https://winginx.com/ja/htaccess なおApache+PHP-FPMでも.htaccessでのPHP設定が行えないようだが、 対象のディレクトリ内に .user.ini というファイルを作成することで、PHPの設定ができるみたい(未検証) PHP-FPM 環境で .htaccess に php_value は書ける? - mattintosh note https://mattintosh.hatenablog.com/entry/20200605/1591359561 PHP-FPM 環境で .htaccess に php_value を使用したら 500 Internal Server Error - Crieit https://crieit.net/posts/php-fpm-php-value-error-20211124 ■インストール ※Amazon Linux 2にインストールする場合の手順は後述
# yum -y install nginx … nginxをインストール # vi /etc/nginx/nginx.conf … nginxの設定ファイルを編集
http { server_tokens off; … 追加。レスポンスにミドルウェア名とバージョンを含めないようにする
# service nginx start … nginxを起動 # chkconfig nginx on … nginxの自動起動を設定 # nginx -v … nginxのインストールを確認
アクセスログとエラーログは以下の場所にある /var/log/nginx/access.log /var/log/nginx/error.log ログフォーマットも /etc/nginx/nginx.conf で変更できる。以下は変更例
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; ↓以下のように変更 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for" ' '$request_time $http_x_forwarded_for $http_x_forwarded_proto';
ELB経由のnginxでアクセス元IPアドレスをアクセスログの$remote_addrとして書くようにする - Qiita https://qiita.com/toshihirock/items/1de2613bb7c95d486dc1 nginx: ログ出力形式の変更と、ログにレスポンスタイムを出力する方法 - エラーの向こうへ https://tech.mktime.com/entry/259 ■インストール(Amazon Linux 2 の場合) Amazon Linux 2 の場合、Extrasリポジトリからインストールする必要がある
# amazon-linux-extras list # amazon-linux-extras install nginx1.12 -y # systemctl start nginx # systemctl enable nginx
AmazonLinux2にNginxを導入する - Qiita https://qiita.com/ashbrain/items/4de51ff33e4bddf1278b ■ファイヤーウォール設定(iptablesを使用している場合の設定)
# vi /etc/sysconfig/iptables … ファイヤーウォールを設定(80ポートを開ける)
#HTTPを許可 -A MY-FIREWALL -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
# service iptables restart … ファイヤーウォールを再起動
■動作確認
# vi /usr/share/nginx/html/index.html … テストページ作成(もとのファイルを上書き)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>テスト</title> </head> <body> <p>テスト。</p> </body> </html>
http://refirio.net/ のようにブラウザからアクセスを確認 ■公開ディレクトリの変更 公開ディレクトリを変更したい場合、以下の設定を行う
# vi /etc/nginx/nginx.conf … nginxの設定ファイルを編集
server { listen 80 default_server; listen [::]:80 default_server; #server_name localhost; server_name refirio.net; … 必要に応じてサーバー名を指定 #root /usr/share/nginx/html; root /var/www/html; … 公開ディレクトリを変更
# mkdir -p /var/www/html/ … 公開用ディレクトリを作成(存在しない場合) # chown nginx. /var/www/ … 公開用ディレクトリの所有者をnginxに変更 # chmod 775 /var/www/ … nginxグループのユーザに読み書き実行を許可 # chown nginx. /var/www/html/ … ドキュメントルートの所有者を「nginx」に変更 # chmod 775 /var/www/html/ … nginxグループのユーザに読み書き実行を許可 # ll /var/www/ … ドキュメントルートの所有者を確認 合計 0 drwxrwxr-x 2 nginx nginx 6 2月 3 13:58 html # vi /var/www/html/index.html … トップページを作成(適当な内容を記述しておく) # service nginx configtest … 設定ファイルの構文をチェック(「nginx -t -c /etc/nginx/nginx.conf」でも可) # service nginx restart … nginxを再起動
※設定ファイルの構文チェックは、/etc/nginx/conf.d/https.conf などinclude対象のファイルをチェックすると文法エラーになる /etc/nginx/nginx.conf など、大元のファイルをチェックする必要がある

Advertisement