nginx的安装

Windows7:官网下载,是一个压缩包,运行解压缩后的exe文件即启动了nginx,需注意的是,Windows(win7)的80端口默认被微软的IIS占用,需改成别的端口,例如8010(如何改?参考下面的配置文件讲解)

解压后的目录:
1.conf目录:存放配置文件的目录,包含主配置文件nginx.conf,是我们经常修改的配置文件。
2.contrib目录:存放开源爱好者共享的代码。
3.docs目录:存放文档资料。
4.html目录:默认存放了Nginx的错误页面和欢迎页面。
5.logs目录:默认存放了访问日志、错误日志和Nginx主进程pid文件。
6.temp目录:临时目录,用于存放Nginx运行时产生的临时文件。
7.nginx.exe:可执行程序,常用于Nginx服务的启动、停止等管理工作。

Linux:

分为两种方式,1是yum源安装,2是源码通过make编译

(网上教程很多,略过)

静态代理

代理的是静态的html文件等

    # server是一个代理的信息体
server {
# 监听的端口
listen 8010;
# 监听的域名 访问localhost:8010即可访问到主页
server_name localhost;
# html文件路径
location / {
# html是文件夹名
root html;
index index.html index.htm;
}
} # 例子 代理一个域名(域名分发)
server {
listen 80;
server_name aaa.abc.com;
location / {
root html/aaa;
index index.html index.htm;
}
}

反向代理

通过proxy_pass将请求发给子服务处理

    # 将对abc.com的请求 都代理到localhost:9999去处理,localhost可换为其他服务器的ip,9999也可换为其他端口
server {
listen 80;
server_name abc.com;
location / {
proxy_pass http://localhost:9999;
proxy_set_header X-Real-IP $remote_addr;
client_max_body_size 100m;
}
}

负载均衡

nginx的负载均衡主要是通过模块upstream来实现的,

upstream abc.com{
server localhost:9999 weight=10;
server localhost:9998 weight=10;
server localhost:9997 weight=10;
} server {
listen 80;
server_name abc.com;
location / {
proxy_pass http://abc.com;
proxy_set_header X-Real-IP $remote_addr;
client_max_body_size 100m;
}
}

扩展

  1. 轮询(默认)

    每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

  2. weight

    指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

    例如:

upstream bakend {
server 192.168.159.10 weight=10;
server 192.168.159.11 weight=10;
}
  1. ip_hash

    每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

    例如:
upstream resinserver{
ip_hash;
server 192.168.159.10:8080;
server 192.168.159.11:8080;
}
  1. fair(第三方)

    按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream resinserver{
server server1;
server server2;
fair;
}
  1. url_hash(第三方)

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

例:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法

upstream resinserver{
server squid1:3128;
server squid2:3128;
hash $request_uri;
hash_method crc32;
}
upstream resinserver{
#定义负载均衡设备的Ip及设备状态
ip_hash;
server 127.0.0.1:8000 down;
server 127.0.0.1:8080 weight=2;
server 127.0.0.1:6801;
server 127.0.0.1:6802 backup;
} 在需要使用负载均衡的server中增加
proxy_pass http://resinserver/; 每个设备的状态设置为:
1. down 表示单前的server暂时不参与负载
2. weight 默认为1.weight越大,负载的权重就越大。
3. max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
4. fail_timeout:max_fails次失败后,暂停的时间。
5. backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。 nginx支持同时设置多组的负载均衡,用来给不用的server来使用。 client_body_in_file_only 设置为On 可以讲client post过来的数据记录到文件中用来做debug
client_body_temp_path 设置记录文件的目录 可以设置最多3层目录
location 对URL进行匹配.可以进行重定向或者进行新的代理 负载均衡

参考文献:

ngnix域名分发
(其实就是配置多个server)
1. Nginx实现根据域名http、https分发配置示例 https://blog.csdn.net/baidu_35776955/article/details/78059471
2. nginx监听相同端口通过域名分发到不同的服务器 https://blog.csdn.net/gozs_cs_dn/article/details/79067749
3. nginx 反向代理和负载均衡 https://www.cnblogs.com/microtiger/p/7623858.html
4. 配置详解超详细 http://www.cnblogs.com/crazylqy/p/7149774.html
系列教程 有原理 https://www.cnblogs.com/crazylqy/category/883974.html
5. 简单安装与配置 https://blog.csdn.net/e421083458/article/details/30086413

tips:

  1. 引入子配置,避免配置污染
  • include功能:在http里加上 类似include qqq/www/*.conf
  1. 如果代理的服务是重型服务,http请求头非常大,例如在Cookie中写入很多信息,nginx会爆400错误,因为请求头超长,默认1k,需额外设置
  2. nginx常用命令
  • 重新加载配置 nginx -s reload
  1. Windows修改hosts文件 “windows”→“System32”→“drivers”→“etc” 修改hosts文件

2506-nginx的配置-域名分发与负载均衡(只有配置无原理)的更多相关文章

  1. nginx负载均衡及配置

    nginx负载均衡及配置 1 负载均衡概述 负载均衡由来是因为当一台服务器单位时间内的访问量很大时,此时服务器的压力也会很大,当超过自身承受能力时,服务器就会崩溃.为避免让服务器崩溃,用户拥有更好的体 ...

  2. linux 负载均衡配置 keepalive lvs 使用nginx转发 CentOS7 搭建LVS+keepalived负载均衡

    最近希望能够配置一下负载均衡,在虚拟机上面,但是网上找了很多资料很零散,对于不了解的人,很多不够详细,最近终于做好了,把具体的步骤写下来,方便各位网友查阅学习 这个实验需要安装nginx如果没有安装过 ...

  3. nginx 负载均衡简单配置

    配置要求: 三台服务器 127.0.0.1       主负载(把访问请求分给主机池) 127.0.0.2       主机2 127.0.0.3       主机3 第一步: 配置127.0.0.1 ...

  4. Nginx(http协议代理 搭建虚拟主机 服务的反向代理 在反向代理中配置集群的负载均衡)

    Nginx 简介 Nginx (engine x) 是一个高性能的 HTTP 和反向代理服务.Nginx 是由伊戈尔·赛索耶夫为俄罗斯访问量第二的 Rambler.ru 站点(俄文:Рамблер)开 ...

  5. [笔记]nginx配置反向代理和负载均衡

    1.nginx配置文件:源码安装情况下,nginx.conf在解压后的安装包内.yum安装,一般情况下,一部分在/etc/nginx/nginx.conf中,一部分在/etc/nginx/conf.d ...

  6. Windos环境用Nginx配置反向代理和负载均衡

    Windos环境用Nginx配置反向代理和负载均衡 引言:在前后端分离架构下,难免会遇到跨域问题.目前的解决方案大致有JSONP,反向代理,CORS这三种方式.JSONP兼容性良好,最大的缺点是只支持 ...

  7. nginx负载均衡简单配置

    nginx负载均衡简单配置准备三台虚拟机来做这个实验:192.168.232.132        web服务器192.168.232.133        web服务器192.168.232.134 ...

  8. linux下nginx【反向代理】配置【负载均衡】配置

    nginx 可以配置多个端口: 1.10088端口 配置反向代理,消除跨域问题. 2.10087端口 配置ip_hash模式的负载均衡,ip_hash可以绕开解决session共享的问题. nginx ...

  9. Nginx/Httpd负载均衡tomcat配置

    在前一篇博客中我们聊了下用Nginx和httpd对后端tomcat服务做反代相关配置,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13334180.html: ...

随机推荐

  1. Java 15 新特性:隐藏类

    什么是隐藏类 隐藏类,是一种不能被其他类直接使用的类.引入隐藏类的主要目的是给框架来使用,使得框架可以在运行时生成类,并通过反射间接使用它们.可能有点抽象,不要紧,下面我们通过一个例子来直观的认识它! ...

  2. Python模块Ⅰ

    Python模块Ⅰ part1 模块的定义/取别名 自定义模块 什么是模块:模块的本质就是.py文件,封装语句的最小单位 模块中出现的变量,for循环,if结构,函数定义...称为模块成员 模块的运行 ...

  3. 动态调试JS脚本文件:(JS源映射 - sourceURL)与 debugger

    我们在进行js调试时经常会对js进行调试,chrome 对js提示对支持非常友好,只需要F12就可以打开chrome的调试器 在sources里面就是页面请求后加载的一些资源文件,我们可以找到我们的j ...

  4. MySQL的Explain总结

    Explain简介 MySQL优化器在基于成本的计算和基于规则的SQL优化会生成一个所谓的执行计划,我们就可以使用执行计划查看MySQL对该语句具体的执行方式. 介绍这个好啰嗦就是了,我们可以通过这个 ...

  5. 面试官:Netty心跳检测机制是什么,怎么自定义检测间隔时间?

    哈喽!大家好,我是小奇,一位热爱分享的程序员 小奇打算以轻松幽默的对话方式来分享一些技术,如果你觉得通过小奇的文章学到了东西,那就给小奇一个赞吧 文章持续更新 一.前言 书接上回,昨天在地里干了一天的 ...

  6. 世界排名前三的Linux桌面发行版

    linux操作系统 1.MX Linux 2.Manjaro 3. Linux Mint 1.MX Linux https://mxlinux.org 中文用户不太友好 2.Manjaro https ...

  7. C语言- 基础数据结构和算法 - 栈的链式存储

    听黑马程序员教程<基础数据结构和算法 (C版本)>, 照着老师所讲抄的, 视频地址https://www.bilibili.com/video/BV1vE411f7Jh?p=1 喜欢的朋友 ...

  8. php判断客户端浏览器类型

    /** * 判断浏览器名称和版本 */ function get_user_browser() { if (empty($_SERVER['HTTP_USER_AGENT'])) { return ' ...

  9. 我的开源之路:耗时 6 个月发布线程池框架,GitHub 1.7k Star!

    文章首发在公众号(龙台的技术笔记),之后同步到掘金和个人网站:xiaomage.info Hippo4J 线程池框架经过 6 个多月的版本迭代,2022 年春节当天成功发行了 1.0.0 RELEAS ...

  10. 在C#开发中使用第三方组件LambdaParser、DynamicExpresso、Z.Expressions,实现动态解析/求值字符串表达式

    在进行项目开发的时候,刚好需要用到对字符串表达式进行求值的处理场景,因此寻找了几个符合要求的第三方组件LambdaParser.DynamicExpresso.Z.Expressions,它们各自功能 ...