Nginx实战之1.1-1.6 Nginx介绍,安装及配置文件详解

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


猜你喜欢

转载自blog.51cto.com/13578154/2300216
今日推荐