成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

nginx+apache實現(xiàn)動靜態(tài)頁面分離的web環(huán)境(一)

前幾天寫了nginx+php(FastCGI)環(huán)境搭建的文章。搭建完環(huán)境壓力測試之后發(fā)現(xiàn),訪問頁面經(jīng)常出現(xiàn)“502 ”的錯誤。不知道是php(FastCGI)的配置不合理,還是環(huán)境本身就有缺陷。在網(wǎng)上百度了一下,發(fā)現(xiàn)nginx結(jié)合apache的環(huán)境比較好,可以發(fā)揮apache處理動態(tài)頁面的優(yōu)勢,同時利用nginx處理靜態(tài)頁面強(qiáng)大的功能,實現(xiàn)動靜頁面分離的效果。
apache可以整合大多數(shù)應(yīng)用,比如jsp,php,cgi,python等等,但是apache過于臃腫以及對靜態(tài)文件響應(yīng)過于緩慢讓很多使用者感到頭疼。nginx ("engine x") 是一個高性能的 HTTP 和反向代理服務(wù)器,也是一個 IMAP/POP3/SMTP 代理服務(wù)器。它能夠支持高達(dá)50 000個并發(fā)連接數(shù)的響應(yīng),運行穩(wěn)定,且內(nèi)存、CPU等系統(tǒng)資源消耗非常低。nginx的優(yōu)勢在于高性能的處理靜態(tài)頁面。下面是我總結(jié)的環(huán)境搭建的過程,在這里貼出來,和大家共享一下。

成都創(chuàng)新互聯(lián)公司服務(wù)項目包括錦屏網(wǎng)站建設(shè)、錦屏網(wǎng)站制作、錦屏網(wǎng)頁制作以及錦屏網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,錦屏網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到錦屏省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

系統(tǒng)、軟件包及環(huán)境簡介:
系統(tǒng)Centos 5.5 、 php 5.2 、mysql 5.1、apache 2.2、nginx 0.8
1.Php支持庫及擴(kuò)展: libiconv-1.13.1.tar.gz libevent-2.0.10-stable.tar.gz ibmcrypt-2.5.8.tar.gz mhash-0.9.9.9.tar.gz mcrypt-2.6.8.tar.gz gd-2.0.35.tar.gz eaccelerator-0.9.6.1.tar.bz2 ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz PDO_MYSQL-1.0.2.tgz suhosin-0.9.32.1.tar.gz freetds-0.82.tar.gz
2.Mysql所需軟件包: google-perftools-1.7.tar.gz mysql-5.1.45.tar.gz
3.Apache 所需軟件包: httpd-2.2.17.tar.gz
4.Nginx所需軟件包:pcre-8.12.tar.gz nginx-0.8.54.tar.gz mod_rpaf-0.6.tar.gz
當(dāng)然還需要其他的一些安裝包,我會在下面的更新中給出。
一、最小化安裝Centos系統(tǒng),刪除不必要的程序,并安裝相關(guān)組件。
yum -y remove httpd mysql php
yum -y install yum-fastestmirror
yum -y update
yum -y install patch make gcc gcc-c++ gcc-g77 flex bison tarlibtool libtool-libs kernel-devel autoconf213 libtiff libtiff-devel gettext gettext-devel freetype freetype-devel zlib zlib-devel
libxml2 libxml2-devel file glib2 glib2-devel bzip2 diff* openldap-devel bzip2-devel vim-minimalunzip
ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel

export PHP_AUTOCONF=/usr/bin/autoconf-2.13
export PHP_AUTOHEADER=/usr/bin/autoheader-2.13
二、安裝php 5.2所支持的庫
cd /usr/local/src
wget -chttp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
tar zxvf libiconv-1.13.1.tar.gz
cd libiconv-1.13.1/
./configure --prefix=/usr/local
make
make install
cd ../
wget -chttp://monkey.org/~provos/libevent-2.0.10-stable.tar.gz
tar zxvf libevent-2.0.10-stable.tar.gz
cd libevent-2.0.10-stable/
./configure --prefix=/usr
make
make install
cd ../
wget -chttp://ncu.dl.sourceforge.net/sourceforge/mcrypt/libmcrypt-2.5.8.tar.gz
tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8/
./configure
make
make install
/sbin/ldconfig
cd libltdl/
./configure --enable-ltdl-install
make
make install
cd ../../
wget -chttp://nchc.dl.sourceforge.net/sourceforge/mhash/mhash-0.9.9.9.tar.gz
tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9/
./configure
make
make install
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
wget -chttp://nchc.dl.sourceforge.net/sourceforge/mcrypt/mcrypt-2.6.8.tar.gz
tar zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8/
./configure
make
make install
cd ../
安裝GD圖形支持庫:
cd /usr/local/src
wgethttp://www.libgd.org/releases/gd-2.0.35.tar.gz
tar xzvf gd-2.0.35.tar.gz
cd gd
cd 2.0.35
./configure --prefix=/usr/local/gd --mandir=/usr/share/man --with-jpeg --with-png --with-freetype --with-zlib --with-fontconfig
make //如果GD報錯:configure.ac:64: warning: macro `AM_ICONV\' not found in library 你就make clean一下,然后再make
make install

三、安裝 Mysql:
1)先安裝Google的開源TCMalloc庫,可以提高M(jìn)ySQL在高并發(fā)情況下的性能
cd /usr/local/src
wget -chttp://google-perftools.googlecode.com/files/google-perftools-1.7.tar.gz
tar zxvf google-perftools-1.7.tar.gz
cd google-perftools-1.7/
./configure
make && make install
echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf
/sbin/ldconfig
cd ../
2)開始安裝Mysql

groupadd mysql -g 27
useraddmysql -u 27 -g 27 -c "MySQL Server" -d /var/lib/mysql -m
cd /usr/local/src
tar -zxf mysql-5.1.45.tar.gz
cd mysql-5.1.45
./configure --prefix=/usr/local/mysql --localstatedir=/var/lib/mysql --with-unix-socket-path=/var/lib/mysql/mysql.sock --with-mysqld-user=mysql --enable-assembler --enable-thread-safe-client --with-extra-charsets=all --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugins=partition,innodb_plugin,myisam,myisammrg
make && make install
cd ../
cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
/usr/local/mysql/bin/mysql_install_db --user=mysql
chown -R mysql.mysql /var/lib/mysql
chgrp -R mysql /usr/local/mysql/.
cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysql
chmod u+x /etc/init.d/mysql
chkconfig --level 345 mysql on
echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
echo "/usr/local/lib" >>/etc/ld.so.conf
ldconfig
ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
ln -s /usr/local/mysql/include/mysql /usr/include/mysql
ln -s /usr/local/mysql/bin/mysql_config /usr/bin/mysql_config
service mysql start
/usr/local/mysql/bin/mysqladmin -u root password wangwang(紅色部分為你的數(shù)據(jù)庫的密碼)
service mysql restart
3)設(shè)置MySQL:
打開“/etc/my.cnf”文件,修改以下設(shè)置,如果沒有,可手動添加:
關(guān)閉遠(yuǎn)程連接,即3306端口。這是MySQL的默認(rèn)監(jiān)聽端口。由于此處MySQL只服務(wù)于本地腳本,所以不需要遠(yuǎn)程連接。盡管MySQL內(nèi)建的安全機(jī)制很嚴(yán)格,但監(jiān)聽一個TCP端口仍然是危險的行為,因為如果MySQL程序本身有問題,那么未授權(quán)的訪問完全可以繞過MySQL的內(nèi)建安全機(jī)制。(你必須確定,你是否真的不需要遠(yuǎn)程連接mysql,一般數(shù)據(jù)庫地址為localhost的,即使本地數(shù)據(jù)庫,不需要外鏈)
skip-networking
保存后退出。
修改完my.cnf后,還需要對mysql的用戶名、帳號、及默認(rèn)數(shù)據(jù)庫進(jìn)行調(diào)整
首先先登錄mysql,在終端窗口輸入
/usr/local/mysql/bin/mysql -u root -p
然后會提示輸入密碼,輸入正確密碼后,會出現(xiàn)mysql>提示符。
輸入以下命令:
mysql>use mysql;
mysql>select Host,User,Password,Select_priv,Grant_priv from user;
mysql>delete from user where user=\'\'; (刪除user用戶)
mysql>delete from user where password=\'\'; (刪除user用戶)
mysql>delete from user where host=\'\'; (刪除user用戶)
mysql>drop database test; (刪除默認(rèn)的test數(shù)據(jù)庫)
mysql>flush privileges; (刷新mysql的緩存,讓以上設(shè)置立即生效)
mysql>quit;
為了使以上優(yōu)化和安全設(shè)置生效,請重啟Mysql服務(wù)。
service mysql restart

四、安裝Apache:
1)下載Apache并解壓縮:
cd /usr/local/src
groupadd www
useradd -g www -s /sbin/nologin -M www
wget -chttp://www.apache.org/dist//httpd/httpd-2.2.17.tar.gz
tar zxvf httpd-2.2.17.tar.gz
cd httpd-2.2.17
Apache默認(rèn)連接數(shù)和客戶端數(shù)為40000,如果你的服務(wù)器要求更大,可以編譯Apache安裝文件中的:
server/mpm/worker/worker.c
找到下面幾行,并改成如下的數(shù)值,其目的是在源碼中修改apache可支持的線程數(shù)和客戶端數(shù)目。
define DEFAULT_SERVER_LIMIT 32
define MAX_SERVER_LIMIT 20000
define DEFAULT_THREAD_LIMIT 64
define MAX_THREAD_LIMIT 20000
以上數(shù)值據(jù)說改小后,能減低服務(wù)器消耗。不過柒月修改后,發(fā)現(xiàn)沒什么實質(zhì)變化。
2)安裝Apache 2.2
cd /usr/local/src/httpd-2.2.17
./configure --prefix=/usr/local/apache2 --enable-headers --enable-so --enable-rewrite --with-mpm=prefork --disable-userdir --disable-cgid --disable-cgi
make && make install
如果你需要編譯apache其他功能,可以自行增加。 不過在這里,我們只是用Apache作為后端并處理偽靜態(tài),無需添加過多設(shè)置來浪費內(nèi)存
配置源代碼樹:
--prefix=/usr/local/apache2 //體系無關(guān)文件的頂級安裝目錄PREFIX ,也就Apache的安裝目錄。
--enable-module=so //打開 so 模塊,so 模塊是用來提 DSO 支持的 apache 核心模塊
--enable-mods-shared=all //編譯全部的模板,對于不需要我們可以在httpd.conf去掉。
--enable-cache //支持緩存
--enable-file-cache //支持文件緩存
--enable-mem-cache //支持記憶緩存
--enable-disk-cache //支持磁盤緩存
--enable-static-support //支持靜態(tài)連接(默認(rèn)為動態(tài)連接)
--enable-static-htpasswd //使用靜態(tài)連接編譯 htpasswd - 管理用于基本認(rèn)證的用戶文件
--enable-static-htdigest //使用靜態(tài)連接編譯 htdigest - 管理用于摘要認(rèn)證的用戶文件
--enable-static-rotatelogs //使用靜態(tài)連接編譯 rotatelogs - 滾動 Apache 日志的管道日志程序
--enable-static-logresolve //使用靜態(tài)連接編譯 logresolve - 解析 Apache 日志中的IP地址為主機(jī)名
--enable-static-htdbm //使用靜態(tài)連接編譯 htdbm - 操作 DBM 密碼數(shù)據(jù)庫
--enable-static-ab //使用靜態(tài)連接編譯 ab - Apache HTTP 服務(wù)器性能測試工具
--enable-static-checkgid //使用靜態(tài)連接編譯 checkgid
--disable-cgid //禁止用一個外部 CGI 守護(hù)進(jìn)程執(zhí)行CGI腳本
--disable-cgi //禁止編譯 CGI 版本的 PHP
--with-mpm=worker // 讓apache以worker方式運行
--enable-ssl // 編譯 ssl模塊。
啟動Apache(建議先不要啟動,等我們?nèi)吭O(shè)置完畢后,和Nginx啟動)
/usr/local/apache2/bin/apachectl start
查看apache是否啟動
ps aux|grep httpd
將apache設(shè)置成開機(jī)自啟動:
echo \'/usr/local/apache2/bin/apachectl start \' >> /etc/rc.local //將 apachectl 的調(diào)用加入到你的系統(tǒng)啟動文件中。
五、安裝 PHP5.2.x:
1)下載PHP 并解壓縮:
安裝php支持連接mssql
# tar zxvf freetds-0.82.tar.gz
# cd freetds-0.82
//--with-tdsver=8.0是指安裝tds 8.0版本(如果沒有加這個參數(shù),則按照默認(rèn)編譯為5.0。5.0連接數(shù)據(jù)庫的端口是4000,而不是SQLServer的1433)
# ./configure --prefix=/usr/local/freetds --with-tdsver=8.0
# make
# make install
#vi /etc/ld.so.conf 設(shè)置系統(tǒng)動態(tài)庫配置文件,加入以下:
/usr/local/freetds/lib
保存退出。
#ldconfig 重新加載動態(tài)庫列表ld.so.conf
#生成兩個文件,后面PHP編譯時需要
#touch /usr/local/freetds/include/tds.h
#touch /usr/local/freetds/lib/libtds.a
cd /usr/local/src
wget -chttp://us.php.net/distributions/php-5.2.17.tar.gz
tar zxvf php-5.2.17.tar.gz
cd php-5.2.17
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-config-file-path=/etc --with-zlib --with-libxml-dir --with-gd=/usr/local/gd --with-freetype-dir --with-jpeg-dir --with-png-dir --with-ttf --with-iconv --with-openssl --with-mcrypt --enable-sockets --enable-bcmath --enable-calendar --enable-exif --enable-libxml --enable-magic-quotes --enable-mbstring --with-bz2 --with-curl --with-xmlrpc --with-gettext --disable-cli --disable-cgi --disable-debug --with-mssql=/usr/local/freetds
make ZEND_EXTRA_LIBS=\'-liconv\'
make install
cp php.ini-dist /etc/php.ini
#vi /etc/php.ini
mssql.charset = "GBK" //修改MSSQL默認(rèn)編碼,把前面的“;”去掉。
2)安裝PHP擴(kuò)展:
2.1)安裝eaccelerator加速軟件
eaccelerator是php的加速軟件,使用后php的執(zhí)行效率會有很大幅度的提升。
cd /usr/local/src
wgethttp://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2
tar -jxvf eaccelerator-0.9.6.1.tar.bz2
cd eaccelerator-0.9.6.1
/usr/local/php/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config
make && make install
編譯安裝后我們會看到屏幕提示的eaccelerator.so所在的目錄,php5.2.x系列是在 /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/,記住這個路徑,待會要用到
修改php.ini 文件,將以下內(nèi)容輸入(詳細(xì)設(shè)置):
[eaccelerator]
zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/tmp/eaccelerator"
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"
注意:這部分內(nèi)容務(wù)必放在[zend]之前,不然可能會出現(xiàn)不可預(yù)期的服務(wù)器問題。
然后建立文件夾并設(shè)置權(quán)限:
mkdir /tmp/eaccelerator
chmod 777 /tmp/eaccelerator
2.2)安裝Zend(如果程序沒要求,盡量不要裝Zend,容易和eA產(chǎn)生沖突):
cd /usr/local/src
wgethttp://downloads.zend.com/optimizer/3.3.9/ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz
tar -zxvf ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz
cp ZendOptimizer-3.3.9-linux-glibc23-i386/data/5_2_x_comp/ZendOptimizer.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
修改php.ini 文件:
vi /usr/local/php/php.ini
將以下代碼放入php.ini文件最底部
[Zend Optimizer]
zend_optimizer.optimization_level=1
zend_optimizer.encoder_loader=0
zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/ZendOptimizer.so"
2.3)安裝PDO_MYSQL
cd /usr/local/src
wget -chttp://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz
tar zxvf PDO_MYSQL-1.0.2.tgz
cd PDO_MYSQL-1.0.2/
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql
make
make install
繼續(xù)修改 php.ini 文件
vi /usr/local/php/php.ini
查找代碼:
extension_dir = "./"
替換為:
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
extension="pdo_mysql.so"
2.4)安裝 suhosin:
cd /usr/local/src
wget -chttp://download.suhosin.org/suhosin-0.9.32.1.tar.gz
tar -zxvf suhosin-0.9.32.1.tar.gz
cd suhosin-0.9.32.1
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
繼續(xù)修改 php.ini 文件
vi /usr/local/php/php.ini
查找代碼:
extension="pdo_mysql.so"
在以上代碼下面加上:
extension="suhosin.so"

六、Apache 整合 PHP 以及相關(guān)優(yōu)化:
1)Apache設(shè)置:
mkdir /home/www
編輯 httpd.conf :
vi /usr/local/apache2/conf/httpd.conf
查找代碼:
DocumentRoot "/usr/local/apache2/htdocs"
修改為:
DocumentRoot "/home/www"
查找代碼:
<Directory "/usr/local/apache2/htdocs">
修改為:
<Directory "/home/www">
找到以下代碼并根據(jù)提示修改
<Directory />
Options FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all //這句改為Allow from all
</Directory>
找到這一段并修改,以使Apache支持rewrite(偽靜態(tài)):
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
AllowOverride None
更改為
AllowOverride All
將以下代碼注釋掉,禁止目錄列表:
Options Indexes FollowSymLinks
找到以下代碼,修改用戶為 www
<IfModule !mpm_netware_module>
<IfModule !mpm_winnt_module>
User daemon //改為www
Group daemon //改為www
</IfModule>
</IfModule>
設(shè)置 ServerAdmin 改為你自己的mail地址
查找:
Listen 80
改為
Listen 81
分別找到以下四段代碼,將之前的注釋#去除:
Include conf/extra/httpd-mpm.conf
Include conf/extra/httpd-info.conf
Include conf/extra/httpd-vhosts.conf
Include conf/extra/httpd-default.conf
編輯 Include conf/extra/httpd-mpm.conf 找到如下選項,并改成對應(yīng)的數(shù)值
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 1000
</IfModule>
編輯 conf/extra/httpd-default.conf
Timeout 60 #與nginx的保持一至
KeepAlive On
MaxKeepAliveRequests 1000
KeepAliveTimeout 5
復(fù)制以下文件:
cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/httpd
這樣以后Apache 啟動、關(guān)閉、重啟只需要輸入以下命令:
service httpd start/stop/restart
2)整合Apache與php
編輯 /usr/local/apache2/conf/httpd.conf
找到AddType application/x-gzip .gz .tgz在其下加以下內(nèi)容
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
查找:(設(shè)置WEB默認(rèn)文件)
DirectoryIndex index.html
改成:
DirectoryIndex index.php index.htm index.html index.html.var
編輯 Include conf/extra/httpd-vhosts.conf
<VirtualHost *:81>
ServerAdmin
DocumentRoot "/home/www"
ServerName 192.168.1.100 //修改為你主機(jī)的ip地址。

ErrorLog "logs/IP-error_log"
CustomLog "logs/IP-access_log" common
</VirtualHost>
保存退出,并重啟Apache
service httpd restart 或 /usr/local/apache2/bin/apachectl restart
然后建立一個 index.php文件,放入 /home/www 目錄,php文件內(nèi)容為:
<?php
phpinfo();
?>
然后在瀏覽器中輸入:IP:81 是否成功顯示了?
七、優(yōu)化MySQL
通過Tcmalloc 優(yōu)化mysql性能
# vi /etc/init.d/mysql
添加一行
export LD_PRELOAD=/usr/local/lib/libtcmalloc.so
重新啟動mysql
service mysql restart
檢測是否成功,在SSH中輸入:
lsof -n|grep tcmalloc
出現(xiàn)相關(guān)進(jìn)程即可

八、安裝Nginx:
1)安裝所需組件:
cd /usr/local/src

tar -zxvf pcre-8.12.tar.gz
cd pcre-8.12/
./configure
make && make install
cd ../
rm -rf pcre-8.12
rm -rf /usr/bin/pcre-config
cp -a /usr/local/bin/pcre-config /usr/bin/
rm -rf /usr/lib/libpcre.a
cp -a /usr/local/lib/libpcre.a /usr/lib/
2)安裝 Nginx :
cd /usr/local/src
wget -chttp://nginx.org/download/nginx-0.8.54.tar.gz
tar zxvf nginx-0.8.54.tar.gz
cd nginx-0.8.54
./configure --user=www --group=www --prefix=/usr/local/nginx --pid-path=/usr/local/nginx/logs/nginx.pid --error-log-path=/usr/local/nginx/logs/error.log --http-log-path=/usr/local/nginx/logs/access.log --with-http_stub_status_module --with-http_ssl_module --http-client-body-temp-path=/tmp/nginx_client --http-proxy-temp-path=/tmp/nginx_proxy --http-fastcgi-temp-path=/tmp/nginx_fastcgi --with-http_gzip_static_module --with-google_perftools_module --with-ld-opt=\'-ltcmalloc_minimal\' --with-ipv6
make && make install
編輯 nginx.conf 文件:
vi /usr/local/nginx/conf/nginx.conf
輸入以下內(nèi)容:

#運行用戶
user www;

#啟動進(jìn)程
worker_processes 1;
worker_rlimit_nofile 65535;

#工作模式及連接數(shù)上限
events {
worker_connections 65535;
use epoll;
}
error_log /usr/local/nginx/logs/error.log info;

#設(shè)定http服務(wù)器,利用它的反向代理功能提供負(fù)載均衡支持
http {
include mime.types;

#設(shè)定mime類型
default_type application/octet-stream;
#charset gb2312;

#設(shè)定請求緩沖
server_names_hash_max_size 2048;
server_names_hash_bucket_size 256;
client_header_buffer_size 256k;
client_max_body_size 100m;
large_client_header_buffers 4 256k;
sendfile on;
tcp_nopush on;
server_tokens off;
tcp_nodelay on;
proxy_send_timeout 300;
proxy_read_timeout 300;
proxy_buffer_size 4k;
proxy_buffers 16 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_connect_timeout 30s;
keepalive_timeout 10;

#開啟gzip模塊
gzip on;
gzip_http_version 1.0;
gzip_min_length 1100;
gzip_comp_level 3;
gzip_buffers 4 32k;
gzip_types text/plain text/xml text/css application/x-javascript application/xml application/xml+rss text/javascript application/atom+xml;
ignore_invalid_headers on;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
connection_pool_size 256;
request_pool_size 32k;
output_buffers 4 64k;
postpone_output 1460;
open_file_cache max=1000 inactive=300s;
open_file_cache_valid 600s;
open_file_cache_min_uses 2;
open_file_cache_errors off;
include "/usr/local/nginx/conf/vhosts/*.conf";

#設(shè)定虛擬主機(jī)
server {
listen 80;
server_name 192.168.1.100;
root /home/www/; #設(shè)定網(wǎng)站的資源存放路徑
index index.html index.htm; #設(shè)定訪問的默認(rèn)首頁地址
access_log off;
if (-d $request_filename)
{
rewrite ^/(.*)([^/])$http://$host/$1$2/permanent;
}

#所有php的頁面均交由apache處理
location ~ .(php)?$ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_passhttp://192.168.1.100:81;
}
# 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;
location ~* .(ftpquota|htaccess|asp|aspx|jsp|asa|mdb)$ {
deny all;
}

#設(shè)定查看Nginx狀態(tài)的地址

location/NginxStatus{
stub_statuson;

access_log off;

#定義訪問日志的寫入格式,如果需要關(guān)閉nginx的訪問日志就把一下的日志內(nèi)容注釋掉。

log_formatwwwlog\'$remote_addr-$remote_user[$time_local]"$request"\'

\'$status$body_bytes_sent"$http_referer"\'

\'"$http_user_agent"$http_x_forwarded_for\';

access_log/home/www/nginx.log wwwlog;#設(shè)定訪問日志的存放路徑

}
}
}
3)設(shè)置Nginx的啟動,停止方式為:service nginx start/stop/status/restart

一般的啟動方式為:/usr/local/nginx/sbin/nginx/

重啟方式為:/usr/local/nginx/sbin/nginx/ -s reload

編輯 /etc/rc.d/init.d/nginx 文件,覆蓋為以下代碼:
#! /bin/sh
ulimit -n 65535
# Description: Startup script for nginx
# chkconfig: 2345 55 25
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="nginx daemon"
NAME=nginx
DAEMON=/usr/local/nginx/sbin/$NAME
CONFIGFILE=/usr/local/nginx/conf/nginx.conf
PIDFILE=/usr/local/nginx/logs/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
set -e
[ -x "$DAEMON" ] || exit 0
do_start() {
$DAEMON -c $CONFIGFILE || echo -n "nginx already running"
}
do_stop() {
kill -QUIT `cat $PIDFILE` || echo -n "nginx not running"
}
do_reload() {
kill -HUP `cat $PIDFILE` || echo -n "nginx can\'t reload"
}
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
do_start
echo "."
/etc/init.d/httpd start
;;
stop)
echo -n "Stopping $DESC: $NAME"
do_stop
echo "."
/etc/init.d/httpd stop
;;
reload)
echo -n "Reloading $DESC configuration..."
do_reload
echo "."
/etc/init.d/httpd restart
;;
restart)
echo -n "Restarting $DESC: $NAME"
do_stop
sleep 1
do_start
echo "."
/etc/init.d/httpd restart
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|reload|restart}" >&2
exit 3
;;
Esac
exit 0
#! /bin/shulimit -n 65535# Description: Startup script for nginx# chkconfig: 2345 55 25
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/binDESC="nginx daemon"NAME=nginxDAEMON=/usr/local/nginx/sbin/$NAMECONFIGFILE=/usr/local/nginx/conf/nginx.confPIDFILE=/usr/local/nginx/logs/$NAME.pidSCRIPTNAME=/etc/init.d/$NAME
set -e[ -x "$DAEMON" ] || exit 0
do_start() { $DAEMON -c $CONFIGFILE || echo -n "nginx already running"}
do_stop() { kill -QUIT `cat $PIDFILE` || echo -n "nginx not running"}
do_reload() { kill -HUP `cat $PIDFILE` || echo -n "nginx can\'t reload"}
case "$1" in start) echo -n "Starting $DESC: $NAME" do_start echo "." /etc/init.d/httpd start ;; stop) echo -n "Stopping $DESC: $NAME" do_stop echo "." /etc/init.d/httpd stop ;; reload) echo -n "Reloading $DESC configuration..." do_reload echo "." /etc/init.d/httpd restart ;; restart) echo -n "Restarting $DESC: $NAME" do_stop sleep 1 do_start echo "." /etc/init.d/httpd restart ;; *) echo "Usage: $SCRIPTNAME {start|stop|reload|restart}" >&2 exit 3 ;;esac
exit 0
在ssh 中輸入:
chmod 777 /etc/init.d/nginx
chmod a+x /etc/rc.d/init.d/nginx
chkconfig --add nginx
chkconfig nginx on
九、為apache安裝rpaf模塊,該模塊用于apache做后端時獲取訪客真實的IP(建議在LNAMP最后安裝。。。之前安裝有時會出錯)
1)使用apxs安裝模塊.這里要使用此前apache編譯安裝后的apxs
cd /usr/local/src
wgethttp://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
tar -zxf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
/usr/local/apache2/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
2)vi /usr/local/apache2/conf/httpd.conf // 編輯/usr/local/apache2/conf/httpd.conf添加模塊參數(shù),查找LoadModule php5_module modules/libphp5.so,在下方添加:
LoadModule rpaf_module modules/mod_rpaf-2.0.so
#Mod_rpaf settings
RPAFenable On
RPAFproxy_ips192.168.1.100 [your_ips]
RPAFsethostname On
RPAFheader X-Forwarded-For
上面出現(xiàn)的[your_ips]請修改為你本機(jī)所監(jiān)聽web服務(wù)的ip.多個IP用空格空開.
Apache、Nginx、MySQL 啟動/重啟/關(guān)閉命令:
service mysql start/stop/restart
service httpd start/stop/restart
service nginx start/stop/restart

網(wǎng)頁名稱:nginx+apache實現(xiàn)動靜態(tài)頁面分離的web環(huán)境(一)
當(dāng)前路徑:http://jinyejixie.com/article12/cjcodc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計網(wǎng)站導(dǎo)航、手機(jī)網(wǎng)站建設(shè)自適應(yīng)網(wǎng)站、移動網(wǎng)站建設(shè)定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
鄂托克旗| 韶山市| 常山县| 涞源县| 富平县| 甘孜县| 江城| 枣阳市| 庆元县| 六安市| 聂拉木县| 永登县| 嵩明县| 柳林县| 南岸区| 友谊县| 神农架林区| 临海市| 广元市| 两当县| 铜陵市| 蒙阴县| 永兴县| 若尔盖县| 峡江县| 庐江县| 吉林市| 舞阳县| 南漳县| 洞头县| 右玉县| 曲麻莱县| 壤塘县| 陕西省| 内黄县| 屯留县| 江达县| 平原县| 福泉市| 平舆县| 个旧市|