私は Linux をいじっていますが、Linux での nginx サーバー環境のデプロイメントを完全には構成していません。ここ数日何もせずにデプロイしましたが、今、私は多くの問題に遭遇しました。環境構築ドキュメントがあり、使用後に問題が発生した場合は、一緒に話し合っていただければ幸いです。
|| 設置に必要な各種依赖包
sudo -s
LANG=C
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-develcurlcurl-devel e2fsprogs e2fsprogs-devel
krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers
1、PHP 5.2.14 のインストールに必要なサポート:
tar zxvf libiconv-1.13.1.tar.gz
cd libiconv-1.13.1/
./configure --prefix=/usr/local
作る
インストールする
CD ../
tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8/
./configure
作る
インストールする
/sbin/ldconfig
cd libltdl/
./configure --enable-ltdl-install
作る
インストールする
CD ../../
tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9/
./configure
作る
インストールする
CD ../
ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8
ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a
ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la
ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so
ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2
ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1
ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config
tar zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8/
/sbin/ldconfig
./configure
作る
インストールする
CD ../
/etc/ld.so.conf について:
このファイルは、承認時に使用されるアクティブ接続の経路を記録します。
默认情下、编译器は /lib と /usr/lib この 2 つの目録の下にあるファイルのみを使用します
自分自身が保存する可能性のあるファイルのパスを/etc/ld.so.confに追加するのは明智の選択
追加方法もその一例で、ファイルのパスを直接書き込むだけで OK です。例:
/usr/X11R6/lib
/usr/local/lib
/opt/lib
ldconfig は何ですか?
これは、root ユーザーが使用できるように、/etc/ld.so.conf に列挙されたルート ファイルを /etc/ld.so.cache に保存するプログラムであり、通常は /sbin にあります。したがって、一部のファイル ファイルをインストールするか、ld.so.conf を修正して新しいパスを追加した後、/sbin/ldconfig を実行する必要があり、すべてのファイル ファイルが ld.so.cache に保存されるようになります。ファイルの説明が /usr/lib にあり、使用されていない場合でも、結果として、ldconfig を変更すると、どのファイルでも実行できるようになります。 。
2. MySQL 5.5.3-m3 をコンパイルしてインストールします
/usr/sbin/groupadd mysql
/usr/sbin/useradd -g mysql mysql
tar zxvf mysql-5.5.3-m3.tar.gz
cd mysql-5.5.3-m3/
./configure --prefix=/home/pubsrc/mysql/ --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-big-tables --with-readline - -with-ssl --with-embedded-server --enable-local-infile --with-plugins=partition,innobase,myisammrg
作成&&作成インストール
chmod +w /home/pubsrc/mysql
chown -R mysql:mysql /home/pubsrc/mysql/
CD ../
①.mysqlデータベース格納ディレクトリを作成します
mkdir -p /home/pubsrc/mysql/data/
mkdir -p /home/pubsrc/mysql/logs/binlog/
mkdir -p /home/pubsrc/mysql/logs/relaylog/
chown -R mysql:mysql /home/pubsrc/mysql/
②. mysql ユーザーアカウントとしてデータテーブルを作成します:
/home/pubsrc/mysql/bin/mysql_install_db --basedir=/home/pubsrc/mysql --datadir=/home/pubsrc/mysql/data --user=mysql
③. my.cnf 設定ファイルを作成します:
vi /home/pubsrc/mysql/my.cnf
次のように入力します:
[クライアント]
#文字セットサーバー = utf8
ポート=3306
ソケット = /tmp/mysql.sock
[mysqld]
#文字セットサーバー = utf8
レプリケート無視データベース = mysql
レプリケート無視データベース = テスト
複製-無視-db = 情報スキーマ
ユーザー=mysql
ポート=3306
ソケット = /tmp/mysql.sock
basedir = /home/pubsrc/mysql
データディレクトリ = /home/pubsrc/mysql/data
ログエラー = /home/pubsrc/mysql/logs/mysql_error.log
pid ファイル = /home/pubsrc/mysql/mysql.pid
open_files_limit = 10240
back_log = 600
max_connections = 5000
max_connect_errors = 6000
テーブルキャッシュ = 614
外部ロック = FALSE
max_allowed_packet = 32M
sort_buffer_size = 1M
join_buffer_size = 1M
thread_cache_size = 300
#thread_concurrency = 8
クエリキャッシュサイズ = 512M
query_cache_limit = 2M
query_cache_min_res_unit = 2k
デフォルトストレージエンジン = MyISAM
スレッドスタック = 192K
transaction_isolation = 読み取りコミット済み
tmp_table_size = 246M
max_heap_table_size = 246M
長いクエリ時間 = 3
ログスレーブ更新
log-bin = /home/pubsrc/mysql/logs/binlog
binlog_cache_size = 4M
binlog_format = 混合
max_binlog_cache_size = 8M
max_binlog_size = 1G
リレーログインデックス = /home/pubsrc/mysql/logs/relaylog
リレーログ情報ファイル = /home/pubsrc/mysql/logs/relaylog
リレーログ = /home/pubsrc/mysql/logs/relaylog
expire_logs_days = 30
key_buffer_size = 256M
read_buffer_size = 1M
read_rnd_buffer_size = 16M
Bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover
インタラクティブタイムアウト = 120
wait_timeout = 120
名前解決をスキップ
#マスター接続再試行 = 10
スレーブスキップエラー = 1032,1062,126,1114,1146,1048,1396
#マスターホスト = 192.168.1.2
#マスターユーザー = ユーザー名
#マスターパスワード = パスワード
#マスターポート = 3306
サーバーID = 1
innodb_Additional_mem_pool_size = 16M
innodb_buffer_pool_size = 512M
innodb_data_file_path = ibdata1:256M:autoextend
innodb_file_io_threads = 4
innodb_thread_concurrency = 8
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 16M
innodb_log_file_size = 128M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_file_per_table = 0
#log-slow-queries = /home/pubsrc/mysql/logs/slow.log
#long_query_time = 10
[mysqldump]
早い
max_allowed_packet = 32M
④. MySQL データベースを管理するシェル スクリプトを作成します:
vi /home/pubsrc/mysql/mysql
#!/bin/sh
mysql_port=3306
mysql_username="管理者"
mysql_password="12345678"
function_start_mysql()
{
printf "MySQL を開始しています...n"
/bin/sh /home/pubsrc/mysql/bin/mysqld_safe --defaults-file=/home/pubsrc/mysql/my.cnf 2>&1 > /dev/null &
}
function_stop_mysql()
{
printf "MySQL を停止しています...n"
/home/pubsrc/mysql/bin/mysqladmin -u ${mysql_username} -p${mysql_password} -S /tmp/mysql.sock シャットダウン
}
function_restart_mysql()
{
printf "MySQL を再起動中...n"
function_stop_mysql
5寝
function_start_mysql
}
function_kill_mysql()
{
kill -9 $(ps -ef | grep 'bin/mysqld_safe' | grep ${mysql_port} | awk '{printf $2}')
kill -9 $(ps -ef | grep 'libexec/mysqld' | grep ${mysql_port} | awk '{printf $2}')
}
if [ "$1" = "開始" ];
function_start_mysql
elif [ "$1" = "停止" ];
function_stop_mysql
elif [ "$1" = "再起動" ];
function_restart_mysql
elif [ "$1" = "kill" ];
function_kill_mysql
それ以外
printf "使用法: /data0/mysql/${mysql_port}/mysql {start|stop|restart|kill}ん」
ふぃ
⑤. シェルスクリプトに実行権限を付与します:
chmod +x /home/pubsrc/mysql/mysql
⑥ MySQL を起動します:
/home/pubsrc/mysql/mysql スタート
⑦. コマンドラインを使用して MySQL サーバーにログインし、管理します (パスワードの入力を求められたら、直接 Enter キーを押します):
/home/pubsrc/mysql/bin/mysql -u admin -p -S /tmp/mysql.sock
⑧. 次の SQL ステートメントを入力して、root 権限を持つユーザー (admin) とパスワード (12345678) を作成します。
*.* のすべての権限を '12345678' で識別される 'admin'@'localhost' に付与します;
*.* のすべての権限を 'admin'@'127.0.0.1' ('12345678' で識別) に付与します;
⑨、(オプション) MySQL を停止します:
/home/pubsrc/mysql/mysql 停止
3. PHP をコンパイルしてインストールします (FastCGI モード)
tar zxvf php-5.2.14.tar.gz
gzip -cd php-5.2.14-fpm-0.5.14.diff.gz | パッチ -d php-5.2.14 -p1
cd php-5.2.14/
./configure --prefix=/home/pubsrc/php --with-config-file-path=/home/pubsrc/php/etc --with-mysql=/home/pubsrc/mysql --with-mysqli=/ /home/pubsrc/mysql/bin/mysql_config --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib
--with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem - -enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect
--enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap - -with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap --without-pear
ZEND_EXTRA_LIBS='-liconv' にする
インストールする
cp php.ini-dist /home/pubsrc/php/etc/php.ini
CD ../
4. PHP5 拡張モジュールをコンパイルしてインストールします
tar zxvf memcache-2.2.5.tgz
cd memcache-2.2.5/
/home/pubsrc/php/bin/phpize
./configure --with-php-config=/home/pubsrc/php/bin/php-config
作る
インストールする
CD ../
tar jxvf eaccelerator-0.9.6.1.tar.bz2
cd eaccelerator-0.9.6.1/
/home/pubsrc/php/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=/home/pubsrc/php/bin/php-config
作る
インストールする
CD ../
tar zxvf PDO_MYSQL-1.0.2.tgz
cd PDO_MYSQL-1.0.2/
/home/pubsrc/php/bin/phpize
./configure --with-php-config=/home/pubsrc/php/bin/php-config --with-pdo-mysql=/home/pubsrc/mysql
作る
インストールする
CD ../
tar zxvf ImageMagick.tar.gz
cd ImageMagick-6.5.1-2/
./configure
作る
インストールする
CD ../
tar zxvf imagick-2.3.0.tgz
cd imagick-2.3.0/
/home/pubsrc/php/bin/phpize
./configure --with-php-config=/home/pubsrc/php/bin/php-config
作る
インストールする
CD ../
5. php.ini ファイルを変更します
手動変更: /home/pubsrc/php/etc/php.ini で extension_dir = "./" を見つけます。
extension_dir = "/home/pubsrc/php/lib/php/extensions/no-debug-non-zts-20060613/" に変更します
この行の後に次の行を追加して保存します。
拡張子 = "memcache.so"
拡張子 = "pdo_mysql.so"
拡張子 = "imagick.so"
次に、output_buffering = Off を探します
output_buffering = Onに変更します
もう一度検索します。cgi.fix_pathinfo=0
Nginx ファイル タイプ エラー解析の脆弱性を防ぐために、cgi.fix_pathinfo=0 に変更します。
自動変更: 手動での変更が面倒な場合は、次のシェル コマンドを実行して php.ini ファイルを自動的に変更できます:
sed -i 's#extension_dir = "./"#extension_dir = "/home/pubsrc/php/lib/php/extensions/no-debug-non-zts-20060613/"nextension = "memcache.so"nextension = " pdo_mysql.so"nextension = "imagick.so"n#' /home/pubsrc/php/etc/php.ini
sed -i 's#output_buffering = Off#output_buffering = On#' /home/pubsrc/php/etc/php.ini
sed -i "s#; always_populate_raw_post_data = オン#always_populate_raw_post_data = オン#g" /home/pubsrc/php/etc/php.ini
sed -i "s#; cgi.fix_pathinfo=0#cgi.fix_pathinfo=0#g" /home/pubsrc/php/etc/php.ini
6. PHP を高速化するように eAccelerator を構成します:
mkdir -p /home/pubsrc/eaccelerator_cache
vi /home/pubsrc/php/etc/php.ini
Shift+G を押して構成ファイルの末尾にジャンプし、次の構成情報を追加します:
[アクセル]
zend_extension="/home/pubsrc/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
eaccelerator.shm_size="64"
eaccelerator.cache_dir="/home/pubsrc/eaccelerator_cache"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_period="3600"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
7. www ユーザーとグループ、および 2 つの仮想ホスト blog.test.com と www.test.com のディレクトリを作成します。
/usr/sbin/groupadd www
/usr/sbin/useradd -g www www
mkdir -p /data0/htdocs/blog
chmod +w /data0/htdocs/blog
chown -R www:www /data0/htdocs/blog
mkdir -p /data0/htdocs/www
chmod +w /data0/htdocs/www
chown -R www:www /data0/htdocs/www
8. php-fpm 設定ファイルを作成します (php-fpm は PHP 用の FastCGI 管理パッチであり、php-cgi を再起動せずに php.ini 設定をスムーズに変更できます):
/home/pubsrc/php/etc/ ディレクトリに php-fpm.conf ファイルを作成します:
rm -f /home/pubsrc/php/etc/php-fpm.conf
vi /home/pubsrc/php/etc/php-fpm.conf
次の内容を入力します (プログラムのデバッグのために Nginx + PHP をインストールする場合は、次の 0 を 1 に変更して PHP エラー メッセージを表示してください。そうでない場合、Nginx はステータス 500 の空白のエラー ページを報告します):
この設定内のすべての相対パスは、php のインストール プレフィックスを基準としています
PIDファイル
/home/pubsrc/php/logs/php-fpm.pid
エラーログファイル
/home/pubsrc/php/logs/php-fpm.log
ログレベル
お知らせ
この量の PHP プロセスが SIGSEGV または SIGBUS で終了すると ...
10
...この時間未満で、正常な再起動が開始されます。
アクセラレータの共有メモリ内の偶発的な破損を回避するのに役立ちます。
1メートル
マスターからの信号に対する待機中の子の反応の制限時間
5秒
fpm をデバッグするには「no」に設定します
はい
ログと統計で使用されるプールの名前。
デフォルト
fastcgi リクエストを受け入れるアドレス。
有効な構文は「ip.ad.re.ss:port」、または単に「port」または「/path/to/unix/socket」です
127.0.0.1:9000
listen(2) バックログを設定します
-1
UNIX ソケットが使用されている場合は、そのアクセス許可を設定します。
Linux では、Web サーバーからの接続を許可するには、読み取り/書き込み権限を設定する必要があります。
多くの BSD 派生システムでは、権限に関係なく接続が許可されます。
0666
このワーカーのプールに固有の追加の php.ini 定義。
/usr/sbin/sendmail -t -i
1
プロセスの Unix ユーザー
www
Unix プロセスのグループ
www
プロセスマネージャーの設定
ワーカープロセス数を制御するスタイルを設定します。
有効な値は「static」と「Apache-like」です
静的
処理される同時リクエストの数の制限を設定します。
Apache MaxClients ディレクティブと同等です。
元の php.fcgi の PHP_FCGI_CHILDREN 環境に相当します
任意の pm_style と一緒に使用されます。
128
「Apache のような」PM スタイルの設定グループ
起動時に作成されるサーバープロセスの数を設定します。
「Apache のような」pm_style が選択されている場合にのみ使用されます
20
アイドル状態のサーバープロセスの必要な最小数を設定します。
「Apache のような」pm_style が選択されている場合にのみ使用されます
5
アイドル状態のサーバープロセスの希望の最大数を設定します。
「Apache のような」pm_style が選択されている場合にのみ使用されます
35
単一のリクエストを処理するためのタイムアウト (秒単位)。その後ワーカー プロセスが終了します
「max_execution_time」ini オプションが何らかの理由でスクリプトの実行を停止しない場合に使用する必要があります
「0」は「オフ」を意味します
0秒
単一のリクエストを処理するためのタイムアウト (秒単位)。その後、php バックトレースがslow.log ファイルにダンプされます
「0」は「オフ」を意味します
0秒
遅いリクエストのログファイル
ログ/slow.log
開くファイルの説明制限を設定します
65535
最大コア サイズ rlimit を設定します
0
最初にこのディレクトリに絶対パスで Chroot します
先頭にこのディレクトリへの Chdir、絶対パス
ワーカーの stdout と stderr をメイン エラー ログにリダイレクトします。
設定されていない場合は、FastCGI 仕様に従って /dev/null にリダイレクトされます
はい
各プロセスが再起動するまでに実行する必要があるリクエストの数。
サードパーティのライブラリでのメモリ リークを回避するのに役立ちます。
無限のリクエスト処理を行う場合は、0 を指定してください
PHP_FCGI_MAX_REQUESTS と同等
102400
接続を許可する FastCGI クライアントの IPv4 アドレスのカンマ区切りリスト
オリジナルの php.fcgi (5.2.2+) の FCGI_WEB_SERVER_ADDRS 環境に相当します
AF_INET リスニング ソケットでのみ意味を成します。
127.0.0.1
LD_LIBRARY_PATH のような環境変数を渡します
すべての $VARIABLE は現在の環境から取得されます
$ホスト名
/usr/local/bin:/usr/bin:/bin
/tmp
/tmp
/tmp
$OSタイプ
$マッハタイプ
2
9、启アニメーションphp-cgi进程、监听127.0.0.1の9000ポート、手続き数は128(サービス内に3GB未満の場合、64個だけ許可可能)、用人はwww:
ulimit -SHn 65535
/home/pubsrc/php/sbin/php-fpm スタート
注:/home/pubsrc/php/sbin/php-fpm にはその他のパラメータ、含まれるもの:start|stop|quit|restart|reload|logrotate、修正php.ini後不重启php-cgi、再追加ダウンロード構成文件使用reload 。
3. Nginx 0.8.46 をインストールします
1. Nginx に必要な pcre ライブラリをインストールします:
tar zxvf pcre-8.10.tar.gz
cd pcre-8.10/
./configure
作成&&作成インストール
CD ../
2. Nginxをインストールします
tar zxvf nginx-0.8.46.tar.gz
cd nginx-0.8.46/
./configure --user=www --group=www --prefix=/home/pubsrc/nginx --with-http_stub_status_module --with-http_ssl_module
作成&&作成インストール
CD ../
3. Nginx ログディレクトリを作成します
mkdir -p /data1/logs
chmod +w /data1/logs
chown -R www:www /data1/logs
4. Nginx設定ファイルを作成します
①/home/pubsrc/nginx/conf/ ディレクトリに nginx.conf ファイルを作成します:
rm -f /home/pubsrc/nginx/conf/nginx.conf
vi /home/pubsrc/nginx/conf/nginx.conf
次のように入力します:
ユーザー www www;
ワーカープロセス 8;
error_log /home/pubsrc/nginx/logs/nginx_error.log crit;
pid /home/pubsrc/nginx/nginx.pid;
#このプロセスで開くことができるファイル記述子の最大値を指定します。
ワーカー_rlimit_nofile 65535;
イベント
{
epoll を使用します;
ワーカー接続 65535;
}
http
{
mime.types を含める;
default_type アプリケーション/オクテットストリーム;
#charset gb2312;
サーバー名ハッシュバケットサイズ 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;
ファイル送信オン;
tcp_noプッシュオン;
キープアライブ_タイムアウト 60;
tcp_nodelay オン;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
gzip オン;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_バージョン 1.0;
gzip_comp_level 2;
gzip_types テキスト/プレーン アプリケーション/x-javascript テキスト/css アプリケーション/xml;
gzip_vary をオンにします;
#limit_zone クローラー $binary_remote_addr 10 分;
サーバー
{
聞いてください 4590;
サーバー名 www.inner.bbs.com;
インデックスインデックス.htmlインデックス.htmインデックス.php;
root /home/wwwroot/bbs;
#limit_conn クローラー 20;
場所 ~ .*.(php|php5)?$
{
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index インデックス.php;
fcgi.conf を含めます;
}
場所 ~ .*.(gif|jpg|jpeg|png|bmp|swf)?$
{
有効期限は 30 日です;
}
location ~ .*.(js|css)?$
{
有効期限は 1 時間です;
}
log_format アクセス '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
access_log /home/pubsrc/nginx/logs/access.log アクセス;
}
サーバー
{
聞いてください 4591;
サーバー名 www.inner.uc.com;
インデックスインデックス.htmlインデックス.htmインデックス.php;
root /data/wwwroot/uc;
場所 ~ .*.(php|php5)?$
{
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index インデックス.php;
fcgi.conf を含めます;
}
log_format wwwlogs '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
access_log /home/pubsrc/nginx/logs/wwwlogs.log wwwlogs;
}
}
②、在/home/pubsrc/nginx/conf/目录中创建fcgi.confファイル:
vi /home/pubsrc/nginx/conf/fcgi.conf
输入以下内容:
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP のみ。PHP が --enable-force-cgi-redirect でビルドされた場合に必要です
fastcgi_param REDIRECT_STATUS 200;
5、启アニメーションNginx
ulimit -SHn 65535
/home/pubsrc/nginx/sbin/nginx
四、配置开机自動启动Nginx + PHP
vi /etc/rc.local
在末尾增以下内容:
ulimit -SHn 65535
/home/pubsrc/php/sbin/php-fpm スタート
/home/pubsrc/nginx/sbin/nginx
五、优化Linux内核パラメータ
vi /etc/sysctl.conf
在末尾增以下内容:
#追加
net.ipv4.tcp_max_syn_backlog = 65536
net.core.netdev_max_backlog = 32768
net.core.somaxconn = 32768
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_tw_recycle = 1
#net.ipv4.tcp_tw_len = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_max_orphans = 3276800
#net.ipv4.tcp_fin_timeout = 30
#net.ipv4.tcp_keepalive_time = 120
net.ipv4.ip_local_port_range = 1024 65535
使用配置即生效:
/sbin/sysctl -p
六、現在Nginxサービスを停止していない状況下平滑変更Nginx構成
1、/home/pubsrc/nginx/conf/nginx.conf 構成ファイルを修正した後、以下のコマンドを実行します。
/home/pubsrc/nginx/sbin/nginx -t
画面に以下の 2 つの行情報が表示された場合、配置ファイルが正确である場合:
設定ファイル /home/pubsrc/nginx/conf/nginx.conf の構文は問題ありません
設定ファイル /home/pubsrc/nginx/conf/nginx.conf は正常にテストされました
2、平滑重启:
①、Nginx 0.8.x バージョンの場合、平滑重启Nginx 構成は非常に簡単で、次のコマンドをすぐに実行できます:
/home/pubsrc/nginx/sbin/nginx -s リロード
②、Nginx 0.8.x より前のバージョンの場合は、いくつかのマイクロ麻痺を平滑化し、以下の手順に従って実行してください。
ps -ef | grep "nginx: マスタープロセス" | grep -v "grep" | awk -F ' ' '{print $2}'
画面に表示される、つまり Nginx メイン進行番号、例:
6302
このとき、次のコマンドを実行すると、変更された Nginx 構成ファイルが生成される可能性があります:
キル -HUP 6302
または、この么麻烦は不要です、Nginx に到達する Pid ファイル:
kill -HUP `cat /home/pubsrc/nginx/nginx.pid`
七、编写每毎日切割Nginx日志の脚本
1、创建脚本/home/pubsrc/nginx/sbin/cut_nginx_log.sh
vi /home/pubsrc/nginx/sbin/cut_nginx_log.sh
输入以下内容:
#!/bin/bash
# このスクリプトは 00:00 に実行されます
# Nginx ログのパス
logs_path="/home/pubsrc/nginx/logs/"
mkdir -p ${logs_path}$(date -d "昨日" +"%Y")/$(date -d "昨日" +"%m")/
mv ${logs_path}access.log ${logs_path}$(date -d "昨日" +"%Y")/$(date -d "昨日" +"%m")/access_$(date -d "昨日" " +"%Y%m%d").log
kill -USR1 `cat /home/pubsrc/nginx/nginx.pid`
2、設置crontab、每天凌晨00:00切割nginx访问日志
crontab –e
输入以下内容:
00 00 * * * /bin/bash /home/pubsrc/nginx/sbin/cut_nginx_log.sh
php.ini 内の cgi.fix_pathinfo=0、Nginx ファイル タイプのセキュリティ解析穴を防ぎます。
3. nginx Qidong スクリプトを作成します
vi nginxctl
内容を入力してください
#!/bin/bash
BIN=/home/pubsrc/nginx/sbin/nginx
PID=/home/pubsrc/nginx/nginx.pid
ケース 1 ドル入り
開始)
$BIN -c /home/pubsrc/nginx/conf/nginx.conf;
終了 $?;
;;
やめて)
$(猫 $PID) を殺す;
終了 $?;
;;
リロード)
kill -HUP $(cat $PID);
終了 $?;
;;
回転)
kill -USR1 $(cat $PID);
終了 $?;
;;
ポート)
echo "あなたのポートは $(( 4000 + $(id -u) ))";
;;
*)
echo "使用量: $0 {start|stop|reload|roate|port}";
1 番出口;
えさっく
最後に実行権限を付与します
chmod 777 nginxctl
CentOS システムへの CentOS Memcached のインストール。
1. CentOS Memcached をインストールする前に、Libevent をインストールする必要があります:
#カール -O http://www.monkey.org/~provos/libevent-1.4.9-stable.tar.gz
# tar zxf libevent-1.4.9-stable.tar.gz
# cd libevent-1.4.9-stable
# ./configure
#作る
#インストールする
2. CentOS Memcached のインストールを続行します:
#カール -O http://www.danga.com/memcached/dist/memcached-1.2.7.tar.gz
# tar zxf memcached-1.2.7.tar.gz
# cd memcached-1.2.7
# ./configure
#作る
#インストールする
3. CentOS Memcached をインストールし、現在のユーザーの .bash_profile に追加します
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
LD_LIBRARY_PATH をエクスポートします
4.CentOS Memcached が実行中
# memcached -m 512 -u 誰も -vv
テスト中に、次のエラー メッセージが表示されます:
「/usr/local/memcached/bin/memcached: 共有ライブラリのロード中にエラーが発生しました: libevent-1.4.so.2: 共有オブジェクト ファイルを開けません: そのようなファイルまたはディレクトリはありません」
エラーの原因は、Libevent がシステムに登録されていないことです。解決策は次のとおりです。
# vi /etc/ld.so.conf.d/libevent-i386.conf
VI に次の行を入力します:
/usr/local/lib/
最後に忘れないでください
#ldconfig
5.CentOS Memcached が実行中
# memcached -m 512 -u 誰も -vv
CentOS Memcached は正常に動作しています。
以上、CentOS Memcachedのインストールと動作検知について紹介しました。
1. Memcache を起動するための共通パラメータ
-p ポート番号を設定します (デフォルトは 11211 に設定されていません)
-U UDP リスニング ポート (デフォルト: 11211、0 で閉じられます)
-l バインド アドレス (デフォルト: 内部ネットワークと外部ネットワーク、または IP を変更するローカル マシンに関係なく、すべてが許可されます。セキュリティ リスクがあります。127.0.0.1 に設定すると、ローカルでのみアクセスできます)
-d は独立したプロセスとして実行されます
-u 実行中のプロセスに指定されたバインドの使用法
-m 許可される最大メモリ使用量、ユニット M (デフォルト: 64 MB)
-P PID をファイル に書き込みます。これにより、後でプロセスを迅速に終了できます。これは、-d と一緒に使用する必要があります。
|