[Open Source] 负载均衡之Nginx
目录
简介
Nginx ("engine x") 是一款轻量级,高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。
传输层的负载均衡有LVS(Linux) 和 NLB(Windows)
常用命令
nginx -v// nginx 版本start nginx// 启动nginx,不阻塞命令窗口nginx -s stop|nginx -s quit// 快速停止 | 有序退出nginx -s reload// 加载配置重新启动
功能
代理
server {
listen 8080; # 监听8080端口
resolver 114.114.114.114; # dns解析地址
location / {
proxy_pass $scheme://$host$request_uri; # 代理到哪个地址
proxy_set_header Host $http_host;
#allow 127.0.0.1; # 允许127.0.0.1地址访问
#deny all; # 禁止所有地址访问(allow位置在上面,所以127.0.0.1仍能访问)
}
}
反向代理
server {
listen 8081; # 监听8080端口
server_name localhost; # 虚拟hostName
location / {
proxy_pass http://127.0.0.1:8081; # 反向代理到的服务器
}
}
集群
HTTP集群
upstream clusterName {
# 通过weight设置每台服务器分配请求站的权重,值越高分配的越多。
server 127.0.0.1:9000 weight=4;
server 127.0.0.1:8082 weight=1;
# ip_hash会计算ip对应hash值,然后分配到固定服务器
ip_hash;
}
location / {
proxy_pass http://clusterName; # 反向代理到群集服务器
# 设置主机头和客户端真实地址,以便服务器获取客户端真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
TCP集群
- 和http同级
stream {
server {
listen 1034;
proxy_pass app;
}
upstream app {
server 192.168.0.111:5672;
server 192.168.0.112:5672;
}
}
重定向
location / {
rewrite ^/(.*)$ http://www.xx.com/$1 permanent;
}
- flag
- last – 基本上都用这个Flag。
- break – 中止Rewirte,不在继续匹配
- redirect – 返回临时重定向的HTTP状态302
- permanent – 返回永久重定向的HTTP状态301
静态文件
location /^(.*) {
root html; # 根目录为html文件夹
index $1 index.html index.htm; # $1表示正则匹配第一项
}
绑定证书
# HTTPS server
#
server {
listen 443 ssl;
server_name localhost;
ssl_certificate /nginx/server.cer; # 公钥(一般为公钥证书 + 中级证书)
ssl_certificate_key /nginx/server.key; # 私钥
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
}
常见问题
与IIS(80端口)冲突
- 被System占用
- 找到HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/HTTP下的Start修改其值为0,重启电脑即可
- 被IIS占用
- 停用IIS 80端口的网站
- 被System占用
nginx群集
- 如果nginx服务器挂了,那我们的站点就直接挂了,可以通过keepalived组件来搭建多台nginx服务提供服务。
error.log 错误日志:signal process started
- 并非错误,只要执行-s reload就会发出
[Open Source] 负载均衡之Nginx的更多相关文章
- 动态负载均衡(Nginx+Consul+UpSync)
Http动态负载均衡 什么是动态负载均衡 传统的负载均衡,如果Upstream参数发生变化,每次都需要重新加载nginx.conf文件, 因此扩展性不是很高,所以我们可以采用动态负载均衡,实现Upst ...
- 反向代理负载均衡之nginx
一.集群 1.1 什么是集群 集群是一组相互独立的.通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理.一个客户与集群相互作用时,集群像是一个独立的服务器.集群配置是用于提高可用性 ...
- 大数据高并发系统架构实战方案(LVS负载均衡、Nginx、共享存储、海量数据、队列缓存)
课程简介: 随着互联网的发展,高并发.大数据量的网站要求越来越高.而这些高要求都是基础的技术和细节组合而成的.本课程就从实际案例出发给大家原景重现高并发架构常用技术点及详细演练. 通过该课程的学习,普 ...
- 分布式存储之MogileFS基于Nginx实现负载均衡(Nginx+MogileFS)
MogileFS分布式文件系统特点: 1.具有raid的性能 2.不存在单点故障 3.简单的命名空间: 每个文件对应一个key:用于domain定义名称空间 4.不共享任何数据 5.传输中立,无特殊协 ...
- 终于等到你---订餐系统之负载均衡(nginx+memcached+ftp上传图片+iis)
又见毕业 对面工商大学的毕业生叕在拍毕业照了,一个个脸上都挂满了笑容,也许是满意自己四年的修行,也许是期待步入繁华的社会... 恰逢其时的连绵细雨与满天柳絮,似乎也是在映衬他们心中那些离别的忧伤,与对 ...
- nginx 负载均衡-- 常用nginx配置
中文官方网站http://wiki.nginx.org/Chshttp://www.howtocn.org/ --------------------------------------------- ...
- 负载均衡之 nginx
什么是负载均衡负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常是指,将请求/数据[均匀]分摊到多个操作单元上执行,负载均衡的关键在于[均匀].在使用nginx负载均 ...
- 负载均衡之nginx
什么是负载均衡负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常是指,将请求/数据[均匀]分摊到多个操作单元上执行,负载均衡的关键在于[均匀].在使用nginx负载均 ...
- Nginx负载均衡——扩展功能(NGINX Plus)
本文主要是介绍了NGINX Plus的相关功能,横跨了NGINX Plus R5/R6/R7/R9等各个不同版本的更新. 什么是NGINX Plus? 顾名思义,就是Nginx的加强版或者扩展版.我们 ...
随机推荐
- Mac os下安装brew
1.首先没下载xcode,请先安装xcode,安装的继续往下面看 2.安装brew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubuser ...
- 十分钟彻底理解javascript 的 this指向,不懂请砸店
函数的this指向谁,和函数在哪里被定义的,函数在哪里被执行的没有半毛钱关系,只遵守下面的规律: 在非严格模式中: 1.自执行函数里面,this永远指向window; <script> v ...
- Java数据类型(基本数据类型)学习
Java数据类型(基本数据类型)学习 与其他语言一样,Java编程同样存在,比如int a,float b等.在学习变量之前我就必须先了解Java的数据类型啦. Java的数据类型包括基本数据类型和引 ...
- 今天打补丁出问题了,害得我组长被扣了1k奖金。
今天是第三次给mxdw打补丁和打包,外加公司高管说有一个东西必须要今天之内搞定外放. 我当时问策划为什么这么着急?策划说大佬决定的(这种做事方式真的很不习惯).我等屁民加班加点的搞事情,把功能搞出去了 ...
- Python错误集
1-->IndentationError:expected an indented block >IndentationError: unindent does not match a ...
- 每天一道Java题[1]
问题:char[]与String相比,有什么优胜的地方? 回答: 针对安全保密高的信息,char[]比String做得更好.因为String是不可变得,即使你修改原先的变量,实际上也是在内存中新建一个 ...
- Gulp文档入门的文档
Gulp自动化执行文件的操作 首先gulp基于node开发的,先按照node.js,使用npm sudo npm install -g gulp (在全局的范围安装 gulp) gulp --help ...
- 4.从AbstractQueuedSynchronizer(AQS)说起(3)——AQS结语
前两节的内容<2.从AbstractQueuedSynchronizer(AQS)说起(1)——独占模式的锁获取与释放> .<3.从AbstractQueuedSynchronize ...
- Bash Excercises
1. cat <<EOF #!/bin/bash function printHelp { cat<<EOF Run the Dash vector tests. Usage: ...
- 【Javascript语言精粹】笔记摘要
现在大部分编译语言中都流行要求强类型.其原理在于强类型允许编译器在编译时检测错误.我们能越早检测和修复错误,付出的代价越小.Javascript是一门弱类型的语言,所以Javascript编译器不能检 ...