*Nginx服务
Nginx专为性能优化而开发,其最知名的优势是它的稳定性和低系统资源消耗,以及对HTTP并发链接的高处理能力,(单台物理服务器支持30000-50000个并发请求)php
安装及运行运行控制
1.编译安装Nginx
Nginx的配置及运行须要pcre,zlib等软件包的支持,html
[root@centos1 ~]# yum -y install pcre-devel zlib-devel
mysql
建立运行用户,组nginx
[root@centos1 ~]# useradd -M -s /sbin/nologin nginx
web
*编译安装Nginxsql
tar zxf /mnt/nginx-1.6.2.tar.gz -C /usr/src cd /usr/src/nginx-1.6.2 [root@centos1 nginx-1.6.2]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module [root@centos1 nginx-1.6.2]# make&&make install
为了使Nginx服务器的运行更加方便,能够为主程序Nginx建立连接文件,方便管理员直接执行“nginx”命令就能够调用nginx主程序数据库
[root@centos1 nginx-1.6.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin
vim
2.nginx的运行控制
*控制配置文件
检查控制文件是否正确centos
[root@centos1 nginx-1.6.2]# nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
*启动,中止nginx浏览器
[root@centos1 nginx-1.6.2]# nginx
检查nginx的监听端口,或经过浏览器访问
[root@centos1 nginx-1.6.2]# netstat -anpt Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
3.了解nginx的配置文件nginx.conf
在nginx服务器的主配置文件/usr/local/nginx/conf/nginx。conf,包括全局配置,i/o事件配置和HTTP配置三大块内容,配置语句的格式为‘关键字 值’(末尾以分号表示结束)以‘#’开始的部分表示注释
(1)全局配置
它包括Nginx服务的运行用户,工做进程数,错误日志,PID存放位置等等基本设置
#user nobody; //运行用户 默认为nobody worker_processes 1; //工做的进程数量,能够根据cpu核心总数来指定工做进程数 #error_log logs/error.log;//错误日志文件的位置 #pid logs/nginx.pid; //PID文件的位置
(2)I/O事件配置
使用‘events {}’ 界定标记用来指定Nginx进程的I/O响应模型,每一个进程的链接数等设置,对于2,6及以上的版本内核,建议使用epoll模型以提升性能;每一个进程的链接数应根据实际须要来定,通常在10000如下(默认为1024)
events { use epoll //使用epoll模型 worker_connections 4096;每一个进程处理4096个进程链接 }
(3)HTTP配置
使用 "http {} "界定标记用于设定http服务器,包括访问日志,HTTP端口,网页目录,默认字符集,链接保持,以及虚拟WEB主机,PHP解析等网站全局设置,其中大部分配置语句都包含在界定标记“server {}”表明一个具体的网站
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"'; //去掉前面的# access_log logs/access.log main; //去掉前面的# sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on;
四、构建基于域名的虚拟web主机
(1)准备网站目录以及测试文件
[root@centos1 nginx-1.6.2]# mkdir -p /var/www/benet [root@centos1 nginx-1.6.2]# echo "<h1>www.benet.com</h1>">/var/www/benet/index.html [root@centos1 nginx-1.6.2]# mkdir -p /var/www/accp [root@centos1 nginx-1.6.2]# echo "<h1>www.accp.com</h1>">/var/www/accp/index.html
(2)调整nginx.conf配置文件
虚拟主机配置在server{}区域中,每一个server{}区域表明一个web站点配置,指定各自网站名称、监听地址、网站根目录、访问日志等信息,而后从新加载配置(加俩段节点为 www.accp。com www.benet。com )
server { listen 80; server_name www.benet.com; charset utf-8; access_log logs/benet.access.log main; location / { root /var/www/benet; index index.html index.htm; } location /status { stub_status on; access_log off; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } server { listen 80; server_name www.accp.com; charset utf-8; access_log logs/accp.access.log main; location / { root /var/www/accp; index index.html index.htm; } location /status { stub_status on; access_log off; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
(3.从新加载
[root@centos1 nginx-1.6.2]# killall -s QUIT nginx
[root@centos1 nginx-1.6.2]# nginx
(4).测试
5、构建LNMP架构及应用部署
就像构建LAMP同样,构建LNMP平台也须要Linux服务器,Mysql数据库,PHP解析环境,区别主要在Nginx与PHP的协议配置上
(1)启用php-fpm进程
[root@centos1 vod]# useradd -M -s /sbin/nologin php
①修改php-fpm.conf配置文件修改相关参数,而后启动php-fpm进程,php-fpm默认监听本机的9000端口
#cd /usr/local/php5/etc #cp php-fpm.conf.default php-tpm.conf 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
[root@centos1 etc]# /usr/local/sbin/php-fpm
(2)配置nginx:彻底支持php解析
说明:不管使用哪种解析方式都须要server中进行配置
[root@centos1 Desktop]# vim /usr/local/nginx/conf/nginx.conf
server { listen 80; server_name vod.benet.com; charset utf-8; access_log logs/vod.access.log main; location / { root /var/www/vod; index index.html index.php; } location ~ \.php$ { //访问.php页面的配置段 root /var/www/vod; //php页面的根目录 fastcgi_pass 127.0.0.1:9000; //php-fpm监听地址 fastcgi_index index.php; //php首页名称 include fastcgi.conf; //fastcgi模块配置 } } }
[root@centos1 vod]# killall -s QUIT nginx
[root@centos1 vod]# nginx
(3)php页面访问测试
[root@centos1 vod]# mysqladmin -u root -p password '123456' #service mysqld start //启动数据库 mkdir /var/www/vod 在/var/www/vod下建立一个测试页面test.php vim /var/www/vod/test.php <?php $link=mysqli_connect('localhost','root','123456'); if ($link) echo "<h1>恭喜你,数据库链接成功</h1>"; mysqli_close($link); ?>
而后在客户机使用浏览器访问
6、LNMP平台的应用--部署天空网络电影系
1.下载并部署程序代码
[root@centos1 ~]# unzip /mnt/SKYUC_3.4.2_for_php5.3.zip -d /usr/src [root@centos1 ~]# cd /usr/src/SKYUC.v3.4.2.SOURCE/ [root@centos1 SKYUC.v3.4.2.SOURCE]# mv wwwroot/ /var/www/vod/skyuc [root@centos1 SKYUC.v3.4.2.SOURCE]# cd /var/www/vod/skyuc/ [root@centos1 skyuc]# chown -R php:php admincp/ data/ templates/ upload/
2.建立数据库
为了下降web应用程序对数据库的风险,建议设置专用的数据库以及受权用户
[root@centos1 skyuc]# mysql -u root -p mysql> create database skyucdb; mysql> grant all on skyucdb.* to runskyuc@localhost identified by 'sky@uc123';
3.安装web应用
4.访问web应用系统