1、常用的web后台软件
apache :功能模块多,负载量大,并发处理效率差。
nginx :功能模块较少,部分功能需要外挂模块,并发处理效率高。
tomcat :处理动态网站页面,js脚本效率比较高。
2、安装部署nginx
1.安装依赖环境
yum -y install pcre-devel zlib-devel
2.解压nginx
tar -zxvf nginx-1.12.0.tar.gz -C /usr/src
cd /usr/src/nginx-1.12.0/
3.配置安装选项
useradd -M -s /sbin/nologin nginx
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
make && make install
4.优化命令路径
ln -s /usr/local/nginx/sbin/* /usr/local/sbin
5.启动和关闭nginx
启动服务:
nginx
关闭服务:
killall -s HUP nginx 重载
killall -s QUIT nginx 停止
6.创建服务管理脚本
vim /etc/rc.d/init.d/nginx
添加:
#!/bin/bash
#chkconfig: 35 85 21
case $1 in
start)
nginx
;;
reload)
killall -s HUP nginx
;;
stop)
killall -s QUIT nginx
;;
restart)
$0 stop
$0 start
;;
*)
echo "start | reload | stop | restart"
;;
esac
chmod a+x /etc/rc.d/init.d/nginx
7.将服务管理脚本添加到服务管理器
chkconfig --add nginx
chkconfig nginx on
3、nginx的配置选项
1.全局配置
#user nobody; #运行子进程的用户
worker_processes 1; #运行进程的cpu数量,多核的cpu,每个核心当做一块cpu。数量越高,处理并发量越大。
#error_log logs/error.log info; #错误日志,当nginx服务出现错误信息时,会写日志。
#pid logs/nginx.pid; #进程ID管理文件
I/O输入输出事件管理:
events { #工作模式
use epoll; #启用epoll运算,多路复用I/O模式,linux2.6以上版本内核支持,增加nginx的性能。通过epoll运算获取访问请求头部信息,对请求进行分类,一次运算多次输出。
worker_connections 10240; #后台并发链接数,计算方式:worker_processes数量*worker_connections数量=总并发链接数。
}
2.http协议配置
http {
include mime.types; #nginx支持的文件类型
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; #增加文件传输的效率,如果使用nginx构建的站点是文件传输类站点,将此项设置为off,用于平衡文件传输和网络流量的速度,减少数据丢包率。
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65; #保持会话超时时间,0表示不保持会话。
#gzip on; #启用文件传输压缩功能
}
3.站点配置信息
站点配置是写在http的协议配置中的。
http {
server { #虚拟主机配置
listen 80; #监听端口号
server_name localhost; #虚拟主机名称,域名
#charset koi8-r; #支持的字符集
#access_log logs/host.access.log main; #日志文件
location / { #站点目录选项
root html; #站点文档根目录路径
index index.html index.htm; #主页文件
}
}
}
4.创建测试页面
mkdir -p /myweb/guiguedu
vim /myweb/guiguedu/index.html
vim /usr/local/nginx/conf/nginx.conf
修改:
location / {
root /myweb/guiguedu;
index index.html index.htm;
}
第10.2章 nginx构建虚拟主机
1、虚拟主机的部署
1.部署不同IP的虚拟主机
vim /usr/local/nginx/conf/nginx.conf
修改:http协议配置中的日志格式
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
添加:
server {
listen 192.168.10.3:80;
server_name localhost;
charset utf8;
access_log logs/guiguedu.cn.access.log main;
location / {
root /myweb/guiguedu;
index index.html index.htm;
}
}
server {
listen 192.168.10.4:80;
server_name localhost;
charset utf8;
access_log logs/sohu.com.access.log main;
location / {
root /myweb/sohu;
index index.html index.htm;
}
}
创建文档目录:
mkdir -p /myweb/{guigued,sohu}
echo "<h1>www.guiguedu.cn</h1>" > /myweb/guiguedu/index.html
echo "<h1>www.sohu.com</h1>" > /myweb/sohu/index.html
启动服务
nginx
2.相同IP地址,不同端口号
修改:
server {
listen 192.168.10.3:2000;
......
}
server {
listen 192.168.10.3:3000;
......
}
重启服务
systemctl start nginx
查看端口号
netstat -anpt |grep nginx
3.相同IP,相同端口号,不同主机头
修改:
server {
listen 192.168.10.3:80;
server_name www.guiguedu.cn;
....
}
server {
listen 192.168.10.3:80;
server_name www.sohu.com;
....
}
修改named服务,配置两个域名的主机IP地址。
清除客户端的dns缓存
ipconfig /flushdns
2、LNMP部署
apache服务可以通过内核进程调用PHP,nginx的内核进程比较简单,不支持PHP的调用。安装PHP时,需要安装PHP的进程php-fpm,nginx将php的访问请求发送给php-fpm进程,由此进程处理。
1.安装nginx(略)
2.安装php
yum -y install xz-devel libxml2-devel libjpeg-devel zlib-devel libpng-devel.x86_64
tar -zxvf php-5.5.38.tar.gz -C /usr/src/
cd /usr/src/php-5.5.38/
./configure --prefix=/usr/local/php --with-mcrypt --with-gd --with-zlib --with-mysql --with-mysqli --with-config-file-path=/usr/local/php --enable-mbstring --enable-fpm --enable-sockets --with-jpeg-dir=/usr/lib
选项说明:
--prefix=/usr/local/php \ #指定安装路径
--with-mcrypt \ #加密算法
--with-gd \ #指定绘图工具
--with-zlib \ #zlib运行环境
--with-mysql \ #mysql支持
--with-mysqli \ #mysql扩展语句支持
--with-config-file-path=/usr/local/php \ #配置文件路径
--enable-mbstring \ #字符串编码转换算法
--enable-fpm \ #启用php进程
--enable-sockets \ #启用外部接口
--with-jpeg-dir=/usr/lib #图片工具目录
编译安装:
make && make install
优化路径:
ln -s /usr/local/php/sbin/* /usr/local/sbin
ln -s /usr/local/php/bin/* /usr/local/bin
在nginx中配置管理php-fpm进程:
vim /usr/local/nginx/conf/nginx.conf
修改:
server{
.....
location ~ \.php$ { #指定以.php结尾的文件
root html; #站点文件路径
fastcgi_pass 127.0.0.1:9000; #通过内部软件接口转发给php-fpm服务
fastcgi_index index.php; #主页文件名
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; #调用进程模块
include fastcgi.conf; #加载子配置文件
}
}
创建测试页面文件:
vim /usr/local/nginx/html/index.php
添加:
<?php
$link=mysqli_connect('localhost','root','123.com');
if($link) echo "恭喜你,数据库连接成功啦!!";
?>
3.安装数据库