意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

Nginx入门笔记

来源:恒创科技 编辑:恒创科技编辑部
2024-01-25 02:31:59
目录

什么是反向代理

正向代理反向代理

Nginx进程模型

Worker抢占机制Nginx事件处理

配置文件


Nginx入门笔记

配置结构主要配置常用命令

日志分割

定时任务分割日志配置一个静态文件使用GZIP压缩Location匹配规则

跨域的方式

同源策略跨域资源共享 反向代理两者比较配置防盗链

负载均衡

负载均衡算法负载均衡实例长连接优化

nginx缓存

控制浏览器缓存反向代理缓存

配置SSL证书

证书安装(腾讯云)HTTP 自动跳转 HTTPS 的安全配置(可选)参考Nginx

Nginx是高性能的http和反向代理web服务器,同时也提供IMAP/POP3/SMTP服务

主要功能有

反向代理通过配置文件实现集群和负载均衡静态资源虚拟化什么是反向代理正向代理

正向代理→代理客户端:客户端无法直接从将请求送达目标服务器,可以通过能够请求到目标服务器的代理服务器转发请求到目标服务器,并将从目标服务器获取的内容返回给客户端,这就是正向代理。

正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径,就比如说我们再居家办公的时候需要通过vpn访问内网环境,vpn起到的作用就是正向代理。

正向代理可以使用缓存特性减少网络使用率。

反向代理

反向代理→代理服务端:客户端不知道服务器的实际地址,通过访问代理服务器由其将请求转发到相应的服务器上。

反向代理的作用

保护和隐匿原始服务器

反向代理可以不让客户端直接访问到原始资源服务器

负载均衡

反向代理服务器可以将多个客户端请求通过负载均衡算法将这些请求分发到不同的服务器上以减轻单个服务器的压力,当然,反向代理服务器也可以有多个组成代理服务器集群。

缓存

反向代理服务器可以像正向代理服务器那样拥有缓存的作用,可以将原始资源服务器返回的静态资源等数据进行缓存,提高请求效率,这也是CDN技术的核心。

路由

可以通过域名中的路由等信息将请求进行分发到不同的服务器上,这点与负载均衡有点像,但是负载均衡主要目的是为了平衡各个服务器的压力,路由是将需求不同的请求分发到不同的服务器。

Nginx进程模型

nginx中可分为主进程(master)和工作进程(worker),master进程主要是用来管理woker进行,工作进程可以有多个,但是默认只有1个。

[root@VM-24-13-centos nginx-1.22.0]# ps aux|grep nginx
root      2868  0.0  0.0  22292  1456 ?        Ss   Jul25   0:00 nginx: master process ./nginx
nobody   18991  0.0  0.0  24376  1768 ?        S    20:24   0:00 nginx: worker process

可以通过worker_processes配置来指定工作进行的数量

#user  nobody;
worker_processes  2;

[root@VM-24-13-centos nginx-1.22.0]# ps aux|grep nginx
root      2868  0.0  0.0  22292  1456 ?        Ss   Jul25   0:00 nginx: master process ./nginx
nobody   23812  0.0  0.0  24376  1492 ?        S    20:49   0:00 nginx: worker process
nobody   23813  0.0  0.0  24376  1492 ?        S    20:49   0:00 nginx: worker process

master进程主要是发送以下命令给worker进程使其停止、重启等

Worker抢占

nginx是多进程单线程,这样不仅能够提高nginx的并发效率,也能使进程之间相互不会影响,即使一个worker进程挂掉了不至于影响其它进程。

Worker抢占机制

由主进程创建的 listen socket,要被 fork 出来的子进程共享,但是为了避免多个子进程同时争抢共享资源,nginx 采用一种策略:使得多个子进程,同一时段,只有一个子进程能获取资源,就不存在共享资源的争抢问题。

成功获取锁的,能获取一定数量的资源,而其它没有成功获取锁的子进程,不能获取资源,只能等待成功获取锁的进程释放锁后,nginx 多进程再重新进入锁竞争环节。

Nginx事件处理

master进程管理多个worker进程,然后每个进程对消息的处理使用Linux的epoll模型来仅从io多路复用

events {
    #不写 默认也是epoll
    use  epoll;
    #一个worker进程最大的连接数
    worker_connections  1024;
}
配置文件配置结构

主要配置
上一篇: 【Java面试】并发编程高频面试题,请你说一下你对Happens-Before的理解 下一篇: 手机怎么远程登录云服务器?