Nginx网站服务

nginx介绍

在国内主要用的是nginx

在国外依然用的是apache

定义:

高性能、轻量级的web服务软件

特点;

  1. 稳定性高(没有apache稳定)
  2. 系统资源消耗低,(对处理http请求的并发能力很高,单台物理服务器可支持30000~50000个并发请求)

一般在企业中为了保持服务器稳定,并发量一般在20000个左右,占用内存大概在2M左右,加上keep-alive 大概在3M左右

nginx主要功能

1、静态文件服务,nginx可以直接提供静态服务,例如 HTML、CSS、JavaScript、图像等,它能够高效地处理并响应静态文件的请求

2、反向代理:Nginx 可以作为反向代理服务器,将客户端的请求转发给后端的多个服务器,可以实现负载均衡、高可用性和故障转移,提供更好的性能和可靠性

Nginx网站服务_第1张图片

反向代理的核心:客户端在请求时通过代理服务器,会把请求的的流量按照轮询算法转发到后台不同的服务器,实现负载均衡和高可用

3、处理动态内容:nginx处理动态内容能力很差,例如:PHP-FPM、Node.js、Java 、python应用服务器等,需要配合以上的来配合使用,它可以代理请求,发送到后端的动态服务器,动态服务器处理完之后,nginx来吧动态请求相应给后端

4、实现SSL/TLS 加密支持:Nginx 支持通过 SSL/TLS 对客户端和服务器之间的通信进行加密,HTTPS的加密方式,数字证书的验证机制

5、虚拟主机:Nginx 支持配置多个虚拟主机,使得可以在同一台服务器上托管多个域名或站点,每个虚拟主机可以拥有独立的配置和资源

6、URL 重写和重定向,Nginx 支持灵活的 URL 重写和重定向规则,可以对请求的 URL 进行修改和重定向,实现 URL 的美化和重定向策略

7.缓存功能:nginx自带缓存功能,get请求才能获取缓存,get 请求才能获取缓存,get web 服务器的内容

Nginx网站服务_第2张图片

8、日志功能:Nginx 能够记录访问日志和错误日志,可以记录请求的详细信息,包括访问时间、请求路径、IP、响应状态等,帮助进行故障排查和性能分析。

系统日志记录在/var/log/messages,职业日志access.log和error.log

access:记录的是谁访问我了,都是访问成功的日志记录,

error : 也记录了谁访问了我,但记录的是访问失败的记录

nginx 应用场景

1、静态服务器 (图片、视频服务、文本)

2、动态服务

3、反向代理,负载均衡

4、缓存服务
 

系统识别nginx的操作命令:

nginx -t:检查配置文件是否配置正确

nginx -v : 查看nginx的版本号

nginx -s : 向主进程传输的信号:停止、开启、重启、重新加载

nginx -c : 设置配置文件的默认路径

常用的信号符

信号符结合kill命令

只要是“kill”后面只能跟PID号

kill -USR1 :日志分隔,

kill -s HUP : 重新加载(或者:killall -s HUP nginx   可以跟服务名也可以用PID号)

kill -s QUIT : 优雅推出: 有人访问时,不会结束进程,访问完了才会结束进程

kill -s WINCH  :优雅的结束,worker 直到请求完成才会结束worker

安装 nginx服务

安装依赖包
yum -y install gcc pcre-devel openssl-devel zlib-devel openssl  openssl-devel

3、创建运行用户、组

useradd -M -s /sbin/nologin nginx

编译安装Nginx
cd /opt
tar zxvf nginx-1.22.0.tar.gz -C /opt/

Nginx网站服务_第3张图片

 加载安装包

Nginx网站服务_第4张图片

 安装Nginx网站服务_第5张图片

 服务安装完成后四个文件的功能:

1、conf:保存nginx所有的配置文件,其中nginx.conf是nginx服务器的最核心最主要的配置文件

2、html: 保存了nginx服务器的web文件,但是可以更改为其他目录保存web文件

3、logs:用来保存nginx服务器的访问日志错误日志等日志,logs目录可以放在其他路径,比如/var/logs/nginx里面。

4、sbin:保存nginx二进制启动脚本,可以接受不同的参数以实现不同的功能

Nginx网站服务_第6张图片

 默认配置文件做备份

Nginx网站服务_第7张图片

 50x.html : html是nginx默认的错误页面的内容

 logs: 保存日志文件的位置

 Nginx网站服务_第8张图片

[Unit] 部分描述了单元的用途,以及文档的位置。
它还规定了在 Nginx 启动前需要启动的服务的依赖关系和顺序。

[Service] 部分包含了 Nginx 服务的配置,包括服务类型(在这种情况下是 forking)、PID 文件的位置
以及启动、重新加载和停止服务的命令。

最后,[Install] 部分指定了服务安装的目标。
ExecReload=/bin/kill -s HUP $MAINPID  #相当与restart
ExecStop=/bin/kill -s TERM $MAINPID   #相当与stop

Nginx网站服务_第9张图片

Nginx网站服务_第10张图片

 Nginx网站服务_第11张图片

 重启加载

 访问成功Nginx网站服务_第12张图片

 修改vim nginx.conf内容

Nginx网站服务_第13张图片

 Linux系统最大打开文件数Nginx网站服务_第14张图片

 nginx配置文件nginx.conf

全局配置的六个模块简介:
全局块:全局配置,对全局生效;

stream : 四层走的是tcp或则udp流量,不能写在http当中需要写在全局当中
events块:配置影响 Nginx 服务器与用户的网络连接;

http块:配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置;配置代理、缓存,虚拟机,反向代理,只能是http的请求才可以写http模块中

    upstream : 反向代理,指定服务器名命令,七层基于IP和端口,http协议只能在http模块中

   

server块:包含在http模块中,不能单独设置,配置虚拟主机的相关参数,一个 http 块中可以有多个 server 块;

location块:用于配置匹配的 uri ;包含在server当中,也不能单独设置

      proxy 模块是 Nginx 的核心模块之一,用于实现反向代理功能。在location中,它允许将客户端的请求代理到后端的服务器,并将响应返回给客户端。proxy 模块支持 HTTP、HTTPS、FastCGI、uWSGI、SCGI 等多种协议。通过配置 proxy_pass 指令,可以指定代理的后端服务器地址。

nginx是通过alias设置虚拟目录,在nginx的配置中,alias目录和root目录是有区别的

location常见配置指令,root、alias、proxy_pass(反向代理配置)

1、root 作为拼接,root指定的目录和location匹配的URI之间做的一个拼接,例如/opt/ky30/这两个路径都真实存在,而且都是目录;并且在URI目录里要有web文件

2、alias; 匹配指定路径下的指定目录

root标签可以使用重定向

alias不可以设置重定向

其他区别:
1、 alias 只能作用在location中,而root可以存在server、http和location中。
2、 alias 后面必须要用 “/” 结束,否则会找不到文件,而 root 则对 ”/” 可有可无。

面试题

Nginx 是如何实现高并发的?

1.nginx自身代码的问题,大量的底层代码进行优化,同时自带了一个功能模块,“ epoll ”模块支持高并发

2、nginx也是一个master进程控制多个work进程master负责收集和分发请求,work是实际执行者,每一个请求进来,master就拉起一个worker进程负责处理这个请求。同时master进程也负责监控woker的状态,保证高可靠性woker进程一般设置为跟cpu核心数一致或则两倍,work处理请求过程中只受内存大小的限制,所以可以处理多个请求,再加上nginx本身就是轻量级的服务,处理请求是占用的内存,本身就少,所以可以起到大并发处理的能力,

实验

1访问状态统计 

Nginx网站服务_第15张图片修改 nginx.conf 配置文件,指定访问位置并添加 stub_status 配置

Nginx网站服务_第16张图片

 重启服务

 网页测试

Nginx网站服务_第17张图片

 2基于用户名和密码的访问控制

生成用户密码认证文件
yum install -y httpd-tools  ----httpasswd是工具,要先安装

Nginx网站服务_第18张图片

 更改属主,修改权限

 添加认证配置文件

Nginx网站服务_第19张图片

 测试,需要优化Nginx网站服务_第20张图片

 基于IP地址访问

拒绝访问 

Nginx网站服务_第21张图片刷新

你可能感兴趣的:(nginx,运维)