源码编译实现企业级LNMP平台

概念简单了解:
Nginx("enginex") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器
在高并发连接的情况下,Nginx是Apache服务器不错的替代品。根据调查显示Nginx+PHP(FastCGI)可以承受3万以上的并发连接数,相当于同等环境下Apache的10倍。

下面我们一起来配置CentOS+Nginx+MySQL+php组成的架构。

--------------------------------------------------------------------------------
环境信息介绍:
系统版本:CentOS6.4x86_64
Nginx版本:nginx-1.4.2.tar.gz
数据库版本:mysql-5.5.33.tar.gz
数据库管理工具:phpMyAdmin-4.0.5-all-languages.zip
加速器版本:xcache-3.0.3.tar.bz2
PHP版本:php-5.4.19.tar.bz2

--------------------------------------------------------------------------------
实现步骤:
一、安装配置Nginx:
1、解决依赖关系
编译安装nginx需要事先需要安装开发包组"DevelopmentTools"和"Server Platform Development"。同时,还需要专门安装pcre-devel包
[root@yong ~]# yum groupinstall "Development tools" "Server Platform Development"
[root@yong ~]# yum -y install pcre-devel

2、编译安装Nginx
首先添加用户nginx,实现以之运行nginx服务进程:
1 [root@yong ~]# useradd -r nginx

其次解压缩nginx查看介绍编译安装选项:

[root@yong ~]# tar xf nginx-1.4.2.tar.gz            #解压nginx
[root@yong ~]# cd nginx-1.4.2                      #切换目录
[root@yong nginx-1.4.2]# ./configure --help | less    #查看编译选项
--help                              print this message
  --prefix=PATH                      set installation prefix                      #目录
  --sbin-path=PATH                  set nginx binary pathname                    #二进制程序的安装目录
  --conf-path=PATH                  set nginx.conf pathname                      #配置文件路径
  --error-log-path=PATH              set error log pathname                        #错误路径
  --pid-path=PATH                    set nginx.pid pathname                        #pid路径
  --lock-path=PATH                  set nginx.lock pathname                      lock路径
  --user=USER                set non-privileged user for worker processes              #以哪个身份运行
  --group=GROUP              set non-privileged group for worker processes              #以哪个组的身份运行
  --builddir=DIR                    set build directory
  --with-rtsig_module                enable rtsig module                            #启用实时信号模块
  --with-select_module              enable select module                          #支持select机制模块
  --without-select_module            disable select module
  --with-poll_module                enable poll module
  --without-poll_module              disable poll module
  --with-file-aio                    enable file AIO support                        #支持文件的AIO机制的,重要的特性增强
  --with-ipv6                        enable IPv6 support
  --with-http_ssl_module            enable ngx_http_ssl_module                    #支持SSL功能
--with-http_flv_module            enable ngx_http_flv_module                      #支持flv流媒体
###############更多选项笔者就不在介绍了############
###############我们这里用到的选项如下##############
[root@yong nginx-1.4.2]#  ./configure \
  --prefix=/usr \
  --sbin-path=/usr/sbin/nginx \
  --conf-path=/etc/nginx/nginx.conf \
  --error-log-path=/var/log/nginx/error.log \
  --http-log-path=/var/log/nginx/access.log \
  --pid-path=/var/run/nginx/nginx.pid  \
  --lock-path=/var/lock/nginx.lock \
  --user=nginx \
  --group=nginx \
  --with-http_ssl_module \
  --with-http_flv_module \
  --with-http_stub_status_module \
  --with-http_gzip_static_module \
  --http-client-body-temp-path=/var/tmp/nginx/client/ \
  --http-proxy-temp-path=/var/tmp/nginx/proxy/ \
  --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \
  --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
  --http-scgi-temp-path=/var/tmp/nginx/scgi \
  --with-pcre
##############安装######################
[root@yong nginx-1.4.2]# make && make install

3、查看Nginx的配置文件
Nginx的配置有着几个不同的上下文:main、http、server、upstream和location(还有实现邮件服务反向代理的mail)。配置语法的格式和定义方式遵循所谓的C风格,因此支持嵌套,还有着逻辑清晰并易于创建、阅读和维护等优势。
[root@yong ~]# vim /etc/nginx/nginx.conf
#user  nobody;
worker_processes  1;              #启动多少个进程(和CPU的核心个数相关)
#error_log  logs/error.log;      #错误日志定义
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#由于我们此前编译时已经指定了错误日志位置所以这里默认注释掉了。
#pid        logs/nginx.pid;
events {
    worker_connections  1024;              #一个进程允许多少个连接进来(受限于当前用户所能够打开的最大数(ulimit –n 查看最大数))
}
#################以上这些为全局配置文件##############
http {                    #####这些为http服务相关的配置信息####
    include      mime.types;
    default_type  application/octet-stream;        #定义默认类型
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '    #日志格式
    #                  '$status $body_bytes_sent "$http_referer" '
#                  '"$http_user_agent" "$http_x_forwarded_for"';
#                  '"$http_user_agent" "$http_x_forwarded_for"';
    #access_log  logs/access.log  main;
    sendfile        on;            #支持sendfile(sendfile:提升文件传输速率)
    #tcp_nopush    on;
    #keepalive_timeout  0;
    keepalive_timeout  65;        #是否支持长连接
    #gzip  on;
    server {                      ###在nginx中至少有一个虚拟主机,它不支持中心主机
        listen      80;
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {            #匹配的是URL文件,location=…表示精确匹配
            root  html;
            index  index.html index.htm;
        }
##############下面就不再一一介绍了############

更多详情见请继续阅读下一页的精彩内容

相关阅读:

Ubuntu 13.04 安装 LAMP\Vsftpd\Webmin\phpMyAdmin 服务及设置

CentOS 5.9下编译安装LAMP(Apache 2.2.44+MySQL 5.6.10+PHP 5.4.12)

RedHat 5.4下Web服务器架构之源码构建LAMP环境及应用PHPWind

LAMP源码环境搭建WEB服务器Linux+Apache+MySQL+PHP

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/f09e4742a6adf61db8f10bb04599a025.html