激情五月天婷婷,亚洲愉拍一区二区三区,日韩视频一区,a√天堂中文官网8

<ul id="buwfs"><strike id="buwfs"><strong id="buwfs"></strong></strike></ul>
    <output id="buwfs"></output>
  • <dfn id="buwfs"><source id="buwfs"></source></dfn>
      <dfn id="buwfs"><td id="buwfs"></td></dfn>
      <div id="buwfs"><small id="buwfs"></small></div>
      <dfn id="buwfs"><source id="buwfs"></source></dfn>
      1. <dfn id="buwfs"><td id="buwfs"></td></dfn>
        始創(chuàng)于2000年 股票代碼:831685
        咨詢熱線:0371-60135900 注冊有禮 登錄
        • 掛牌上市企業(yè)
        • 60秒人工響應
        • 99.99%連通率
        • 7*24h人工
        • 故障100倍補償
        全部產(chǎn)品
        您的位置: 網(wǎng)站首頁 > 幫助中心>文章內(nèi)容

        CentOS 5.6(X64)下編譯安裝LNMP平臺(Nginx1.0.4+PHP5.3.6+Mys

        發(fā)布時間:  2012/6/23 17:38:52

        系統(tǒng)環(huán)境:centos 5.6(x64)+Nginx 1.0.4+Mysql 5.5.12 + PHP 5.3.6

        軟件包存放位置 /usr/local/src/websoft

        ###########本文另附配置文檔,配置文檔在附件里#################

         

        Nginx(發(fā)音同 engine x)是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,并在一個BSD-like 協(xié)議下發(fā)行。由俄羅斯的程序設(shè)計師Igor Sysoev所開發(fā),最初供俄國大型的入口網(wǎng)站及搜尋引擎Rambler(俄文:Рамблер)使用。  其特點是占有內(nèi)存少,并發(fā)能力強,事實上nginx的并發(fā)能力確實在同類型的網(wǎng)頁伺服器中表現(xiàn)較好.目前中國大陸使用nginx網(wǎng)站用戶有:新浪、網(wǎng)易、 騰訊,另外知名的微網(wǎng)志Plurk也使用nginx。

         

        總體來說nginx的有以下八大優(yōu)點:

        1.高并發(fā)連接:官方測試能支撐5萬并發(fā)連接,在實際生產(chǎn)環(huán)境中跑到2,~3W并發(fā)連接。

        2.內(nèi)存消耗少:在3W并發(fā)連接下,開啟的10個NGINX進程才消耗150M內(nèi)存(15M*10=150M)

        3.配置文件非常簡單:風格跟程序一樣通俗易懂。

        4.成本低廉:Nginx作為開源軟件,可以免費使用,而購買F5 BIG-IP、NetScaler

        等硬件負載均衡交換機則需要十多萬至幾十萬人民幣。

        5.支持rewrite重寫規(guī)則:能夠根據(jù)域名、URL的不同,將HTTP請求分發(fā)到不同的后端服務器群組。

        6.內(nèi)置的健康檢查功能:如果Nginx Proxy后端的后臺web服務器宕機了,不會音響前端訪問。

        7.節(jié)省帶寬:支持GZIP壓縮,可以添加瀏覽器本地緩存的Header頭。

        8.穩(wěn)定性高:用于反向代理,宕機的概率微乎其微。

         

        客戶端在訪問動態(tài)頁面時,因為apache和nginx只能提供靜態(tài)解析,這是他們通過內(nèi)置的cgi接口去尋找php等腳本語言,當需要用到數(shù)據(jù)部分時PHP會去調(diào)用后臺MYSQL數(shù)據(jù)庫中的數(shù)據(jù),之后通過解析生成靜態(tài)頁面在返回apache/nginx服務器,再由此交付給客戶端。那么nginx如何調(diào)用php提供動態(tài)php格式的網(wǎng)頁,那么就通過FastCGI來實現(xiàn),后面安裝php的時候會講解

         

        1、首先安裝編譯所需要的庫文件和編譯環(huán)境,這里我用的光盤的yum源

        yum -y install gcc openssl-devel zlib-devel pcre-devel libjpeg-devel libpng-devel libtool-ltdl-devel 

        yum groupinstall "Development Tools" "Development Libraries" -y

         

        2、下載源碼包

        #cd  /usr/local/src/websoft

        #vim download.txt    //拷貝下面的內(nèi)容到文件里

        wget http://www.nginx.org/download/nginx-1.0.4.tar.gz

        wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz

        wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.12.tar.gz/from/http://ftp.iij.ad.jp/pub/db/mysql

        wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz

        wget http://downloads.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz?modtime=1171868460&big_mirror=0

        wget ttp://downloads.sourceforge.net/mcrypt/mcrypt-2.6.8.tar.gz?modtime=1194463373&big_mirror=0

        wget http://downloads.sourceforge.net/mhash/mhash-0.9.9.9.tar.gz?modtime=1175740843&big_mirror=0

        wget wget http://cn.php.net/get/php-5.3.6.tar.gz/from/this/mirror

        wget http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2

        wget http://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz

         

        #wget -i download.txt  //下載這些軟件包

         

         

        3、Nginx 安裝

        useradd -s /sbin/nologin -M nginx

        cd /usr/local/src/websoft

        tar zxvf nginx-1.0.4.tar.gz

        cd nginx-1.0.4/

        ./configure --user=nginx --group=nginx \

        --prefix=/usr/local/webserver/nginx  \

        --sbin-path=/usr/sbin/nginx \

        --conf-path=/etc/nginx/nginx.conf \

        --with-http_stub_status_module  \

        --with-http_ssl_module \

        --without-http_rewrite_module \

         --lock-path=/var/lock/nginx.lock \

        --pid-path=/var/run/nginx/nginx.pid  \

        --with-pcre  //這個一定要加,不加啟動nginxd會報錯

         

        make && make install

         

         

        vim /etc/init.d/nginxd/   //添加下面內(nèi)容,讓nginx 支持service 啟動關(guān)閉

        #!/bin/sh

        #

        # nginx - this script starts and stops the nginx daemon

        #

        # chkconfig:   - 85 15 

        # description:  Nginx is an HTTP(S) server, HTTP(S) reverse \

        #               proxy and IMAP/POP3 proxy server

        # processname: nginx

        # config:      /etc/nginx/nginx.conf

        # config:      /etc/sysconfig/nginx

        # pidfile:     /var/run/nginx.pid

         

        # 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/sbin/nginx"

        prog=$(basename $nginx)

         

        NGINX_CONF_FILE="/etc/nginx/nginx.conf"

         

        [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx

         

        lockfile=/var/lock/subsys/nginx

         

        make_dirs() {

           # make required directories

           user=`nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`

           options=`$nginx -V 2>&1 | grep 'configure arguments:'`

           for opt in $options; do

               if [ `echo $opt | grep '.*-temp-path'` ]; then

                   value=`echo $opt | cut -d "=" -f 2`

                   if [ ! -d "$value" ]; then

                       # echo "creating" $value

                       mkdir -p $value && chown -R $user $value

                   fi

               fi

           done

        }

         

        start() {

            [ -x $nginx ] || exit 5

            [ -f $NGINX_CONF_FILE ] || exit 6

            make_dirs

            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|condrestart|try-restart|reload|force-reload|configtest}"

                exit 2

        esac

         

         

        chmod +x /etc/init.d/nginxd

        service nginxd start

        chkconfig --add nginxd

        chkconfig nginxd on

        chkconfig --list nginxd

         

        通過瀏覽器訪問服務器,出現(xiàn)welcome to nginx!表示成功

         

        4、編譯安裝mysql

         編譯環(huán)境前提(mysql 5.5.x 不再用 configure,而用cmake)

         # yum -y install   gcc gcc-c++ make ncurses-devel        //安裝所需的軟件包

         #cd /usr/local/src/websoft

         #tar xvf  cmake-2.8.4.tar.gz

         # cd cmake-2.8.4

         # ./configure && make && make install

         

        cd /usr/local/src/websoft

         # tar zxvf mysql-5.5.12.tar.gz

         # cd mysql-5.5.12

         # cmake -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql \

                 -DMYSQL_DATADIR=/data/mysql/ \

                 -DWITH_MYISAM_STORAGE_ENGINE=1 \

                 -DWITH_INNOBASE_STORAGE_ENGINE=1 \

                 -DWITH_ARCHIVE_STORAGE_ENGINE=1 \

                 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

                 -DENABLED_LOCAL_INFILE=1 \

                 -DDEFAULT_CHARSET=utf8 \

                 -DDEFAULT_COLLATION=utf8_general_ci \

                 -DEXTRA_CHARSETS=all \

                 -DMYSQL_TCP_PORT=3306 

         

         

        # make 

        # make install

        參數(shù)說明:

         -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql   //安裝目錄

         -DMYSQL_DATADIR=/data/mysql          //數(shù)據(jù)庫存放目錄

         -DWITH_MYISAM_STORAGE_ENGINE=1     //安裝myisam存儲引擎

         -DWITH_INNOBASE_STORAGE_ENGINE=1   //安裝innodb存儲引擎

         -DWITH_ARCHIVE_STORAGE_ENGINE=1     //安裝archive存儲引擎

         -DWITH_BLACKHOLE_STORAGE_ENGINE=1 //安裝blackhole存儲引擎

         -DENABLED_LOCAL_INFILE=1             //允許從本地導入數(shù)據(jù)

         -DDEFAULT_CHARSET=utf8             //使用utf8字符

         -DDEFAULT_COLLATION=utf8_general_ci  //校驗字符

         -DEXTRA_CHARSETS=all               //安裝所有擴展字符集

         -DMYSQL_TCP_PORT=3306              //MySQL監(jiān)聽端口

         

         

         

        mysql 配置

         # groupadd -g 3306 mysql

         # useradd -u 3306 -g mysql -M -s /sbin/nologin mysql

         # mkdir /data/mysql/data

         # mkdir /data/mysql/log

         # chown -R mysql:mysql /data/mysql

         # chmod -R 755 /data/mysql

         # cp support-files/my-medium.cnf /etc/my.cnf

         #/usr/local/webserver/mysql/scripts/mysql_install_db  --user=mysql --basedir=/usr/local/webserver/mysql --datadir=/data/mysql &   //初始化數(shù)據(jù)庫

         

         # /usr/local/webserver/mysql/bin/mysqld_safe --user=mysql & 以mysql   //用戶啟動服務 

         

         # cp support-files/mysql.server /etc/init.d/mysqld

         # chmod +x /etc/init.d/mysqld

         # chkconfig --add mysqld

         # chkconfig  mysqld on

         

         # service mysqld restart

         # netstat -tnlp |grep 3306

         # cd /usr/local/bin //進入用戶的默認搜索路徑下建立mysql命令的軟連接,可以直接執(zhí)行mysql命令

         # ln -s /usr/local/webserver/mysql/bin/mysql mysql

         # ln -s /usr/local/webserver/mysql/bin/mysqlduamp mysqldump

         # ln -s /usr/local/webserver/mysql/bin/mysqladmin mysqladmin

         # mysqladmin -u root -p password '123456'

         # mysql -u root -p

         # flush privileges;

         

        vim /etc/my.cnf  //Mysql 優(yōu)化,在[mysqld]配置參數(shù)下面添加下面幾行(大概37行下面)

        innodb_file_per_table

        log-bin-trust-function-creators=1

        skip-name-resolv

        innodb_flush_log_at_trx_commit=1

        sync-binlog=1

        lower_case_table_names=1

        max_connections = 1500 (默認100)

         

        修改配置文件里下面的參數(shù),去掉前面的#

        innodb_buffer_pool_size = 2048M (默認16M,可以為系統(tǒng)內(nèi)存50%~70%)

        innodb_additional_mem_pool_size = 256M (默認2M)

        innodb_log_file_size = 512M    (默認5M,innodb_buffer_pool_size的四分之一)

        max_allowed_packet = 500M

         

        下面安裝幾個所需要的源碼包

        ########libiconv 加強系統(tǒng)對支持字符編碼轉(zhuǎn)換的功能########

        cd /usr/local/src/websoft

        tar xvf libiconv-1.13.1.tar.gz

        cd libiconv

        ./configure --prefix=/usr/local/webserver

        make

        make install

         

        ####mcrypt是加密算法庫,PHP擴展mcrypt功能對此庫有依耐關(guān)系,要使用mcrypt必須先安裝此庫######

        tar zxvf libmcrypt-2.5.8.tar.gz

        cd libmcrypt-2.5.8

         ./configure

        make

        make install

        /sbin/ldconfig

         

        ######加密算法庫#########

        tar zxvf mcrypt-2.6.8.tar.gz

        cd mcrypt-2.6.8/

        /sbin/ldconfig

         ./configure

        make

        make install

         

        ###mhash是哈希函數(shù),用來計算消息的校驗碼之類的###

        tar zxvf mhash-0.9.9.9.tar.gz

        cd mhash-0.9.9.9

         ./configure

        make

        make install

         

        ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib //創(chuàng)建一個mysqlclient庫的軟連接,不創(chuàng)建在make 的時候會提示找不到這個文件

         

        5、安裝PHP

        php在編譯安裝時,nginx要想能夠調(diào)用php提供動態(tài)php格式的網(wǎng)頁,必須用FastCGI來實現(xiàn),但FastCGI只是一個框架,實現(xiàn)FastCGI框架的有PHP-FPM,但對于5.2.x版本的php來說 默認是不支持PHP-FPM的,需要打上php-fpm的補丁,對于5.3.2之前版本的也是需要打補丁的,而且打補丁的過程比較麻煩。好在5.3.3版本的PHP-FPM被直接做進了源代碼包中,在編譯安裝時只需啟用PHP-FPM功能即可

        加上 --enable-fpm 啟動fpm

         

        cd /usr/local/src/websoft

        tar xvf php-5.3.6.tar.gz

        cd php-5.3.6

        ./configure --prefix=/usr/local/webserver/php \

        --with-config-file-path=/usr/local/webserver/php/etc \

        --with-mysql=/usr/local/webserver/mysql  \

        --with-mysqli=/usr/local/webserver/mysql/bin/mysql_config \

        --with-iconv-dir=/usr/local/webserver --with-freetype-dir \

        --with-jpeg-dir --with-png-dir --with-zlib \

        --with-libxml-dir=/usr --enable-xml --disable-rpath \

        --enable-safe-mode --enable-bcmath \

        --enable-shmop --enable-sysvsem \

        --enable-inline-optimization --with-curl \

        --with-curlwrappers \

        --enable-mbregex  --enable-fpm \

        --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  --enable-fpm

         

        make ZEND_EXTRA_LIBS='-liconv'  #因為-liconv的目錄不是在/usr/local下所以安裝時需要手動指定

        make install  

         

        cp /usr/local/websoft/php-5.3.6/php.ini-production 

        /usr/local/webserver/php/etc/php.ini  //拷貝php配置文件

         

         

        6、eaccelerator加速器(這個不是必須的,可以不安裝)

        eaccelerator是一個自由開放源碼PHP加速器,優(yōu)化和動態(tài)內(nèi)容緩存,提高了性能php腳本的緩存性能,使得PHP腳本在編譯的狀態(tài)下,對服務器的開銷幾乎完全消除。 它還有對腳本起優(yōu)化作用,以加快其執(zhí)行效率。使您的PHP程序代碼執(zhí)效率能提高1-10倍;

         

        tar jxvf eaccelerator-0.9.6.1.tar.bz2

        cd eaccelerator-0.9.6.1/

        /usr/local/webserver/php/bin/phpize

         ./configure 

        --enable-eaccelerator=shared --with-php-config=/usr/local/webserver/php/bin/php-config

        make

        make install

         

        修改php.ini 配置文件

        vim /usrl/local/webserver/php/etc/php.ini //修改extension_dir

        extension_dir= /usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20090626/"

         

        配置eAccelerator加速PHP:

        創(chuàng)建緩存存放目錄

        mkdir -p /usr/local/webserver/eaccelerator_cache

        chmod 777 /usr/local/eaccelerator_cache

        建立存放日志的目錄

        mkdir -p /usr/local/webserver/php/logs

         

        vi /usr/local/webserver/php/etc/php.ini

        按shift+g鍵跳到配置文件的最末尾,加上以下配置信息:

        [eaccelerator]

          zend_extension="/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.so"

         eaccelerator.shm_size="64"

         eaccelerator.cache_dir="/usr/local/webserver/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"

         

        查看安裝是否成功:php -v

        PHP 5.3.6 (cli) (built: Jun  8 2011 23:10:20) 

        Copyright (c) 1997-2011 The PHP Group

        Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies

        with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator

         

         

        全部安裝工作準備已經(jīng)完成,剩下進行一些配置.

        vim /usr/local/php/etc/php-fpm.conf   ##首先修改下面來配置修改

        該配置文件只用修改以下四點,只需要把藍色部分前面的注釋去掉

         

        ; Note: Used when pm is set to either 'static' or 'dynamic' 

         ; Note: This value is mandatory.

         

        pm.max_children = 50

         

        ; The number of child processes created on startup.

         ; Note: Used only when pm is set to 'dynamic'

         ; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2

         

        pm.start_servers = 10

         

        ; The desired minimum number of idle server processes. 

         ; Note: Used only when pm is set to 'dynamic'

         ; Note: Mandatory when pm is set to 'dynamic'

         

        pm.min_spare_servers = 5

         

        ; The desired maximum number of idle server processes.

         ; Note: Used only when pm is set to 'dynamic'

         ; Note: Mandatory when pm is set to 'dynamic'

         

        pm.max_spare_servers = 35

         

        修改完成,試著啟動

         

        #/usr/local/webserver/php/sbin/php-fpm &   

         

        啟動后用netstat -tnlp   //查看如果有如圖所示端口 如果有表示正常啟動

         

         

        如需要開機自動啟動 則可以添加到/etc/rc.d/rc.local中

         

        vim /etc/rc.d/rc.local

         

        在空白行添加   /usr/local/webserver/php/sbin/php-fpm &  

         

         

        vim /etc/nginx/nginx.conf  //下面就是最后修改nginx.conf配置文件

         

        user nginx                   //修改ngin守護進程的用戶

        worker_processes  4;         //工作進程數(shù),一般與 CPU 核數(shù)等同,但實際的可以多一些

        error_log logs/error.log;       //錯誤日志位置

         

         

        events {

            worker_connections  2048;#每個工作進程允許最大的同時連接數(shù),可以稍微大一些,1024的倍數(shù)

        }

         

         

        gzip  on;

        server {

                listen       80;

                server_name  192.168.175.208;   //服務器地址

         

        找到

         

                location ~ \.php$ {

                     root           html;

                     fastcgi_pass   127.0.0.1:9000;

                     fastcgi_index  index.php;

                     fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

                     include        fastcgi_params;

                 }

         

        把前面注釋全部去掉, root后面的路徑是你網(wǎng)頁文件所放置的路徑, 該目錄如果不存在的話還需要手動創(chuàng)建。

        找到

         

          location / {

                     root   /html;

                     index  index.php index.html index.htm;

                 }

         

        修改為如上所示 主要是添加index  后面的index.php

        修改完成后保存退出,重新啟動nginx服務

         

        service nginxd restart 

         

        vim /usr/local/webserver/nginx/html/index.php  //編輯測試文件在其中添加

         

        <?php

         phpinfo();

         ?>

         

        保存退出

         

        之后用web瀏覽器訪問 如果出現(xiàn)php信息頁面 表示服務成功,

         

        下面是測試msql 的連接 

        把剛才/usr/local/webserver/nginx/html/index.php中的內(nèi)容修改成

         

        <?php

         $link=mysql_connect("localhost","root","123456");

         if(!$link) echo "FAILD!";

         else echo "OK!";

         ?>

         

        然后刷新web頁面,如果出現(xiàn)OK!字樣 測表示正常連接

         

         

         

        優(yōu)化Linux內(nèi)核參數(shù)

        #vi /etc/sysctl.conf 在/etc/sysctl.conf末尾增加以下內(nèi)容(可根據(jù)服務器實際情況進行調(diào)整),在文件最后添加下面的內(nèi)容

         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_reuse = 1

         

         net.ipv4.tcp_mem = 94500000 915000000 927000000

         net.ipv4.tcp_max_orphans = 3276800

         net.ipv4.ip_local_port_range = 1024  65535

        #net.ipv4.ip_conntrack_max = 10000

         

        保存退出

        /sbin/sysctl -p

         

         

         

        ##############Linux內(nèi)核優(yōu)化參數(shù)說明##########################

         net.ipv4.tcp_max_syn_backlog = 65536    

        #記錄的那些尚未收到客戶端確認信息的連接請求的最大值

         net.core.netdev_max_backlog =  32768

         

        #每個網(wǎng)絡接口接收數(shù)據(jù)包的速率比內(nèi)核處理這些包的速率快時,允許送到隊列的數(shù)據(jù)包的最大數(shù)目。

         net.core.somaxconn = 32768

         

        #listen()的默認參數(shù),掛起請求的最大數(shù)量.默認是128.對繁忙的服務器,增加該值有助于網(wǎng)絡性能.

         net.core.wmem_default = 8388608

         

        #該參數(shù)指定了發(fā)送套接字緩沖區(qū)大小的缺省值(以字節(jié)為單位

         net.core.rmem_default = 8388608

         

        該參數(shù)指定了接收套接字緩沖區(qū)大小的缺省值(以字節(jié)為單位) 

         net.core.rmem_max = 16777216

         

        #該參數(shù)指定了接收套接字緩沖區(qū)大小的最大值(以字節(jié)為單位) 

         net.core.wmem_max = 16777216

         

        #該參數(shù)指定了發(fā)送套接字緩沖區(qū)大小的最大值(以字節(jié)為單位) 

         net.ipv4.tcp_timestamps = 0

         

        #時間戳可以避免序列號的卷繞。一個1Gbps的鏈路肯定會遇到以前用過的序列號。時間戳能夠讓內(nèi)核接受這種“異常”的數(shù)據(jù)包。這里需要將其關(guān)掉。

         net.ipv4.tcp_synack_retries = 2

        #為了打開對端的連接,內(nèi)核需要發(fā)送一個SYN并附帶一個回應前面一個SYN的ACK。也就是所謂三次握手中的第二次握手。這個設(shè)置決定了內(nèi)核放棄連接之前發(fā)送SYN+ACK包的數(shù)量。

         net.ipv4.tcp_syn_retries = 2

        #在內(nèi)核放棄建立連接之前發(fā)送SYN包的數(shù)量。

         net.ipv4.tcp_tw_recycle = 1

        #啟用timewait快速回收。

         net.ipv4.tcp_tw_reuse = 1

        #開啟重用。允許將TIME-WAIT sockets重新用于新的TCP連接。

         net.ipv4.tcp_mem = 94500000 915000000 927000000

         

        同樣有3個值,意思是: 

        net.ipv4.tcp_mem[0]:低于此值,TCP沒有內(nèi)存壓力. 
        net.ipv4.tcp_mem[1]:在此值下,進入內(nèi)存壓力階段. 
        net.ipv4.tcp_mem[2]:高于此值,TCP拒絕分配socket. 
        上述內(nèi)存單位是頁,而不是字節(jié)

        net.ipv4.tcp_max_orphans = 3276800  

         

        #系統(tǒng)所能處理不屬于任何進程的TCP sockets最大數(shù)量。假如超過這個數(shù)量﹐那么不屬于任何進程的連接會被立即reset,并同時顯示警告信息。之所以要設(shè)定這個限制﹐純粹為了抵御那些簡單的DoS攻擊﹐千萬不要依賴這個或是人為的降低這個限制 

         net.ipv4.ip_local_port_range = 1024  65535

        #允許系統(tǒng)打開的端口范圍。

            #net.ipv4.ip_conntrack_max = 10000

        #設(shè)置系統(tǒng)對最大跟蹤的TCP連接數(shù)的限制(CentOS 5.6無此參數(shù)) 

         

        #####################################################################

        編寫每天定時切割Nginx日志的腳本使用系統(tǒng)的logrotate 工具來回滾日志:

        logrotate 程序是一個日志文件管理工具。用來把舊的日志文件刪除,并創(chuàng)建新的日志文件,我們把它叫做“轉(zhuǎn)儲”。我們可以根據(jù)日志文件的大小,也可以根據(jù)其天數(shù)來轉(zhuǎn)儲,這個過程一般通過 cron 程序來執(zhí)行。

        logrotate 程序還可以用于壓縮日志文件,以及發(fā)送日志到指定的E-mai

        #vim /etc/logrotate/nginx    //在/etc/logrotate.d/下建立一腳本文件nginx,內(nèi)容為:

        /usr/local/webserver/nginx/logs/*log {

         missingok

          rotate 10

          daily

         notifempty

         sharedscripts

         postrotate

             /bin/kill -HUP `cat /var/run/nginx/nginx.pid 2>/dev/null` 2> /dev/null || true

         endscript

        }

         

        保存退出

        生成日志的格式為:access_log.1 access_log.2 error_log.3 ......

         

                                    error_log.1 error_log.2 error_log.3 ........

         

         

         

        用Webbench進行簡單的壓力測試

           Webbench是有名的網(wǎng)站壓力測試工具。Webbench支持多平臺,F(xiàn)reeBSD、Linux、Windows都可以使用。Webbench最多可以模擬3萬個并發(fā)連接去測試網(wǎng)站的負載能力。

         

        cd /usr/local/src/websoft

        tar xvf webbench-1.5.tar.gz

        cd webbench-1.5

        make && make install


        本文出自:億恩科技【mszdt.com】

        如需要開機自動啟動 則可以添加到/etc/rc.d/rc.local中

         

        vim /etc/rc.d/rc.local

         

        在空白行添加   /usr/local/webserver/php/sbin/php-fpm &  

         

         

        vim /etc/nginx/nginx.conf  //下面就是最后修改nginx.conf配置文件

         

        user nginx                   //修改ngin守護進程的用戶

        worker_processes  4;         //工作進程數(shù),一般與 CPU 核數(shù)等同,但實際的可以多一些

        error_log logs/error.log;       //錯誤日志位置

         

         

        events {

            worker_connections  2048;#每個工作進程允許最大的同時連接數(shù),可以稍微大一些,1024的倍數(shù)

        }

         

         

        gzip  on;

        server {

                listen       80;

                server_name  192.168.175.208;   //服務器地址

         

        找到

         

                location ~ \.php$ {

                     root           html;

                     fastcgi_pass   127.0.0.1:9000;

                     fastcgi_index  index.php;

                     fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

                     include        fastcgi_params;

                 }

         

        把前面注釋全部去掉, root后面的路徑是你網(wǎng)頁文件所放置的路徑, 該目錄如果不存在的話還需要手動創(chuàng)建。

        找到

         

          location / {

                     root   /html;

                     index  index.php index.html index.htm;

                 }

         

        修改為如上所示 主要是添加index  后面的index.php

        修改完成后保存退出,重新啟動nginx服務

         

        service nginxd restart 

         

        vim /usr/local/webserver/nginx/html/index.php  //編輯測試文件在其中添加

         

        <?php

         phpinfo();

         ?>

         

        保存退出

         

        之后用web瀏覽器訪問 如果出現(xiàn)php信息頁面 表示服務成功,

         

        下面是測試msql 的連接 

        把剛才/usr/local/webserver/nginx/html/index.php中的內(nèi)容修改成

         

        <?php

         $link=mysql_connect("localhost","root","123456");

         if(!$link) echo "FAILD!";

         else echo "OK!";

         ?>

         

        然后刷新web頁面,如果出現(xiàn)OK!字樣 測表示正常連接

         

         

         

        優(yōu)化Linux內(nèi)核參數(shù)

        #vi /etc/sysctl.conf 在/etc/sysctl.conf末尾增加以下內(nèi)容(可根據(jù)服務器實際情況進行調(diào)整),在文件最后添加下面的內(nèi)容

         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_reuse = 1

         

         net.ipv4.tcp_mem = 94500000 915000000 927000000

         net.ipv4.tcp_max_orphans = 3276800

         net.ipv4.ip_local_port_range = 1024  65535

        #net.ipv4.ip_conntrack_max = 10000

         

        保存退出

        /sbin/sysctl -p

         

         

         

        ##############Linux內(nèi)核優(yōu)化參數(shù)說明##########################

         net.ipv4.tcp_max_syn_backlog = 65536    

        #記錄的那些尚未收到客戶端確認信息的連接請求的最大值

         net.core.netdev_max_backlog =  32768

         

        #每個網(wǎng)絡接口接收數(shù)據(jù)包的速率比內(nèi)核處理這些包的速率快時,允許送到隊列的數(shù)據(jù)包的最大數(shù)目。

         net.core.somaxconn = 32768

         

        #listen()的默認參數(shù),掛起請求的最大數(shù)量.默認是128.對繁忙的服務器,增加該值有助于網(wǎng)絡性能.

         net.core.wmem_default = 8388608

         

        #該參數(shù)指定了發(fā)送套接字緩沖區(qū)大小的缺省值(以字節(jié)為單位

         net.core.rmem_default = 8388608

         

        該參數(shù)指定了接收套接字緩沖區(qū)大小的缺省值(以字節(jié)為單位) 

         net.core.rmem_max = 16777216

         

        #該參數(shù)指定了接收套接字緩沖區(qū)大小的最大值(以字節(jié)為單位) 

         net.core.wmem_max = 16777216

         

        #該參數(shù)指定了發(fā)送套接字緩沖區(qū)大小的最大值(以字節(jié)為單位) 

         net.ipv4.tcp_timestamps = 0

         

        #時間戳可以避免序列號的卷繞。一個1Gbps的鏈路肯定會遇到以前用過的序列號。時間戳能夠讓內(nèi)核接受這種“異常”的數(shù)據(jù)包。這里需要將其關(guān)掉。

         net.ipv4.tcp_synack_retries = 2

        #為了打開對端的連接,內(nèi)核需要發(fā)送一個SYN并附帶一個回應前面一個SYN的ACK。也就是所謂三次握手中的第二次握手。這個設(shè)置決定了內(nèi)核放棄連接之前發(fā)送SYN+ACK包的數(shù)量。

         net.ipv4.tcp_syn_retries = 2

        #在內(nèi)核放棄建立連接之前發(fā)送SYN包的數(shù)量。

         net.ipv4.tcp_tw_recycle = 1

        #啟用timewait快速回收。

         net.ipv4.tcp_tw_reuse = 1

        #開啟重用。允許將TIME-WAIT sockets重新用于新的TCP連接。

         net.ipv4.tcp_mem = 94500000 915000000 927000000

         

        同樣有3個值,意思是: 

        net.ipv4.tcp_mem[0]:低于此值,TCP沒有內(nèi)存壓力. 
        net.ipv4.tcp_mem[1]:在此值下,進入內(nèi)存壓力階段. 
        net.ipv4.tcp_mem[2]:高于此值,TCP拒絕分配socket. 
        上述內(nèi)存單位是頁,而不是字節(jié)

        net.ipv4.tcp_max_orphans = 3276800  

         

        #系統(tǒng)所能處理不屬于任何進程的TCP sockets最大數(shù)量。假如超過這個數(shù)量﹐那么不屬于任何進程的連接會被立即reset,并同時顯示警告信息。之所以要設(shè)定這個限制﹐純粹為了抵御那些簡單的DoS攻擊﹐千萬不要依賴這個或是人為的降低這個限制 

         net.ipv4.ip_local_port_range = 1024  65535

        #允許系統(tǒng)打開的端口范圍。

            #net.ipv4.ip_conntrack_max = 10000

        #設(shè)置系統(tǒng)對最大跟蹤的TCP連接數(shù)的限制(CentOS 5.6無此參數(shù)) 

         

        #####################################################################

        編寫每天定時切割Nginx日志的腳本使用系統(tǒng)的logrotate 工具來回滾日志:

        logrotate 程序是一個日志文件管理工具。用來把舊的日志文件刪除,并創(chuàng)建新的日志文件,我們把它叫做“轉(zhuǎn)儲”。我們可以根據(jù)日志文件的大小,也可以根據(jù)其天數(shù)來轉(zhuǎn)儲,這個過程一般通過 cron 程序來執(zhí)行。

        logrotate 程序還可以用于壓縮日志文件,以及發(fā)送日志到指定的E-mai

        #vim /etc/logrotate/nginx    //在/etc/logrotate.d/下建立一腳本文件nginx,內(nèi)容為:

        /usr/local/webserver/nginx/logs/*log {

         missingok

          rotate 10

          daily

         notifempty

         sharedscripts

         postrotate

             /bin/kill -HUP `cat /var/run/nginx/nginx.pid 2>/dev/null` 2> /dev/null || true

         endscript

        }

         

        保存退出

        生成日志的格式為:access_log.1 access_log.2 error_log.3 ......

         

                                    error_log.1 error_log.2 error_log.3 ........

         

         

         

        用Webbench進行簡單的壓力測試

           Webbench是有名的網(wǎng)站壓力測試工具。Webbench支持多平臺,F(xiàn)reeBSD、Linux、Windows都可以使用。Webbench最多可以模擬3萬個并發(fā)連接去測試網(wǎng)站的負載能力。

         

        cd /usr/local/src/websoft

        tar xvf webbench-1.5.tar.gz

        cd webbench-1.5

        make && make install


        本文出自:億恩科技【www.enidc.com】
        -->

        服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

      2. 您可能在找
      3. 億恩北京公司:
      4. 經(jīng)營性ICP/ISP證:京B2-20150015
      5. 億恩鄭州公司:
      6. 經(jīng)營性ICP/ISP/IDC證:豫B1.B2-20060070
      7. 億恩南昌公司:
      8. 經(jīng)營性ICP/ISP證:贛B2-20080012
      9. 服務器/云主機 24小時售后服務電話:0371-60135900
      10. 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
      11. 專注服務器托管17年
        掃掃關(guān)注-微信公眾號
        0371-60135900
        Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號
          0
         
         
         
         

        0371-60135900
        7*24小時客服服務熱線