二、nginx网站服务1

发布于:2024-12-07 ⋅ 阅读:(107) ⋅ 点赞:(0)

nginx特点

1、高并发,轻量级的web服务软件

2、稳定性高,系统资源消耗率低

对http的高并发处理能力高,单台物理服务器可以支持30000-50000个并非。

一般来说在工作中,单台的并非一般控制在20000左右。

nginx的功能

1、主要功能就是处理静态页面,文本、图片等等。

2、动态内容处理能力较差,一般是把动态的请求转发到中间件(PHP,Python)转发到后端。

3、正向代理和反向代理

正向代理:通过一个代理地址,访问其他的web页面,客户是知道通过代理服务器访问的目标地址。

反向代理:我们也是通过代理地址访问,但是客户端并不知道流量转发带哪一台后端服务器。流量转发是根据算法把流量转发到后台服务器。(反向代理===负载均衡)

4、支持ssl/tls加密,支持https协议

5、支持虚拟主机,在一个nginx的配置当中,可以做多个域名。

6、nginx自带缓存机制,但只能缓存静态文件。

7、自带日志记录,但是nginx没有日志分割功能。记录的是nginx自己的业务日志,如果是程序启动、停止或者程序出错的日志包含在内。

同步和异步

同步:

在互联网中,处理请求的方式,一个服务完成需要其他服务作为依赖时,只有等待被依赖的服务完

整后,才算完成。是一个可靠的序列,要么都成功要么失败。

同步需要服务的状态需要严谨的保持一致。

异步(nginx):

一个服务的完成还是需要依赖其他的服务,只是通知其他依赖服务开始执行,不需要等待依赖服务

的执行结果,被依赖服务执行结果也无法确定。是一个不可靠序列。

nginx快的原因,是因为使用异步的处理方式。

阻塞和非阻塞

阻塞(挂起):在调用结果返回之前,当前的线程会被挂起,一直等到返回结果,在这个期间是不能够执行其他任务。

非阻塞:不需要等待调用的结果,不能立刻得到结果,也不会阻塞当前的线程,而是立刻返回。

nginx的工作方式:异步非阻塞

nginx配置文件

conf:保存所有nginx配置的文件,其中nginx.conf是nginx主核心配置文件,其他的.conf文件主要是nginx的相关功能。

logs:存放nginx日志的目录,access.log记录访问nginx的日志,error记录访问失败的日志(启动失败、配置文件有错)。

sbin:nginx的二进制启动的脚本,一般动用系统控制的命令。

html:保存的是nginx访问的web页面,这个目录可以修改,文件名一般都是index.html

nginx基础命令

nginx   -t:检测我们配置文件语法是否正确

nginx  -v:显示nginx版本

nginx   -s   stop  / strat  / restart   /  reload:信号,传递一个信号内核处理

nginx主配置文件详解

主配置文件:/usr/local/nginx/conf/nginx.conf

全局模块:对全局生效

events:配置nginx服务器的并非处理数

http————server————location

http:配置代理,缓存,日志以及第三方模块(自定义对http请求进行处理)

server:配置虚拟主机的参数,一个http里面可以有多个server

location:用来匹配uri(一个网站的分网页),一个server里面可以匹配多个location

  • nginx处理文件的能力,即同时处理总的并发数=内核数(worker_processes)*子进程处理并发数(worker_connections )

系统限制文件配额的配置文件

如果想要修改worker_connections,超过1024,就要修改系统限制文件配额的配置文件。

* soft nproc 65535 
* hard nproc 65535 
* soft nofile 65535 
* hard nofile 65535

location匹配的语法root和alias

root:拼接,工作路径和uri合并

location匹配的是 /mnt/www/html/test/index.html文件

如果我们在index.html文件里echo 123,则网页显示的内容就是123。

  • 如果没有test这个目录,会报404错误,表示uri匹配不到test这个目录。
  • 如果没有index.html(能够被识别的)这个文件,会报403错误,表示没有可供访问的文件。

alias:绝对路径,工作路径必须要包含匹配的uri

补充:403错误的情况

1、没有可供访问的文件;2、主机的IP被别人beny掉了;3、真的没有权限。

统计nginx的访问状态

如我们添加一个location来统计nginx的访问状态次数,具体操作如下,这时候我们访问nginx的时候,会统计我们的访问状态。

Active connections: 1    # 表示当前活动的连接数
server accepts handled requests:表示已经处理的连接信息包含以下三个数字
          3                                            3                                       3
已经处理的连接数               成功tcp握手的次数              已经处理的请求数
Reading: 0 :表示服务器正从客户端的请求中读取数据
Writing: 1:服务器正在讲响应数据发送给客户端
Waiting: 0 :表示有连接处于空闲状态,可以处理新的请求

基于授权的访问控制

1、基于账号授权的访问控制

首先安装软件:apt -y install apache2

用htpasswd给/nginx/目录下,创建一个以.db结尾的加密文件,并添加自己主机的账户,添加好访

问nginx页面的登录密码。把这个文件权限所有者改成nginx,并赋予400权限,表示只有所有者才

能读。

修改nginx主配置文件,如下

重启服务后,我们访问nginx会发现需要输入账号和密码了

2、基于IP授权的访问控制

当然如果想要禁止某个主机访问我们的nginx,可以在配置文件中deny掉他的ip地址,操作如下:

这时候我们用192.168.254.15主机访问本机的nginx,会报403错误。

注意:以上对哪个location操作,就对哪个uri生效,对location / 操作就对它生效,对location

/status无效。

基于域名的虚拟主机

nginx域名配置

首先配置nginx主配置文件,定义他的域名,如定义成www.zw114.com,保存退出后,重启nginx

服务。

charset utf-8:表示网页支持中文显示

接着我们去系统域名配置文件 /etc/hosts 下添加我们主机IP和域名的映射关系。

这时候我们访问www.zw114.com就等于访问本机的nginx

如果我们想让别的主机也能访问域名就能访问到我们的IP,只要在各自主机上配置域名配置文件

/etc/hosts下添加主机IP和域名的映射关系即可。

独立日志文件

根据上面的操作,我们独立出www.zw114.com的nginx日志文件。

首先我们修改nginx主配置文件,添加zw114.com的进程日志文件,重启服务。

这时候,我们发现logs/目录下,已经生产了zw114.com的独立日志文件。

nginx多个域名配置

首先还是老样子配置nginx主配置文件,添加新的server,定义新的域名,如定义成

www.zw115.com,保存退出后,重启nginx服务。

接着我们还是去系统域名配置文件 /etc/hosts 下添加我们主机IP和域名115的映射关系。

这样我们访问zw115.com,就会访问 /mnt/www/html/test/index.html文件,当然我们已经echo

这里是zw115 > index.html。

生产相应的zw115.com.access.log日志文件。

基于IP地址和端口的域名

根据上面的操作,我们在监听端口这,分别对两个server进行修改IP地址和服务端口,并添加一个

虚拟网卡ens33:1 192.168.254.100/24,并重启nginx服务,具体操作如下:

接着还是去系统域名配置文件 /etc/hosts,添加相应的映射关系。

最后我们访问各自的IP地址,显示成功。


网站公告

今日签到

点亮在社区的每一天
去签到