linux (09) nginx反向代理,负载均衡
一.nginx域名分配
1.创建一个新的服务器
server
server{
listen 80;
server_name www.s15oumei.com; #定义访问域名
location / {
root /opt/myserver/oumei; #定义虚拟主机的网页根目录
index index.html; #定义虚拟主机的网页根目录下的文件
}
}
}
2.准备两个虚拟主机的网页根目录内容
[root@localhost myserver]# tree /opt/myserver/
/opt/myserver/
├── oumei
│ └── index.html 写入自己的内容
└── rihan
└── index.html 写入自己的内容
3.配置完成后需要检查配置是否正确
启动nginx目录文件 -t 判断
4..修改windows本地的测试域名 C:\Windows\System32\drivers\etc\hosts文件 写入如下内容
192.168.13.79 www.s15rihan.com
192.168.13.79 www.s15oumei.com
#因为我们没有www.s15oumei.com 也没有 www.s15rihan.com ,因此要在本地搞一个测试域名,
不想改dns的话,就去阿里云去买一个域名~~~~~~~~~~~~~~~~~~~~~~
5.配置完成后杀死进程,重启
pkill nginx
重启nginx文件
6.然后在浏览器测试访问 两个不同的 web站点
1.1nagix的访问日志功能
1.开启nginx.conf中的日志参数
在配置文件nginx.conf下,解开注释
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 logs/access.log main;
2.检查access.log的日志信息,访问时会有访问记录
tail -f access.log
1.2nginx的拒绝访问功能
1.在nginx.conf中,添加参数
在server{}虚拟主机标签中,找到location 然后添加参数
#当访问 192.168.13.79/ 的时候
location / {
#拒绝参数是 deny
#deny 写你想拒绝的IP地址
#deny还支持拒绝一整个网站
deny 192.168.13.33;
root /opt/myserver/rihan;
index index.html;
}
1.3nginx的错误页面优化
1.修改nginx.conf 中的配置参数
这个s1540x.html存在 虚拟主机定义的网页根目录下,解开注释
error_page 404 /s40x.html;
s40x.html放在root 下面的根目录下,需自行创建文件
二.nginx反向代理
反向代理意味着在访问代理域名时会访问到要访问的页面,相当于一个媒介
1.实验环境准备
准备2个服务器,都安装好nginx软件
nginx1 192.168.13.79 作为web服务器 (理解为火车票售票点) nginx2 192.168.13.24 作为反向代理服务器 (黄牛) 用户 通过浏览器去访问 黄牛 (代理)
浏览器 访问 192.168.13.24 > 192.168.13.79
2.在反向代理服务器中添加配置
proxy_pass http://192.168.13.104;
server{
listen 80;
server_name 192.168.13.106; #自己的域名
location /{
# deny 192.168.125.*/;
proxy_pass http://192.168.125.129; #代理的域名
#root /opt/myserver/dapian;
#index index.html;
}
3.关闭进程,重启
4.访问代理域名
三.nginx负载均衡
集群的概念:一堆服务器做一件事
1.实验准备
准备三台计算机
nginx1 192.168.13.121 作为nginx负载均衡器 只要我访问这个负载均衡器,查看页面的结果,到底是来自于
nginx2 192.168.13.24 web服务,提供一个页面
nginx3 192.168.13.79 web服务,提供一个页面
2.先配置两个nginx web页面
192.168.13.24 准备一个 index.html 写入 你好,我是192.168.13.24机器
192.168.13.79 准备一个 index.html 写入 老了老弟,我是192.168.13.79
然后启动两个nginx web 服务
3.准备一个nginx负载均衡器 192.168.13.121机器上,修改nginx.conf 写入如下内容
定义一个负载均衡池,负载均衡的算法有 调度算法
概述
轮询 按时间顺序逐一分配到不同的后端服务器(默认)
weight 加权轮询,weight值越大,分配到的访问几率越高
ip_hash 每个请求按访问IP的hash结果分配,这样来自同一IP的固定访问一个后端服务器
url_hash 按照访问URL的hash结果来分配请求,是每个URL定向到同一个后端服务器
least_conn 最少链接数,那个机器链接数少就分发
1.轮询(不做配置,默认轮询)
2.weight权重(优先级)
3.ip_hash配置,根据客户端ip哈希分配,不能和weight一起用
3.写入负载解析虚拟机的代码
keepalive_timeout 65;
upstream node{ server 192.168.125.129 weight=5;
server 192.168.125.130 weight=6;
} #gzip on;
server{
listen 80;
server_name 192.168.125.131;
location /{
proxy_pass http://node;
# deny 192.168.125.*/;
# root /opt/myserver/dapian;
# index index.html; }
4.启动负载均衡器的 nginx服务
5.在客户端windows中测试访问,负载均衡器 192.168.13.121 ,查看请求分发的结果
linux (09) nginx反向代理,负载均衡的更多相关文章
- Linux 下 Nginx 反向代理 负载均衡配置
转载请注明出处:http://blog.csdn.net/smartbetter/article/details/52036350 上一篇分享了 Nginx + JDK + Tomcat + MySQ ...
- linux篇—Nginx反向代理负载均衡
一.环境准备 反向代理功能架构 3台web服务器,组建出web服务器集群 web01 10.0.0.7 172.16.1.7 web02 10.0.0.8 172.16.1.8 web03 10.0. ...
- Linux下nginx反向代理负载均衡几种方式以及配置
下面以ip地址192.168.1.1 和192.168.1.2举例 1.轮询 (1).轮询:每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除. upstream ...
- Nginx 反向代理 负载均衡 虚拟主机配置
Nginx 反向代理 负载均衡 虚拟主机配置 通过本章你将学会利用Nginx配置多台虚拟主机,清楚代理服务器的作用,区分正向代理和反向代理的区别,搭建使用Nginx反向搭理和负载均衡,了解Nginx常 ...
- Nginx 反向代理 负载均衡 虚拟主机
Nginx 反向代理 负载均衡 虚拟主机配置 通过本章你将学会利用Nginx配置多台虚拟主机,清楚代理服务器的作用,区分正向代理和反向代理的区别,搭建使用Nginx反向搭理和负载均衡,了解Nginx常 ...
- 十.nginx反向代理负载均衡服务实践部署
期中集群架构-第十章-nginx反向代理负载均衡章节章节====================================================================== 0 ...
- 【转】Nginx 反向代理 负载均衡 虚拟主机配置
原文:http://www.cnblogs.com/itdragon/p/8059000.html Nginx 反向代理 负载均衡 虚拟主机配置 通过本章你将学会利用Nginx配置多台虚拟主机,清楚代 ...
- Centos7.4 Nginx反向代理+负载均衡配置
Ningx是一款高性能的HTTP和反向代理服务器,配置起来也比较简单. 测试环境: 172.16.65.190 Nginx-反向代理 172.16.65.191 Ningx-Web 172.16.65 ...
- 如何使用Weave以及Docker搭建Nginx反向代理/负载均衡服务器
Hi, 今天我们将会学习如何使用 Weave 和 Docker 搭建 Nginx 的反向代理/负载均衡服务器.Weave 可以创建一个虚拟网络将 Docker 容器彼此连接在一起,支持跨主机部署及自动 ...
随机推荐
- day2_窗口句柄切换
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019/7/16 14:21 # @Author : 大坏男孩 # @File : d ...
- leetcode 分类
https://www.douban.com/note/330562764/ https://blog.csdn.net/Irving_zhang/article/details/78835035 h ...
- shell的几个实战脚本例子(欠)
如何让shell实现 可选择性执行 的功能 巡检内存使用率 批量创建用户 场景:公司想要做测试,需要10000个用户 数据库里查询学生成绩 #如何登录mysql数据库 #如何写sql对数据进行操作 # ...
- Vue 变异方法filter和正则RegExp对评论进行搜索
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- sql语句优化的30种方法
转载于:https://www.cnblogs.com/Little-Li/p/8031295.html 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的 ...
- Erlang基础2
1. apply apply(Mod, Func, [Arg1, Arg2, ..., ArgN]) 等价于 Mod:Func(Arg1, Arg2, ..., ArgN) 区别在于,使用apply, ...
- TypeScript vs. C#: LINQ
TypeScript vs. C#: LINQ TypeScript 没有等效于 LINQ 的语言集成自然查询方面?不能在 TypeScript 中写入以下 LINQ 语句 1 var adultUs ...
- K8S集群集成harbor(1.9.3)服务并配置HTTPS
一.简介 简介请参考:https://www.cnblogs.com/panwenbin-logs/p/10218099.html 二.安装Harbor主机环境及安装要求 主机环境: OS: Cent ...
- C++ 在线编译器(支持 C++11)
C++11 的 Inheriting constructors 特性在 GCC 4.8 以前的版本及 VS2013 中都没有支持,测试起来比较麻烦,所以搜集到了几个支持 GCC 4.8 及更高版本的在 ...
- Linux(CentOS)启动时自动执行脚本(rc.local)
下面说说通过rc.local文件进行开机启动 1.首先创建一个启动脚本,这里以启动docker为例 创建 docker-startup.sh 脚本 #! /bin/bash /usr/bin/mk-d ...