常常会听到一些关于反向代理和负载均衡的话题,但是具体如何实现呢?
先介绍一下反向代理和负载均衡
我们常说的代理指的是正向代理,正向代理的过程,它隐藏了真实的请求客户端,服务器并不知道真实的客户端是谁,客户端请求的服务都被代理服务器来代替请求。
而反向代理隐藏了真实的服务端,当客户端发出一个请求的时候,背后可能有很多服务器在服务,但是客户端并不知道具体是哪一台服务器在服务,客户端只需要知道反向代理服务器就好了,就比如我们上百度查询,www.baidu.com 就是我们的反向代理服务器,反向代理服务器会帮助我们将请求转发到真实的服务器上。
公司会建立很多的服务器,这些服务器组成了服务器集群,当用户访问网站的时候,先访问一个中间服务器,再让这个中间服务器在服务器集群中选择一个压力较小的服务器,然后将该访问请求引入选择的服务器。用户每次访问,都会保证服务器集群中的每个服务器压力趋于平衡,分担了服务器压力,避免了服务器崩溃的情况。
nginx 安装
安装homebrew
Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径的情况,十分方便快捷。
如果之前尝试过其他脚本安装,请移除Homebrew后再安装
将脚本复制到终端 enter
/bin/bash -c "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/install.sh)"
果页面出现下面的卡顿
==> Tapping homebrew/core
Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core'...
ctrol + c 中断,然后执行下面的命令
cd "$(brew --repo)/Library/Taps/"
mkdir homebrew && cd homebrew
git clone git://mirrors.ustc.edu.cn/homebrew-core.git
安装cask 同样也有安装失败或者卡住的问题,解决方法也是一样
cd "$(brew --repo)/Library/Taps/"
cd homebrew
git clone https://mirrors.ustc.edu.cn/homebrew-cask.git
brew update
中科大源
git -C "$(brew --repo)" remote set-url origin https://mirrors.ustc.edu.cn/brew.git
git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git
git -C "$(brew --repo homebrew/cask)" remote set-url origin https://mirrors.ustc.edu.cn/homebrew-cask.git
brew update
清华大学源
git -C "$(brew --repo)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git
git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git
git -C "$(brew --repo homebrew/cask)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-cask.git
brew update
恢复默认源
git -C "$(brew --repo)" remote set-url origin https://github.com/Homebrew/brew.git
git -C "$(brew --repo homebrew/core)" remote set-url origin https://github.com/Homebrew/homebrew-core.git
git -C "$(brew --repo homebrew/cask)" remote set-url origin https://github.com/Homebrew/homebrew-cask.git
brew update
使用官方脚本同样会遇到uninstall地址无法访问问题,可以使用下面脚本
/bin/bash -c "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/uninstall.sh)"
brew install nginx 安装nginx
cd /usr/local/etc/nginx
nginx
在浏览器输入 http://localhost:8080/
这样nginx就启动好了
nginx -s stop
nginx -s reload
nginx -t
vim Nginx.conf
nginx反向代理主要通过配置proxy_pass
server {
listen 9001;
server_name localhost;
location ~ /oss/ {
proxy_pass http://localhost:8001;
}
通过 upstream 实现负载均衡
upstream test{
server 11.22.333.11:6666 weight=1;
server 11.22.333.44:5555 weight=2;
}
配置完成后保存文件,重启nginx即可。
拓展干货阅读:一线大厂面试题、高并发等主流技术资料
码字不易,如果觉得本篇文章对你有用的话,请给我一键三连!关注作者,后续会有更多的干货分享,请持续关注!