LNAMP(Linux+Nginx+Apache+Mysql+PHP)架构受到很多IT企业的青睐,取代了原来认为很好的LNMP(Linux+Nginx+Mysql+PHP)架构,那我们说LNAMP到底有什么优点呢,还得从Nginx和apache的优缺点说起。

Nginx处理静态文件能力很强,Apache处理动态文件很强而且很稳定,把二者综合在一块,性能提升很多倍。可能很多Linux SA在从事LNMP运维中,会发现PHP(FastCGI)模式会出现一些502错误的现象,这是因为Nginx+PHP(FastCGI)组合不稳定的原因造成的。

  • 源码安装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配置段内容如下:

(定义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如下图所示:

查看系统启动的端口及进程如下图:

自此,LNAMP全部整合完毕,接下来就是对系统内核、各个服务、架构进行优化,同样优化是一项长期的任务。

构建Nginx均衡LAMP高性能服务器的更多相关文章

  1. Nginx均衡TCP协议服务器案例

    Nginx在企业运维中通常用来均衡HTTP协议,例如我们熟知的80.8080.8081等服务.因为大部分的服务都是http请求访问协议,那有时候需要用到TCP协议,如果来实现均衡呢? 默认nginx不 ...

  2. linux+nginx+mysql+php高性能服务器搭建

    1.安装基础包 yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freet ...

  3. Docker构建nginx的nginx-rtmp-module视频服务器镜像

    文章地址:https://www.cnblogs.com/linyilong3/p/5862595.html GitHub nginx-rtmp-module 及配置 Dockerfile构建配置: ...

  4. Nginx+PHP(FastCGI)高性能服务器加载redis+memcache模块

    1)Nginx+FastCGI安装配置: yum install  openssl openssl-devel pcre-devel pcre zlib zlib-devel –y #下载Nginx源 ...

  5. 使用Nginx负载均衡搭建高性能.NETweb应用程序一

    一.遇到的问题 当我们用IIS服务器部署了一个web应用以后,当很多用户高并发访问的时候,客户端响应就会很慢,客户的体验就会很差,由于IIS接受到客户端请求的 时候,就会创建一个线程,当线程达到几千个 ...

  6. 使用Nginx负载均衡搭建高性能.NETweb应用程序(转)

    一.遇到的问题 当我们用IIS服务器部署了一个web应用以后,当很多用户高并发访问的时候,客户端响应就会很慢,客户的体验就会很差,由于IIS接受到客户端请求的时候,就会创建一个线程,当线程达到几千个时 ...

  7. 使用Nginx负载均衡搭建高性能.NETweb应用程序二

    在文章<使用Nginx负载均衡搭建高性能.NETweb应用程序一>中,让我们对Nginx有了一个初步认识,下面我们将在windows平台下面使用Nginx演示集群部署我们的web应用. 一 ...

  8. 【高性能服务器】Nginx剖析

    引言 Nginx是一个流行的高性能服务器,官方宣称在压力测试下可以支持5万个并发连接,而且占用内存极低.相比于其他昂贵的硬件负载均衡解决方案,Nginx是开源免费的,可以大大降低成本.本文将从一下几个 ...

  9. Windows下nginx配置多台服务器做负载均衡

    Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务. Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3 ...

随机推荐

  1. Django+Nginx+uWSGI部署

    一.介绍 Django的部署可以有多种方式,采用nginx+uwsgi的方式是最常见的一种方式.在这种方式中,将nginx作为服务器前端,接收WEB的所有请求,统一管理请求.nginx把所有静态请求自 ...

  2. 使用缓存Memcache存储access_token

    接上篇文本,千辛万苦终于拿到了access_token. 正常情况下access_token有效期为7200秒,重复获取将导致上次获取的access_token失效.目前,获取access_token ...

  3. JS深层继承

    我们在书写JS的时候常常被一种现象困扰 let jsonA = { a1: { b1:1; }, }; let jsonB = jsonA; jsonB.a1.b1 = 2; console.log( ...

  4. VS2012环境下C#调用C++生成的DLL

    1.VS2012 C++生成DLL 这个过程仿照http://www.cnblogs.com/LCCRNblog/p/3625200.html创建DLL即可,暂时不用创建测试工程,因为下面有测试工程的 ...

  5. 理解Java包

    本质上,包是一个唯一命名的类的集合,将类集合到包里面的主要原因,是为了当在应用程序中使用预先编写的类时避免与类自身可能引起的明明冲突.用于包中的类名不会妨碍另一个包或程序中的类名,因为此时,包中的类名 ...

  6. pandas数据结构练习题(部分)

    更多函数查阅http://pandas.pydata.org/pandas-docs/stable/10min.htmlimport pandas as pd#两种数据结构from pandas im ...

  7. CIFAR-10 dataset 的下载与使用

    基本信息 CIFAR-10 是一个包含60000张图片的数据集.其中每张照片为32*32的彩色照片,每个像素点包括RGB三个数值,数值范围 0 ~ 255. 所有照片分属10个不同的类别,分别是 'a ...

  8. Android 开发笔记___DateUtil——Time

    package com.example.alimjan.hello_world; /** * Created by alimjan on 6/30/2017. */ import java.text. ...

  9. linq 在查询表达式中处理 null 值

    此示例显示如何在源集合中处理可能的 null 值. IEnumerable<T> 等对象集合可包含值为 null 的元素. 如果源集合为 null 或包含值为 null 的元素,并且查询不 ...

  10. 《Python数据分析常用手册》一、NumPy和Pandas篇

    一.常用链接: 1.Python官网:https://www.python.org/ 2.各种库的whl离线安装包:http://www.lfd.uci.edu/~gohlke/pythonlibs/ ...