一、Nginx服务基础 Nginx专为性能优化开发,其最知名的优点是他的稳定性和低系统资源消耗,以及对HTTP并发链接的高处理能力。 1.安装pcre.zlib开发包,以便提供相应的库和头文件 yum -y install pcre-devel zlib-devel 2.创建运行用户、组 useradd -M -s /sbin/nologin nginx #nginx默认以nobody身份运行,建议为其创建专门的用户账号,不建立主文件夹,禁止登录到shell环境 3.编译安装Nginx [root@nginx ~]# tar zxf nginx-1.13.7.tar.gz -C /usr/src ./configure --help 查看具体配置选项,根据实际情况制定 因为更改了系统的日期和时间,从而导致了系统当前时间和内核系统时间的不一致 把内核时间更新到当前时间 hwclock --hctosys 解决 4.创建软连接,方便使用 ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin 5.Nginx的运行控制 nginx -t #检查配置文件是否正确 可以添加-c选项,检查其他配置文件 nginx #启动服务 测试连接成功 killall -s HUP nginx #重启nginx服务 killall -s QUIT nginx #停止nginx服务 当nginx运行时,PID号存放在logs/目录下的nginx.pid文件中,也可以通过PID进程号进行控制 编写shell脚本配合chkconfig,service进行控制 这样就可以使用脚本启动停止重启重载nginx服务器了 二、配置文件nginx.conf nginx.conf文件包含三部分配置,分别是全局配置、I/O事件配置和HTTP配置 1.全局配置 #user nobody; //运行用户 默认为nobody,在配置时已经指定用户 worker_processes 1; //工作的进程数量,可以根据cpu核心总数来指定工作进程数 #error_log logs/error.log;//错误日志文件的位置 #pid logs/nginx.pid; //PID文件的位置 2.I/O事件配置 events { use epoll //使用epoll模型 worker_connections 4096;每个进程处理4096个进程连接,一般在10000以下 } nginx服务提供的连接数为 工作的进程数 乘以 每个进程提供的连接数 3.HTTP配置,用于完成web站点的设置 3.1开启状态统计测试 查看配置文件是否正确 nginx -t 测试 active connections表示当前的活动连接数 server accepts handled requests 表示已处理的连接数,成功的tcp握手次数,已处理的请求数
三、配置基于域名的虚拟主机
修改配置文件中的server,一组server代表一个网站
1.创建网站目录及首页文件
2.修改配置文件nginx.conf
3.重载nginx服务测试
四、构建LNMP架构及应用部署
1.安装MySQL,参考http://blog.51cto.com/12879627/2060579
2.安装PHP
php已经自带FPM(fastCGI Process Manager FastCGI进程管理器)模块,用来对php解析实例进行管理、优化解析效率。需要启用--enable-fpm以启用此模块。
1)编译安装
yum -y install gd libxml2-devel libjpeg-devel libpng-devel
tar zxf php-5.3.28.tar.gz -C /usr/src
cd /usr/src/php-5.3.28/
./configure --prefix=/usr/local/php5 --with-gd --with-zlib --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php5 --enable-mbstring --enable-fpm --with-jpeg-dir=/usr/lib
make&&make install
--prefix :指定安装目录
--with-gd --with-zlib :打开zlib库的支持 打开gd库的支持
--with-mysql=/usr/local/mysql :mysql安装目录,对mysql的支持
--with-config-file-path=/usr/local/php5 :指定php.ini位置
--enable-mbstring :多字节,字符串的支持
--enable-fpm :CGI方式安装才用的参数,打上PHP-fpm 补丁后才有这个参数,CGI方式安装的启动程序
-with-jpeg-dir=/usr/lib :打开对jpeg图片的支持
可以./configure --help 查询选项
2)调整配置文件,及优化使用
复制模板,创建主配置文件
创建软连接,方便使用
3)安装zend guard loader
r用优化代码的方法来提高PHP应用程序的执行速度。实现的原理是对那些在被最终执行之前由运行编译器(Run-Time Compiler)产生的代码进行优化。一般情况下,执行使用Zend的PHP程序比不使用的要快40%到100%
复制解压后的模块
修改php.ini文件,增加以下几项
配置出错 Failed loading /usr/local/php5/lib/php/ZendGuardLoader.so: /usr/local/php5/lib/php/ZendGuardLoader.so: wrong ELF class: ELFCLASS32 以上错误的原因是64位系统用了32位的ZendGuardLoader.so,更换安装包后 解决,版本需与之匹配
3.配置nginx支持php环境
有两种让nginx支持php的方法
充当中介,将访问php页面的web请求转交给其他的服务器(lamp)去处理 通过使用php的FPM模块来调用本机的php环境 1)启用php-fpm模块 创建php-fpm程序用户 修改php-fpm.conf配置文件修改相关参数,然后启动php-fpm进程,php-fpm默认监听本机的9000端口 pid = run/php-fpm.pid //确认pid文件的位置 user = php //运行用户 group = php //运行组 pm.start_servers = 20 //启动时开启的进程数 pm.min_spare_servers = 5 //最小空闲进程数 pm.max_spare_servers = 35 //最大空闲进程数 pm.max_children = 50 //最大子进程数 可以直接运行php-fpm启动,默认端口9000,也可以写入nginx服务脚本 添加箭头指示的,可以随着nginx启动 2)修改nginx配置文件,支持PHP网页访问 3)测试访问 file not find 思路:查看在服务器本地访问,也不行,查看服务端口,正常,那就是nginx连接PHP出错了,修改nginx.conf 重启nginx,成功