Nginx-基础学习

虽然在用Nginx发布前端的服务,但是一直没有系统的学习一下Nginx,这篇文章记录对于Nginx基础的学习。

目录:
  • 什么是Nginx?什么是正向代理和反向代理?
  • Nginx的一些加载机制
  • nginx.conf文件的一些配置
  • Nginx的日志切割
  • Gzip使用
  • Nginx跨域问题
一、什么是Nginx?什么是正向代理和反向代理?

百度百科:nginx是一个高性能的HTTP和反向代理web服务器,同时也提供IMAP/POP3/SMTP(邮件相关的)服务。
其实主要功能就是:
1、反向代理(反向代理和正向代理的概念要搞清楚)
2、通过配置文件可以实现集群和负载均衡(配置比较简单)
3、静态资源虚拟化(图片,前端的服务)

什么是正向代理和反向代理?

正向代理:客户端请求目标服务器之间的一个代理服务器,请求会先经过代理服务器,然后再转发请求到目标服务器,获得内容后最后响应给客户端。正向代理是客户端,解决外网访问服务的问题。
反向代理:用户请求目标服务器,由代理服务器决定访问哪个ip。方向代理是服务端,可以做到保护内部服务器,负载均衡,能够扛得住大流量。

二、Nginx的一些加载机制
(1)Nginx请求页面

浏览器 -->> Nginx -->> 监听80端口 -->> 找到监听80端口的server -->> 映射路由 /

(2)Nginx的进程模型

1、master进程:主进程,老板
2、worker进程:工作进程,员工

master进程会发一下信号给worker进程,master不会亲自执行这些指令,比如:

./nginx -s reload    重新加载配置文件
./nginx -s quit      不会关闭正在进行的链接
./nginx -s stop      强制关闭连接
./nginx -t           检查配置文件有没有错误

操作人-->>发送指令-->> master -->>指令
-->>worker 1 -->连接很多client
-->>worker 2 -->连接很多client
-->>worker 3 -->连接很多client

(3)Worker抢占机制

client请求异步处理,多Worker处理,保证并发量

三、nginx.conf文件的一些配置

main 全局配置
event 配置工作模式及连接数
http http模块相关配置
--> server 虚拟主机配置
--> location 路由规则,表达式
--> upstream 集群,内网服务器

(1)main ->> worker_processes 进程数量,一般根据处理器的核心数来设置,如果有其他服务一般核心数-1比较合适,不能设置太多会影响性能。
(2)event ->> worker_connections 每个worker进程,允许连接客户端最大的连接数
(3)http ->> include 导入代码块

四、Nginx的日志切割

现有的日志都会存在access.log文件中,但是随着时间的推移,这个文件的内容会越来越多,体积会越来越大,不便于运维人员查看,所以我们可以通过把这文件切割为多份不同的小文件作为日志,切割规则可以以天为单位,如果每天有几百G或者几个T的日志的话,则可以按需以每半天或者每小时对日志切割

具体步骤如下:
1. 创建一个shell可执行文件:cut_my_log.sh,内容为:
#!/bin/bash
LOG_PATH="/var/log/nginx/"
RECORD_TIME=$(date-d"yesterday"+%Y-%m-%d+%H:%M)
PID=/var/run/nginx/nginx.pid
mv ${LOG_PATH}/access.log${LOG_PATH}/access.${RECORD_TIME}.log
mv ${LOG_PATH}/error.log${LOG_PATH}/error.${RECORD_TIME}.log
#向Nginx主进程发送信号,用于重新打开日志文件
kill-USR1`cat$PID`
2. 为cut_my_log.sh添加可执行的权限:
      chmod+xcut_my_log.sh
3. 测试日志切割后的结果:
      ./cut_my_log.s
1. 安装定时任务:
      yum install crontabs
2. crontab-e编辑并且添加一行新的任务:
      */1* * * * /usr/local/nginx/sbin/cut_my_log.sh
五、Gzip的使用
# 开启gzip压缩功能,目的:提高出售效率,节约带宽
gzip on;
# 限制最小压缩,小于1字节文件不会压缩
gzip_min_length 1k;
# 定义压缩的级别,压缩比,文件越大压缩越多,但是CPU使用会越多
gzip_comp_level 2;
六、 Nginx跨域问题
Nginx跨域设置

你可能感兴趣的:(Nginx-基础学习)