一、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
[[email protected] ~]# 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,成功
原文地址:http://blog.51cto.com/12879627/2084417