Nginx常用使用场景无非就是跳转转发和负载均衡,但是实现这两个场景有很多细节,这里我不想告诉你很多细节,直接上例子,例子后面我会再简单说下细节的东西,这样才掌握的快。
这里我想啰嗦一句,因为我是一名7年的老运维,走了很多弯路,比如之前学一个东西,总喜欢先总结他的原理,然后总结半天,总是忘记,真正碰到实际的困难的时候之前总结的原理也都忘记了,所以奉劝大家,简单过一遍原理,大致知道是什么东西,然后应该把90%的时间去搭建一个真实的使用场景,再逐一验证理论,一定要多去实验,实验过程中有不明白的,根据实际情况再去看原理的东西,这是一个很好的快速学习的方法
需求实现域名与 ip+端口的对应关系
我们生产环境,经常使用域名,使用一个域名代替一个服务,一个服务我们通常使用IP+端口来表示,但是DNS服务器只能实现域名与IP的对应关系,这个时候就需要使用Nginx了
- 第一步:
首先登陆到nginx服务器 172.20.0.1 上
新建/etc/nginx/conf.d/tmd.conf,添加如下内容
其中tmd为你的服务名
server {
listen 80;
server_name tmd.tf.corp;
location / { #代表默认访问路径,比如就是访问tmd.tf.corp后面不接任何东西
proxy_pass http://172.20.0.2:7070; #服务ip+端口,实际上nginx的正向代理功能就是
这个模块实现的,具体格式proxy_pass+$URL
}
location /status {
stub_status;
}
}
- 第二步:
检查配置,并重新加载配置文件
在 172.20.0.1 nginx服务器 上
nginx -t 检查没有错误之后
nginx -s reload
- 第三步:
在DNS服务器内添加映射关系
下文DNS服务器使用的是Dnsmasq来实现的
我们的dns服务器有两台,分别是172.20.0.1与 172.20.0.2,必须保证两台配置是同步的
分别登陆两台设备,在/etc/addion_hosts最后添加
172.20.0.1 tmd.tf.corp 映射关系
注意:172.20.0.1 这个ip就是nginx的ip ,没必要更改
最后:
service dnsmasq restart
两台都要执行
例子知识点解析
-
首先上面是基于域名的虚拟主机
-
我们在/etc/nginx/conf.d/目录下一般会根据不同的服务创建不同的
应用.conf
文件
在这个应用.conf
文件内,一个server{} 就代表一台虚拟主机 -
proxy_pass http://172.20.0.2:7070 服务ip+端口,实际上nginx的代理功能就是这个模块实现的,具体格式proxy_pass+¥URL
-
ngxin代理服务
客户端通过ngxin与服务端进行通信叫做代理服务正向代理:
客户端 → nginx → 服务端
或者翻墙
反向代理:
客户端 → nginx ← 服务端
其实就是负载均衡
注意:
正向代理的对象是客户端
反向代理的对象是服务端,其实反向代理就是负载均衡的意思,正向代理你就记住翻墙,一帮二货老是搞名词
语法:
可以支持http、https
proxy_pass $URL;
网友评论