lnamp高性能架構之apache和nginx的整合


 

搭建過lamp博友和lnmp的博友們可能對這這兩個單詞並不陌生,對與apachen,nginx相比都源碼或yum安裝過,但知道apache的nginx的優點,apache處理動態頁面很強,nginx處理靜態頁面絲毫不遜色。如果只是單獨的去應用,在現行的高並發的企業網絡體難以系上保證此架構的穩定性。

如果把apache和nginx相互整合,動靜結合,可以很大程度上提高網絡的處理效率。

下面是lanmp架構的簡單搭建:

 

 源碼安裝 LNAMP 之 Nginx

yum install prce-devel – y ;cd /usr/src ;wget
http://nginx.org/download/nginx-1.6.0.tar.gz ;cd nginx-1.6.0 ;./configure –
prefix=/usr/local/nginx && make &&make install

源碼安裝 LNAMP 之 Apache
yum install apr-devel apr-util-devel –y;
cd /usr/src ; wget
http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.27.tar.gz ;tar xzf
httpd-2.2.27.tar.gz ;cd httpd-2.2.27 ;./configure --prefix=/usr/local/apache
--enable-so --enable-rewrite &&make &&make install

 源碼安裝 LNAMP 之 MySQL
cd /usr/src ;wget
http://downloads.mysql.com/archives/mysql-5.1/mysql-5.1.63.tar.gz ;tar xzf
mysql-5.1.63.tar.gz ;cd mysql-5.1.63 ;./configure --prefix=/usr/local/mysql
--enable-assembler &&make &&make install
配置 Mysql 服務為系統服務:
cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf

cp /usr/local/mysql/share/mysql/mysql.server /etc/rc.d/init.d/mysqld

chkconfig --add mysqld
chkconfig --level 345 mysqld on
cd /usr/local/mysql
useradd mysql
chown -R mysql.mysql /usr/local/mysql
/usr/local/mysql/bin/mysql_install_db --user=mysql
chown -R mysql var
/usr/local/mysql/bin/mysqld_safe --user=mysql &

 

源碼安裝 LNAMP 之 PHP
cd /usr/src ;wget http://mirrors.sohu.com/php/php-5.3.28.tar.bz2 ;tar jxf
php-5.3.28.tar.bz2 ;cd php-5.3.28 ;./configure --prefix=/usr/local/php5
--with-config-file-path=/usr/local/php/etc
--with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql/

 

 

 

源碼安裝 Apache+PHP 整合
整合 apache+php 環境,修改 httpd.conf 配置文件,然后加入如下語句:
LoadModule php5_module modules/libphp5.so (默認已存在)
AddType application/x-httpd-php .php
DirectoryIndex index.php index.html (把 index.php 加入 index.html 之前)

 

 

 

然后在/usr/local/apache/htdocs 目錄下創建 index.php 測試頁面,執行如下命令:
cat >>/usr/local/apache/htdocs/index.php <<EOF
<?php
phpinfo();
?>
EOF


重新啟動 apache 服務,通過 IP 訪問界面如下圖,即代表 LAMP 環境搭建成功。

 

 

 源碼安裝 DISCUZ 論壇

下載 discuz 源碼包文件,然后解壓:
cd /usr/src ;wget
http://download.comsenz.com/DiscuzX/3.1/Discuz_X3.1_SC_UTF8.zip
解壓 discuz 程序包:unzip Discuz_X3.1_SC_UTF8.zip -d /usr/local/apache/htdocs/
重命名程序文件:cd /usr/local/apache/htdocs/ ;mv upload/* .
賦予 discuz 目錄完全訪問權限:cd /usr/local/apache/htdocs/ ;chmod 777 -R data/

uc_server/ config/ uc_client/          

然后訪問 IP 安裝 discuz 論壇,如下圖,選擇“我同意”

 

 

進入如下界面,數據庫安裝,如果不存在則需要新建數據庫並授權。

 

 

數據庫創建及授權命令如下:
create database discuz charset=utf8;
grant all on discuz.* to root@'localhost' identified by "123456";  

 

自此 LAMP 環境整合並搭建成功,那如何使用 Nginx 來整合 LAMP 呢?

 

源碼安裝 Nginx+LAMP 整合
先修改 apache 訪問端口為 8080,Nginx 端口為 80。
然后修改 nginx 配置文件: vi /usr/local/nginx/conf/nginx.conf,server 配置段內容如
下(把nginx的發布目錄指向apache的發布目錄)
(定義 upstream 均衡模塊,配置動靜分離,動態轉發至 apache,靜態文件直接本地響應)
upstream app_lamp {
server 127.0.0.1:8080 weight=1 max_fails=2 fail_timeout=30s;
}
server {
listen 80;
server_name localhost;
location / {
root /usr/local/apache/htdocs;
index index.php index.html index.htm;

location ~ .*\.(php|jsp|cgi)?$
{
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_pass http://app_lamp;
}
location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
{
root /usr/local/apache/htdocs;
expires 3d;
}
}
測試,訪問 nginx ip+port 如下圖所示:

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM