Nginx服务详解(第二部分:Nginx的主配置文件)

一、web服务器
一般提到web服务器,就是指httpd或Nginx服务。

httpd就是Apache,在国内用的较少。

Nginx在国内使用的比较广泛。

1.1 Nginx
Nginx是开源的,是一款高性能,轻量级的web服务软件。

Nginx稳定性高,而且版本迭代比较快。目前主流的是22、24版本。修复bug比较快,安全性好。

Nginx消耗系统资源很低。http的请求并发连接,单台服务器可以支持30000-50000个并发请求(系统资源全部分配给Nginx使用的情况下)。单个节点的Nginx分配的资源一般支持10000-20000个并发。
 

1.2 Nginx的功能
Nginx的功能介绍

1、 静态文件服务 :静态页面,可以直接提供静态文件服务,html css jsp等。处理静态页面的响应速度很快,效率很高。
2、代理功能 :正向代理,反向代理。可以实现负载均衡,高可用和故障转移。

3动态内容处理 :Nginx并不能直接处理动态请求,可以通过中间件(如php Tomcat)把动态请求转发给后端服务器。
4、支持http和https。
5、可以实现重定向。6、虚拟主机 :一个Nginx可以配置多个域名和站点。
7、Nginx自带缓存机制。
8、性能可扩展 :处理能力可以随时调整。
 

Nginx的应用场景

  1. 静态页面
  2. 转发动态请求
  3. 反向代理、负载均衡
  4. 缓存服务

1.3 Nginx的常用命令
nginx -t :检测配置文件的语法是否正确

nginx -v :显示Nginx的版本

nginx -V :显示Nginx的版本和配置项

nginx -s :signal,信号:

stop :关闭Nginx
reload :重新加载Nginx,如果更改了配置文件,nginx -s reload 无需重启服务
 

二、Nginx的配置

nginx.conf配置文件,在/usr/local/nginx/conf/目录下修改这个配置文件

2.1 全局模块

工作进程组,一般设置为系统内核数量的两倍,但一般不超过8个,超过8个性能反而会下降

events模块 :决定了Nginx能够处理的连接数,连接数和worker_processes的数值相乘。

处理进程的过程必然涉及配置文件和展示以页面,也就是涉及打开文件的数量。Linux默认打开的文件数就是1024个。如果不修改Linux打开文件数量的默认配置,那这里设置的再高也无效。修改默认打开文件数的方法如下:

这个配置要生效,只能重启系统,所以这是系统初始化时要做好的配置。
 

2.2 http 模块
http模块 :转发和处理http请求,设置代理(正向代理和反向代理),缓存,定义日志格式,重定向配置。
在http模块当中,包含:
server模块 :http模块里面可以有多个server模块
在server模块中包含:
location模块
在server模块当中可以有多个location模块
 

2.3 server模块

server模块包含location模块,可以包含多个location模块

server模块内容的解释:

2.4 location模块

location模块:配置打开网页匹配的工作目录的地址支持打开页面的文件类型

root 表示 Nginx工作目录的家目录,默认从Nginx的根目录(安装路径)/usr/local/nginx出发;

所以root html;就表示工作目录的家目录为Nginx根目录下的html;

location 后面跟的路径表示URL的匹配规则,上文中后面跟的是 /,表示对访问家目录(工作目录)下的所有请求进行处理,不指定URI时(比如访问20.0.0.10,而不是20.0.0.10/test1),默认返回html 下的index.html

location 后面跟的路径不是/时,比如:
 

此时定义工作目录的家目录为 /var/www/html

location /ykw表示可以对家目录下的ykw这个目录进行匹配,如IP地址为20.0.0.10

就会返回/var/www/html/ykw这个目录下的index.html ,如果这个目录下没有可返回的文件,Nginx会返回状态码404

此外,alias也可以指定家目录,指定的模式和root略有区别:

root的匹配模式,拼接root后的路径和location后的路径
alias的匹配模式,匹配Nginx的工作目录,路径是绝对路径
alias只能写在http模块当中server模块的location模块当中
root可以写在server模块,也可以在http,也可以在location中
alias匹配工作目录,不能使用重定向功能
 

三、实验

3.1 实验一:统计Nginx访问状态

三个数子从左到右:已经处理的连接数,成功的tcp握手次数(连接数),已经处理的请求数

reading :表示服务端正在从客户端读取请求的数据

writing :表示服务端正在将响应数据发送给客户端

waiting :表示有连接处于空闲状态,等待新的请求

3.2 实验二:对访问进行控制
  1. 基于密码的授权进行访问控制

    2、基于客户端的访问控制,根据IP地址进行控制

  3、基于域名的访问控制

编辑默认访问页面

在另一台主机test2 20.0.0.20/etc/hosts文件中作dns映射

test2上操作

基于IP地址的访问控制

创建虚拟主机

以3中的server为例,修改server模块中listen 后面为 IP地址:端口

test2上操作

5、 基于端口的访问控制

修改server模块中listen 后面的端口号,同一个IP地址可以对多个端口提供服务

test2上操作

3.3 独立文件配置server模块

把server模块的配置保存在单独的文件中

被识别到的conf文件里只写有server模块的配置,被nginx.conf识别到以后,会自动调用nginx.conf文件中的http模块的配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值