undefined

nginx的基础

正向代理:安装在客户端,客户端的访问通过代理去请求

反向代理:安装在服务端,所有客户端的请求先到代理,由代理去负载均衡到后端某个服务器

负载均衡

动态分离:静态资源直接由nginx返回,不用到达后端服务器

access.log:记录每一条http请求信息

error.log:错误日志

常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 启动
./nginx
# 停止
./nginx -s stop
# 安全退出
./nginx -s quit
# 重新加载配置文件
./nginx -s reload
# 重新开始记录日志文件:
./nginx -s reopen
# 帮助
./nginx -h
使用指定的配置文件: -c
指定运行命令: -p
测试配置文件是否有语法错误: -t -T
打印nginx的版本信息、编译信息等:-v -V
# 热部署,nginx 版本升级
先替换nginx二进制,然后发送信号 kill -USR2 pid
会先使用新的二进制启动新的nginx master、worker进程,然后老的worker进程不再监听端口。老的master进程依然在,供我们版本回退
# 日志切割
先备份老的日志,然后在 kill -USR1 pid 或 ./nginx -s reopen 命令即可

编译

configure –help 可以看到编译选项

配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
http {
# 日志的格式
log_format main '$remote_addr' - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

gzip on; # 打开gzip压缩
gzip_min_length 1; # 如果大小小于1就不压缩
gzip_comp_level 2; # 压缩级别
gzip_types text/plain application/x-javascript image/png; # 什么类型的才压缩

upstream local {
server 127.0.0.1:8080;
}

server {
listen 127.0.0.1:8080; # 只能本机访问8080端口,公网无法访问
access_log logs/geek.access.log main; # 日志的位置以及日志格式
localtion / {
autoindex on; # 可以显示 / 下的目录以及目录下的文件
set $limie_rate 1K; # 限制访问速度,没秒传输1K字节的数据
}
}