1.1 Nginx介绍
HTTP协议发展简史 加粗
https://coding.net/u/aminglinux/p/nginx/git/blob/master/http/version.md
1991年发布0.9版,只有GET方法,仅支持html,一个连接一个请求
1996年5月发布1.0版本,GET/POST/HEAD,HTTP Header,支持多种文件类型,一个连接一个请求
1997年1月发布1.1版本,更多方法(DELETE/PUT),一个连接多个请求,虚拟主机等
2015年发布HTTP/2版本,二进制协议,多工,数据流,头信息压缩和索引,服务器推送
HTTP协议相关概念 加粗
https://coding.net/u/aminglinux/p/nginx/git/blob/master/http/http.md
Request,Response,状态码,请求方法
HTTP工作原理
URI,URL
Nginx介绍
加粗常见WebServer(排行https://news.netcraft.com/archives/2018/, https://w3techs.com/technologies/overview/web_server/all )
老牌:Httpd(早期叫Apache) ,开源,市场份额最高
微软:IIS
轻量:Lighttpd,性能高,低耗能,功能欠缺
加粗 Nginx诞生
2004年10月发布,俄国人Igor Sysoev开发,rambler.ru
加粗 Nginx官网、版本
nginx.org 1.14.0稳定版
国内分支Tengine(http://tengine.taobao.org/)
加粗 Nginx功能介绍
Http服务、反向代理、负载均衡、邮件代理、缓存加速、SSL、flv/mp4流媒体
1.2 Nginx安装(yum)
vi /etc/yum.repos.d/nginx.repo
https://coding.net/u/aminglinux/p/nginx/git/blob/master/2z/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
yum install -y nginx
systemctl start/stop/restart/reload nginx
加粗 测试:浏览器访问或者curl访问
检查服务进程:ps aux |grep nginx
检查端口监听:netstat -lnp |grep ‘:80’
有防火墙,需加规则iptables -I INPUT -p tcp --dport 80 -j ACCEPT
加粗 nginx -V查看版本以及各个目录、参数
1.3 源码包安装
cd /usr/local/src
wget http://nginx.org/download/nginx-1.14.0.tar.gz
tar zxf nginx-1.14.0.tar.gz
cd nginx-1.14.0; ./configure --prefix=/usr/local/nginx
make && make install
加粗 服务启动,关闭,加载等命令
/usr/local/nginx/sbin/nginx //启动
pkill nginx //杀死nginx进程,停止nginx服务
killall nginx //效果是一样的
killall的安装包如下:
# rpm -qf `which killall`
psmisc-22.20-15.el7.x86_64
/usr/local/nginx/sbin/nginx -t //检测配置文件语法错误
/usr/local/nginx/sbin/nginx -s reload//重载配置
欢迎页面加载信息修改
# vim /usr/local/nginx/html/index.html
加粗 服务管理脚本
脚本内容:https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/etc_init.d_nginx
操作方法:
vim /etc/init.d/nginx
将脚本内容复制如下
#!/bin/bash
# chkconfig: - 30 21
# description: http service.
# Source Function Library
. /etc/init.d/functions
# Nginx Settings
NGINX_SBIN="/usr/local/nginx/sbin/nginx"
NGINX_CONF="/usr/local/nginx/conf/nginx.conf"
NGINX_PID="/usr/local/nginx/logs/nginx.pid"
RETVAL=0
prog="Nginx"
start()
{
echo -n $"Starting $prog: "
mkdir -p /dev/shm/nginx_temp
daemon $NGINX_SBIN -c $NGINX_CONF
RETVAL=$?
echo
return $RETVAL
}
stop()
{
echo -n $"Stopping $prog: "
killproc -p $NGINX_PID $NGINX_SBIN -TERM
rm -rf /dev/shm/nginx_temp
RETVAL=$?
echo
return $RETVAL
}
reload()
{
echo -n $"Reloading $prog: "
killproc -p $NGINX_PID $NGINX_SBIN -HUP
RETVAL=$?
echo
return $RETVAL
}
restart()
{
stop
start
}
configtest()
{
$NGINX_SBIN -c $NGINX_CONF -t
return 0
}
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
restart
;;
configtest)
configtest
;;
*)
echo $"Usage: $0 {start|stop|reload|restart|configtest}"
RETVAL=1
esac
exit $RETVAL
赋予755权限
chmod 755 !$
以后启动,关闭nginx的命令就是:
/etc/init.d/nginx start
/etc/init.d/nginx stop
开机启动自动nginx
chkconfig --add nginx
chkconfig nginx on
1.4 nginx配置文件详解1
Nginx配置文件
位置:
yum安装: /etc/nginx/nginx.conf
源码包编译: /usr/local/nginx/conf/nginx.conf
配置文件结构
配置文件内容
全局配置(user、worker_processes、error_log、pid)
events(网络连接相关,worker_connections)
http(最重要的部分,大部分功能都放这里)
server(虚拟主机相关)
location(server里面)
解释:
全局配置项结构
https://coding.net/u/aminglinux/p/nginx/git/blob/master/3z/global.md
events配置项结构
https://coding.net/u/aminglinux/p/nginx/git/blob/master/3z/events.md
http配置项
https://coding.net/u/aminglinux/p/nginx/git/blob/master/3z/http.md
server配置项
https://coding.net/u/aminglinux/p/nginx/git/blob/master/3z/server.md