Nginx
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[Network]] > [[Webサーバー]] > Nginx
RIGHT:2016-01-10 (日) 公開
//RIGHT:2020-06-18 (木) 更新
//----- CSS for TABLE -----
#html{{
<style type="text/css">
table, td, th { border: 1px #ccc solid; }
td, th { padding: 5px; }
</style>
}}
//----- CSS for TABLE -----
//===== ===== ===== ===== ===== ===== ===== ===== ===== =...
#contents
* Nginxとは? [#ba514da2]
Nginxは、最近人気のWebサーバソフトです。Apacheの代わりに...
[[nginx - Wikipedia>http://ja.wikipedia.org/wiki/Nginx]]
>nginx(「エンジンエックス」と発音) は、軽量高性能なWeb...
* リンク [#r8193825]
- 公式サイト(英語)
http://www.nginx.org/
- wiki(日本語)
http://wiki.nginx.org/NginxJa
- forum(英語)
http://forum.nginx.org/
* 参考書 [#aabfd690]
#html{{
<table border="0" cellpadding="5"><tr><td valign="top"><a...
}}
* インストール(CentOS編) [#l2bc77da]
NginxをCentOSにソースコードからコンパイルして、手動でイン...
(参考)
- CentOSにNginxをインストールする | HAPPY*TRAP
http://www.happytrap.jp/blogs/2012/02/23/8243/
** ダウンロード [#g8692e34]
''Nginx最新安定版(stable)を公式サイトからダウンロードし...
+ Nginx最新安定版のバージョンを公式サイトで確認します。
http://nginx.org/en/download.html
(例) Stable version nginx-1.2.6
+ 作業ディレクトリ(tmp)に移動します。
$ cd /tmp
+ 圧縮ファイルをダウンロードします。
$ wget http://nginx.org/download/nginx-1.2.6.tar.gz
(wgetコマンドがインストールされていない場合は、「sudo yu...
+ ダウンロードしたファイルを解凍します。
$ tar zxf nginx-1.2.6.tar.gz
+ カレントディレクトリを移動します。
$ cd nginx-1.2.6
** コンパイル [#v4b57607]
+ Nginx用のユーザーを作成します。
$ sudo useradd -s/sbin/nologin -d/usr/local/nginx -M nginx
+ Nginxに必要なライブラリをインストールします。
(例では、必須ライブラリの他にHTTPSのコンテンツを処理する...
$ sudo yum install gcc
$ sudo yum install pcre pcre-devel
$ sudo yum install zlib zlib-devel
$ sudo yum install openssl openssl-devel
+ 使用するオプションを付けてconfigureを実行します。
$ ./configure --prefix=/usr/local/nginx-1.2.6 --user=ngi...
+ コンパイルして、インストールします。
$ make
$ sudo make install
** シンボリックリンクの作成 [#b778e349]
+Nginxをバージョンアップするごとに異なるprefixを指定する...
ln -s /usr/local/nginx-1.2.6 /usr/local/nginx
* 自動起動スクリプト [#t5fb789b]
''Nginxをソースからインストールした場合は、起動スクリプト...
+ /etc/init.dにnginxのプログラム起動スクリプトのファイル...
# vi /etc/init.d/nginx
+ ファイル内容は、以下のようにします。
#!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
# cf. http://www.happytrap.jp/blogs/2012/02/23/8243/
#
# chkconfig: - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reve...
# proxy and IMAP/POP3 proxy server
# processname: nginx
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
lockfile=/usr/local/nginx/logs/nginx.lock
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
configtest || return $?
stop
sleep 1
start
}
reload() {
configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
configtest() {
$nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|cond...
exit 2
esac
+ 起動スクリプトに実行権限を付与します。
$ sudo chmod +x /etc/init.d/nginx
+ 自動起動の設定をします。
$ sudo chkconfig --add nginx
$ sudo chkconfig nginx on
これで、serviceコマンドでも起動・終了・再起動が実行できる...
+ 自動起動の設定(ランレベル)を確認します。
$ sudo chkconfig --list nginx
これで、
''nginx 0:off 1:off 2:on 3:on 4:on 5:on 6:off''
と表示されたらOKです。
* 基本操作 [#bbd40afa]
- 設定ファイルの文法チェック
$ sudo service nginx configtest
- 起動
$ sudo service nginx start
- 終了
$ sudo service nginx stop
- 再起動
$ sudo service nginx restart
* バーチャルホストの設定 [#u9850fc8]
-(参考)
nginx の バーチャルホスト設定 - hogeskyの日記
http://d.hatena.ne.jp/hogesky/20120416/1334588838
>''バーチャルホスト設定ファイルの置き場を作る''
バーチャルホストの設定は、nginx のインストールディレクト...
このファイルに各ドメインの設定をそのままベタ書きしてもい...
まず、nginxのインストールディレクトリにドメイン毎の設定フ...
sudo mkdir /usr/local/nginx/sites-available
sudo mkdir /usr/local/nginx/sites-enabled
Apache2 風の構成。
&color(red){sites-available にドメイン毎の設定ファイルを...
こういうふうにしておくメリットは、いくつかある。
・バーチャルホストの使用/不使用を簡単に切り替えられる。
・あるドメインの利用を一時的に止めるときは、単にシンボリ...
・あるドメインが別のサーバに引越す際に、設定ファイルをそ...
・ドメイン毎に設定ファイルが分かれているため、編集失敗の...
ディレクトリを作ったら、nginx.conf の httpセクションに次...
include /usr/local/nginx/sites-enabled/*;
記述場所は、33行目の「#gzip on;」の後あたりが分かりやすい...
なるほど~!(・∀・)
+ Ubuntu+Apache2風のフォルダを用意して、バーチャルホスト...
+ バーチャルホストの設定(「server」セクションの部分)を...
+ シンボリックリンクで、バーチャルホストの稼動状態を切り...
バーチャルホストの数が少なくて、手動で管理するなら、この...
(=もっと多くなったら、RDBを使って管理した方が良い?)
上記の方法をちょっと手直しするなら、自分の環境だと、「/us...
# cd /home
# mkdir nginx
# chown nginx:nginx nginx
# chmod 0700 nginx
# ls -la
drwx------ 2 nginx nginx 4096 Jul 14 15:06 nginx
# mkdir /home/nginx/conf/sites-available
# mkdir /home/nginx/conf/sites-enabled
# vi /usr/local/nginx/conf/nginx.conf
include /home/nginx/conf/sites-enabled/*;
というかんじでOK。
** バーチャルホストの設定ファイルを手動で管理 [#vb1bc0ce]
(Linuxコマンドの復習)
- コピー
file1をfile2というファイルとして複製
$ cp file1 file2
- シンボリック・リンク
シンボリック・リンクは、リンク先へのショートカットファイル
$ ln -s リンク元 リンク先
** 作業例 [#ecf9739d]
- /home/nginx/conf/sites-available ← サブドメインの設定フ...
- /home/nginx/conf/sites-enabled ← 設定ファイルのシンボリ...
シンボリックリンクの作成/削除で稼動状態を切り替えられる。
=シンボリックリンクを削除すればサブドメインを停止できる。
*** (1) サブドメインの設定ファイルを作成 [#f5a0a741]
$ su ← サーバー管理者になる
$ cd /home/nginx/conf/sites-available
$ cp virtualhost_template.conf virtualhost_subdomain.con...
$ chown nginx:nginx virtualhost_subdomain.conf ← 属性を...
$ vi virtualhost_subdomain.conf ← 設定ファイルの中身を編...
*** (2) シンボリックリンクを作成 [#pdf6a32c]
ln -s リンク元 リンク先
$ ln -s /home/nginx/conf/sites-available/virtualhost_sub...
*** (3) ディレクトリーの作成 [#z2d02504 Gateway Time-out ...
$ cd /…/public_html/ ←Web用の公開ディレクトリーへ移動
$ mkdir subdomain
$ chown nginx:nginx subdomain ← subdomainを利用する作業...
*** (4) Nginxを再起動 [#e9832872]
$ service nginx configtest ← 設定ファイルの文法チェック...
$ service nginx restart ← 再起動
/////////////////////////////////////////////////////////...
* 504 Gateway Time-out の解決策 [#maeb3316]
Nginxの設定ファイルを編集して、serverセクションにあるfast...
+ サーバー側の処理時間がやけに長いなーと思って確認したら...
+ 根本的にはMySQLのインデックスをチューンナップしたりしな...
+ 欲張って、余計なINDEXを張っていたら、INSERT時にINDEXデ...
(参考)
- KB Plesk: Nginx 504 タイムアウトエラー
https://kb.plesk.com/jp/120210
- nginx でupstream timed outエラーが発生した時の対処 | レ...
http://server-setting.info/centos/nginx-upstream-timed-ou...
- 504 Gateway Time-out が出た際は Elastic Load Balancing ...
http://qiita.com/kotarella1110/items/169ddcef03983f5d64b2
- Winux/Lindows |Nginx+php-fpmで502とか504とかのエラーを...
http://mypace75.blog92.fc2.com/blog-entry-992.html
>解決方法
結論的にはNginxの設定ファイルでserverセクションに fastcgi...
→1000秒(16分40秒)もかかる処理って、どんだけwww
server {
listen 80;
server_name example.com;
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log info;
root /var/www/nginx;
# デフォルト 60秒を120秒までアップします。
fastcgi_read_timeout 120;
...
}
- php-fpm+nginxで「504 Gateway Time-out」が出た時の対処...
http://eno0514.hatenadiary.jp/entry/20150614/1434228237
最初に試してほしい対処法は処理の実行時間を延ばすことです。
必要な設定は以下の3つになります。
• php.ini
max_execution_time = 180
• php-fpm.conf
request_terminate_timeout 180
• nginx.conf
fastcgi_read_timeout 180
単純に解決しない場合は、Nginxの他に、PHPやPHP-FPMの設定な...
*インストール(Ubuntu編) [#g4e605f2]
[[NginxをUbuntuにインストール>Nginx_Ubuntu]]のページを参...
//----------------------------------------
// A8 Ads - sakura VPS banner
~
#html{{
<center><a href="http://px.a8.net/svt/ejp?a8mat=1O73NW+3B...
}}
//----------------------------------------
終了行:
[[Network]] > [[Webサーバー]] > Nginx
RIGHT:2016-01-10 (日) 公開
//RIGHT:2020-06-18 (木) 更新
//----- CSS for TABLE -----
#html{{
<style type="text/css">
table, td, th { border: 1px #ccc solid; }
td, th { padding: 5px; }
</style>
}}
//----- CSS for TABLE -----
//===== ===== ===== ===== ===== ===== ===== ===== ===== =...
#contents
* Nginxとは? [#ba514da2]
Nginxは、最近人気のWebサーバソフトです。Apacheの代わりに...
[[nginx - Wikipedia>http://ja.wikipedia.org/wiki/Nginx]]
>nginx(「エンジンエックス」と発音) は、軽量高性能なWeb...
* リンク [#r8193825]
- 公式サイト(英語)
http://www.nginx.org/
- wiki(日本語)
http://wiki.nginx.org/NginxJa
- forum(英語)
http://forum.nginx.org/
* 参考書 [#aabfd690]
#html{{
<table border="0" cellpadding="5"><tr><td valign="top"><a...
}}
* インストール(CentOS編) [#l2bc77da]
NginxをCentOSにソースコードからコンパイルして、手動でイン...
(参考)
- CentOSにNginxをインストールする | HAPPY*TRAP
http://www.happytrap.jp/blogs/2012/02/23/8243/
** ダウンロード [#g8692e34]
''Nginx最新安定版(stable)を公式サイトからダウンロードし...
+ Nginx最新安定版のバージョンを公式サイトで確認します。
http://nginx.org/en/download.html
(例) Stable version nginx-1.2.6
+ 作業ディレクトリ(tmp)に移動します。
$ cd /tmp
+ 圧縮ファイルをダウンロードします。
$ wget http://nginx.org/download/nginx-1.2.6.tar.gz
(wgetコマンドがインストールされていない場合は、「sudo yu...
+ ダウンロードしたファイルを解凍します。
$ tar zxf nginx-1.2.6.tar.gz
+ カレントディレクトリを移動します。
$ cd nginx-1.2.6
** コンパイル [#v4b57607]
+ Nginx用のユーザーを作成します。
$ sudo useradd -s/sbin/nologin -d/usr/local/nginx -M nginx
+ Nginxに必要なライブラリをインストールします。
(例では、必須ライブラリの他にHTTPSのコンテンツを処理する...
$ sudo yum install gcc
$ sudo yum install pcre pcre-devel
$ sudo yum install zlib zlib-devel
$ sudo yum install openssl openssl-devel
+ 使用するオプションを付けてconfigureを実行します。
$ ./configure --prefix=/usr/local/nginx-1.2.6 --user=ngi...
+ コンパイルして、インストールします。
$ make
$ sudo make install
** シンボリックリンクの作成 [#b778e349]
+Nginxをバージョンアップするごとに異なるprefixを指定する...
ln -s /usr/local/nginx-1.2.6 /usr/local/nginx
* 自動起動スクリプト [#t5fb789b]
''Nginxをソースからインストールした場合は、起動スクリプト...
+ /etc/init.dにnginxのプログラム起動スクリプトのファイル...
# vi /etc/init.d/nginx
+ ファイル内容は、以下のようにします。
#!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
# cf. http://www.happytrap.jp/blogs/2012/02/23/8243/
#
# chkconfig: - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reve...
# proxy and IMAP/POP3 proxy server
# processname: nginx
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
lockfile=/usr/local/nginx/logs/nginx.lock
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
configtest || return $?
stop
sleep 1
start
}
reload() {
configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
configtest() {
$nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|cond...
exit 2
esac
+ 起動スクリプトに実行権限を付与します。
$ sudo chmod +x /etc/init.d/nginx
+ 自動起動の設定をします。
$ sudo chkconfig --add nginx
$ sudo chkconfig nginx on
これで、serviceコマンドでも起動・終了・再起動が実行できる...
+ 自動起動の設定(ランレベル)を確認します。
$ sudo chkconfig --list nginx
これで、
''nginx 0:off 1:off 2:on 3:on 4:on 5:on 6:off''
と表示されたらOKです。
* 基本操作 [#bbd40afa]
- 設定ファイルの文法チェック
$ sudo service nginx configtest
- 起動
$ sudo service nginx start
- 終了
$ sudo service nginx stop
- 再起動
$ sudo service nginx restart
* バーチャルホストの設定 [#u9850fc8]
-(参考)
nginx の バーチャルホスト設定 - hogeskyの日記
http://d.hatena.ne.jp/hogesky/20120416/1334588838
>''バーチャルホスト設定ファイルの置き場を作る''
バーチャルホストの設定は、nginx のインストールディレクト...
このファイルに各ドメインの設定をそのままベタ書きしてもい...
まず、nginxのインストールディレクトリにドメイン毎の設定フ...
sudo mkdir /usr/local/nginx/sites-available
sudo mkdir /usr/local/nginx/sites-enabled
Apache2 風の構成。
&color(red){sites-available にドメイン毎の設定ファイルを...
こういうふうにしておくメリットは、いくつかある。
・バーチャルホストの使用/不使用を簡単に切り替えられる。
・あるドメインの利用を一時的に止めるときは、単にシンボリ...
・あるドメインが別のサーバに引越す際に、設定ファイルをそ...
・ドメイン毎に設定ファイルが分かれているため、編集失敗の...
ディレクトリを作ったら、nginx.conf の httpセクションに次...
include /usr/local/nginx/sites-enabled/*;
記述場所は、33行目の「#gzip on;」の後あたりが分かりやすい...
なるほど~!(・∀・)
+ Ubuntu+Apache2風のフォルダを用意して、バーチャルホスト...
+ バーチャルホストの設定(「server」セクションの部分)を...
+ シンボリックリンクで、バーチャルホストの稼動状態を切り...
バーチャルホストの数が少なくて、手動で管理するなら、この...
(=もっと多くなったら、RDBを使って管理した方が良い?)
上記の方法をちょっと手直しするなら、自分の環境だと、「/us...
# cd /home
# mkdir nginx
# chown nginx:nginx nginx
# chmod 0700 nginx
# ls -la
drwx------ 2 nginx nginx 4096 Jul 14 15:06 nginx
# mkdir /home/nginx/conf/sites-available
# mkdir /home/nginx/conf/sites-enabled
# vi /usr/local/nginx/conf/nginx.conf
include /home/nginx/conf/sites-enabled/*;
というかんじでOK。
** バーチャルホストの設定ファイルを手動で管理 [#vb1bc0ce]
(Linuxコマンドの復習)
- コピー
file1をfile2というファイルとして複製
$ cp file1 file2
- シンボリック・リンク
シンボリック・リンクは、リンク先へのショートカットファイル
$ ln -s リンク元 リンク先
** 作業例 [#ecf9739d]
- /home/nginx/conf/sites-available ← サブドメインの設定フ...
- /home/nginx/conf/sites-enabled ← 設定ファイルのシンボリ...
シンボリックリンクの作成/削除で稼動状態を切り替えられる。
=シンボリックリンクを削除すればサブドメインを停止できる。
*** (1) サブドメインの設定ファイルを作成 [#f5a0a741]
$ su ← サーバー管理者になる
$ cd /home/nginx/conf/sites-available
$ cp virtualhost_template.conf virtualhost_subdomain.con...
$ chown nginx:nginx virtualhost_subdomain.conf ← 属性を...
$ vi virtualhost_subdomain.conf ← 設定ファイルの中身を編...
*** (2) シンボリックリンクを作成 [#pdf6a32c]
ln -s リンク元 リンク先
$ ln -s /home/nginx/conf/sites-available/virtualhost_sub...
*** (3) ディレクトリーの作成 [#z2d02504 Gateway Time-out ...
$ cd /…/public_html/ ←Web用の公開ディレクトリーへ移動
$ mkdir subdomain
$ chown nginx:nginx subdomain ← subdomainを利用する作業...
*** (4) Nginxを再起動 [#e9832872]
$ service nginx configtest ← 設定ファイルの文法チェック...
$ service nginx restart ← 再起動
/////////////////////////////////////////////////////////...
* 504 Gateway Time-out の解決策 [#maeb3316]
Nginxの設定ファイルを編集して、serverセクションにあるfast...
+ サーバー側の処理時間がやけに長いなーと思って確認したら...
+ 根本的にはMySQLのインデックスをチューンナップしたりしな...
+ 欲張って、余計なINDEXを張っていたら、INSERT時にINDEXデ...
(参考)
- KB Plesk: Nginx 504 タイムアウトエラー
https://kb.plesk.com/jp/120210
- nginx でupstream timed outエラーが発生した時の対処 | レ...
http://server-setting.info/centos/nginx-upstream-timed-ou...
- 504 Gateway Time-out が出た際は Elastic Load Balancing ...
http://qiita.com/kotarella1110/items/169ddcef03983f5d64b2
- Winux/Lindows |Nginx+php-fpmで502とか504とかのエラーを...
http://mypace75.blog92.fc2.com/blog-entry-992.html
>解決方法
結論的にはNginxの設定ファイルでserverセクションに fastcgi...
→1000秒(16分40秒)もかかる処理って、どんだけwww
server {
listen 80;
server_name example.com;
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log info;
root /var/www/nginx;
# デフォルト 60秒を120秒までアップします。
fastcgi_read_timeout 120;
...
}
- php-fpm+nginxで「504 Gateway Time-out」が出た時の対処...
http://eno0514.hatenadiary.jp/entry/20150614/1434228237
最初に試してほしい対処法は処理の実行時間を延ばすことです。
必要な設定は以下の3つになります。
• php.ini
max_execution_time = 180
• php-fpm.conf
request_terminate_timeout 180
• nginx.conf
fastcgi_read_timeout 180
単純に解決しない場合は、Nginxの他に、PHPやPHP-FPMの設定な...
*インストール(Ubuntu編) [#g4e605f2]
[[NginxをUbuntuにインストール>Nginx_Ubuntu]]のページを参...
//----------------------------------------
// A8 Ads - sakura VPS banner
~
#html{{
<center><a href="http://px.a8.net/svt/ejp?a8mat=1O73NW+3B...
}}
//----------------------------------------
ページ名: