windows 下 nginx 的反向代理学习整理

下载什么的就不说了,下载好了解压就能用,和 tomcat 差不多,下面说一些配置和操作什么的;

启动等命令:(命令行进入到 nginx 解压目录下)

start nginx 启动命令

nginx -s reload 重新加载配置文件

nginx -s stop 停止 nginx

nginx -s quit 退出 nginx, 会结束 nginx 进程

nginx -s reopen 重启

-v 啥的就不说了,基本上就这些命令。

 

nginx 最主要的还是配置文件, 存在于解压目录的 conf 目中中, 最主要的是 nginx.conf 文件,默认的的 nginx.conf( 去除注释 ) 文件如下

worker_processes  1;

#工作进程的数目,通常是 cpu 的核数或 2 倍

events {
  worker_connections 1024;

  #单个工作进程的最大连接数目,在配置允许的范围内尽量的大一些
}

http {
  include mime.types;
  default_type application/octet-stream;

  sendfile on;

  #sendfile指令指定 nginx 是否调用sendfile 函数(zero copy 方式)来输出文件,对于普通应用,必须设为on。如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁   盘与网络IO处理         #速度,降低系统uptime。

  server { # 配置虚拟机

    listen 80;  # 监听端口 80,浏览器默认的端口号就是 80

    server_name localhost;  # 监听的域名
    location / {  # 对 包含 / 的 uri ( 所有的 ) 进行代理
      root E:/nignx    # 指定虚拟机的根目录 类似 tomcat 的 webApp 目录下的 Root 目录 url 域名之后的路径会从此目录开始查找

      index index.html index.htm index.jsp # 指定默认的页面 通常在 url 域名后没有跟路径时启用
    }
    error_page 500 502 503 504 /50x.html;  # 指定失败的页面
    location = /50x.html {
      root html;
    }
  }
}

以上就是一个刚解压的 nginx 目录的配置文件的全部,下面来看看 如何通过配置文件实现一些 nginx 的功能;

1)反向代理

代  理:代理服务器架设在客户端和 服务器之间, 将客户端发出的请求经过处理后与网络中指定的地址进行交互;

反向代理:反向代理服务器架设在服务器端,将客户端发送过来的请求,经过处理后发送到内网不同的服务器去处理;

nginx 实现反向代理主要是通过 location 标签下的 proxy_pass 属性实现

server {

  listen: 80;

  server_name: localhost;

  location / {

    proxy_pass: http://127.0.0.1:8082;   

    proxy_set_header Host $host;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

  }

}

 

2) 负载均衡

负载均衡就是对各服务器的负载进行动态的调整, 以尽量减少系统中各服务器负载不均衡的情况; ngnix 中负载均衡的实现主要是通过 upstream {} 来实现

upstream myservers {

  ip_hash;

  server 127.0.0.1:9090 weight = 2;

  server 127.0.0.1:9191 weight = 3;

  server 127.0.0.1:9292 down;

  server 127.0.0.1:9393 backup;

}

# 服务器状态 共有 weight down backup max-fails

# weight 权重, 权重越大 ,负载越重

# down 表示此服务器不参与负载

# backup 其他所有非 backup 状态的服务器 down 或者忙的时候请求 backup 状态的机器, 此机器的负载一定最轻的;

# max-fails 最大失败次数 默认为 1 当超过最大 失败次数的时候, 会调用 proxy_next_upstream 模块定义的错误

# 负载均衡原则的其他配置方式 ip_hash  fair  url_hash

# ip_hash 根据请求的 ip 地址分配请求的服务器地址, 特定的 ip 访问特定的服务器

# fair 根据响应时间来分配, 响应时间短的分配得到的机会大

# url_hash 根据 url 的hash 结构来分配, 特定的 url 只访问对应的服务器

server {

  listen: 80;

  server_name: localhost;

  location / {    

    proxy_pass http://myservers$request_uri;

    # 设置被代理服务器的端口或套接字,以及URL

    proxy_set_header Host $host;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    # 以上三行,目的是将代理服务器收到的用户的信息传到真实服务器上

  }

进行如上设置之后,域名为 localhost 的请求会被代理 myservers 中定义的各个端口去,分配几率的大小根据 weight 进行分配,都忙的时候分配给 backup 服务器;

 

之上就是 nginx 主要的两大功能,下面再补充一些 nginx 配置方面的其他知识点:

1)  location 语法

= 严格匹配,一旦匹配将停止查找,立即执行此条请求

~ 表示区分大小写匹配

~*表示不区分大小写匹配

!~表示区分大小写不匹配

!~*表示不区分大小写不匹配

^~表示匹配正则后停止匹配

2) proxy_pass url 生成规则 加入进入的是 http://127.0.0.1/proxy/1.html

1> location /proxy/ {

   proxy_pass http://127.0.0.1/;

  }

最终访问 http://127.0.0.1/1.html

2>location /proxy/ {

   proxy_pass http://127.0.0.1;

 }

最终访问 http://127.0.0.1/proxy/1.html

3>location /proxy/ {

   proxy_pass http://127.0.0.1/see/;

 }

最终访问 http://127.0.0.1/see/1.html

4>location /proxy/ {

   proxy_pass http://127.0.0.1/see;

 }

最终访问 http://127.0.0.1/see1.html

更多东西以后用到时补充~~~~~~~

转载于:https://www.cnblogs.com/hugystudy/p/8252462.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值