Day7
今日知识点
Nginx
- LB(Load Balance)负载均衡,负责压力平衡;如果负载均衡器挂了,在没有其他备用的均衡器时,服务无法访问
代理(Proxy)
正向代理。替客户端发送请求。
反向代理。替服务端接受请求。
两者区别是:这就像两个不同的视角,正向代理就像是你是一名公司老板,你有一名秘书,有什么事直接让秘书替你干,秘书就好比正向代理服务器;反向代理就是反过来,你是一名客户,想要找企业大老板,但是大老板业务很忙,不是什么人都能见的,你就只能找他秘书,让秘书替你传话,这秘书就是反向代理服务器。关键区别在于 “秘书替谁服务” 以及 “目标方是否知道真实需求者”
Nginx配置文件介绍
/etc/nginx/nginx.conf
- 全局块配置,位于配置文件的最外层,不包含在任何{}块中;作用:设置nginx的全局参数,影响整个服务的运行环境
- events块,与全局配置同级;作用:配置nginx与客户端网络链接相关的底层机制,决定nginx如何处理用户的链接请求。
- http块,配置nginx处理http/https协议的核心规则,是所有http相关配置的总容器
- 配置虚拟主机(Virtual Host),用于区分不同的域名、端口或 IP 对应的服务
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38user nginx; #使用nginx用户登录
worker_processes auto; #工作进程数,通常为cpu核心数,影响并发处理能力
error_log /var/log/nginx/error.log; #错误日志地址
pid /run/nginx.pid; #服务进程pid
include /usr/share/nginx/modules/*.conf; #扩展功能,以模块的方式
events { #events块
worker_connections 1024; #同时工作数
use epoll;#指定事件驱动模型(Linux 推荐epoll,高效处理大量连接)
multi_accept on;#允许工作进程一次性接受多个新连接(提高连接处理效率)
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#设定日志格式
access_log /var/log/nginx/access.log main; #访问日志地址
sendfile on; #零拷贝,跳过内存,直接从ssd读数据
tcp_nopush on; #
tcp_nodelay on; #不延迟开启
keepalive_timeout 65; #http长链接超时事件
types_hash_max_size 4096;
include /etc/nginx/mime.types; #定义了那些文件格式可以直接查看
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;
server {
listen 80; #IPV4端口监听
listen [::]:80; #IPV6端口监听
server_name _; #匹配的域名,IP
root /usr/share/nginx/html;
include /etc/nginx/default.d/*.conf;
error_page 404 /404.html; #配置错误页面
location = /404.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
}
反向代理服务器配置
- master_server:192.168.146.129
- proxy_server:192.168.146.130
两台服务器都安装Nginx,然后再proxy_server中配置conf1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18server {
listen 8090;
server_name 192.168.146.129;
location /{
proxy_pass http://192.168.146.130:80;
}
}
server {
listen 8080;
server_name 127.0.0.1;
location / {
root /www/server/nginx/html;
index index.html index.htm;
}
}同一个端口同一时间只能被一个进程监听,所以上面两个端口进行了更换
master_server不用配置,这样最简单的反向代理服务器就ok了,这时候curl 192.168.146.130就可以看到103服务器的内容了。






