nginx基本概念:
1、nginx是什么,做什么事情
2、反向代理
3、负载均衡
4、动静分离
nginx安装:
一、安装gcc:编译c语言程序
yum install -y gcc
yum install -y gcc-c++
二、安装pcre库:支持rewrite模块
PCRE(Perl Compatible Regular Expressions,Perl兼容正则表达式)是由Philip Hazel开发的函数库,目前为很多软件所使用,该库支持正则表达式。Nginx的HTTP模块要靠它来解析正则表达式。
pcre-devel是使用PCRE做二次开发时所需要的开发库,包括头文件等,这也是编译Nginx所必须使用的。
yum install -y pcre pcre-devel
三、安装zlib库:支持gzip模块
zlib库用于对HTTP包的内容做gzip格式的压缩,如果我们在nginx.conf里配置了gzip on,并指定对于某些类型(content-type)的HTTP响应使用gzip来进行压缩以减少网络传输量,那么,在编译时就必须把zlib编译进Nginx。
同理,zlib是直接使用的库,zlib-devel是二次开发所需要的库
其yum安装方式如下:
yum install -y zlib zlib-devel
四、安装Openssl库:支持ssl模块
如果服务器需要在安全的SSL协议上传输HTTP,或者使用MD5、SHA1等散列函数,需要安装该模块。
yum install -y openssl openssl-devel
五、安装nginx,将下载的nginx压缩包传送到Linux内,
解压安装包:tar -zxvf nginx-1.16.1.tar.gz
切换进解压后的文件夹内执行命令:./configure make make install
六、启动nginx
cd /usr/local/nginx
./sbin/nginx
七、防火墙
查看防火墙开放的端口:firewall-cmd --list-all
设置开放的端口号:
firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-port=80/tcp --permanent
重启防火墙
firewall-cmd --reload
上述操作修改完成之后可以在物理机访问到nginx
nginx操作的常用命令
1、使用nginx操作命令前提条件:必须进入nginx的目录
/usr/local/nginx/sbin
2、查看nginx的版本号
./nginx -v
3、启动nginx
./nginx
4、关闭nginx
./nginx -s stop
5、重新加载nginx
./nginx -s reload
nginx的配置文件
位置:/usr/local/nginx/conf
nginx配置文件组成
第一部分:全局块
从配置文件开始到events块之间的内容,主要会设置一些影响nginx服务器整体运行的配置指令,主要包括配置运行nginx服务器的用户、允许生成的worker process数、进程pid存放路径、日志存放路径和类型以及配置文件的引入等
worker process值越大,可以支持的并发处理量也越多
第二部分:events
events块涉及的指令主要影响Nginx服务器与用户的网络连接,常用的设置包括是否开启对多worker process下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个worker process可以同时支持的最大连接数
上述例子就表示每个worker process支持的最大连接数时 1024
这部分的配置对Nginx的性能影响较大,在实际中应该灵活配置
第三部分:http块
Nginx服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。
需要注意的是:http块也可以包括http全局块、server块
http块:
http全局配置的指令包含文件引入、MIME-TYPE定义、日志自定义、连接超时时间、但链接请求数上限等
server块
这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本
每个http块可以包括多个server块,而每个server块就相当于一个虚拟主机
而每个server块也分为全局server块,以及可以同时包含多个location块
a、全局server块
最常见的配置是本虚拟机主机的监听配置和本虚拟主机的名称或IP配置
b、location块
一个server块可以配置多个location块
这块的主要作用就是基于Nginx服务器接收到的请求字符串,对虚拟主机名称之外的字符串进行匹配,对待定的请求进行处理。地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行