nginx配置

nginx 配置文件中:/usr/local/nginx/conf/nginx.conf,
nginx中,每个server块代表一个或多个站点
server块中的server_name用于区分站点
如果站点内容完全相同,只是域名不同,则可以在server_name后追加域名
如果站点之间没有关联,则追加一个server块 ,然后配置server_name以及其他站点信息

部署nginx的节点:10.0.1.115,部署tomcat web服务的节点:10.0.1.115

静态HTTP服务器
server {
listen 8091;
server_name localhost;
location /
{
root /home/dilurun/Face3dApp/data/;
}
access_log off;
}
root:是指将本地的一个文件夹作为所有 url 请求的根路径,
比如/home/dilurun/Face3dApp/data/下有t.txt t.jpg t.html
浏览器访问: http://10.0.1.115:8091/t.txt 即可看到文件里面的内容
浏览器访问: http://10.0.1.115:8091/t.jpg 即可看到图片内容
对于一些不常见的文件格式(比如后缀名为.d .x什么的)或者压缩文件格式,访问的时候就会下载
浏览器访问: http://10.0.1.115:8091/t.d,就会看到下载提示框出现
浏览器访问: http://10.0.1.115:8091/t.html 就会看到静态页面的内容

nginx转发功能:
server{
server_name test;
location /search{
proxy_pass http://10.0.1.115:8080/face_recognition_cloud/v1.0/search;
}
}
注:
server_name 域名,用于区分server块,访问的时候域名不能代替ip使用,可以随便起
location:位置后面的 / 表示URL根目录,search表示访问的URL路径,(URL是本地的一个文件路径,或者是其他服务器的一个服务路径)
proxy_pass:表示代理的路径
调用示例:此时请求访问:http://10.0.1.115/search和http://10.0.1.115:8080/face_recognition_cloud/v1.0/search的效果是一样的

nginx负载均衡:

upstream 1N{
server 10.0.1.115:8080 weight=1;
server 10.0.1.121:8080 weight=1;
}
server {
listen 9009;
server_name 1NTest;
location /
{
proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header;
proxy_pass http://1N/face_recognition_cloud/v1.0/search;
#proxy_set_header Host 1NTest;
#proxy_set_header X-Forwarded-For $;
proxy_redirect default;
}
access_log /var/log/nginx/access_test.log;
}

注:
upstream 代码块配置的是服务器的集群  
代码块里面:
server 10.0.1.115:8080 down; down表示单前的server暂时不参与负载.
server 10.0.1.115:8080 backup; backup表示其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
server 10.0.1.115:8080 weight=1 max_fails=100 fail_timeout=10s;
weight=1 : weight为weight越大,负载的权重就越大。
max_fails=100;max_fails:允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream模块定义的错误
fail_timeout=10s;fail_timeout : max_fails次失败后,暂停的时间。

server代码块里面:
proxy_pass http:// 1N/face_recognition_cloud/v1.0/search; 1N要和upstream 后面的名称对应

proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header; #tomcat返回以下(http_500 http_502 http_503 http_504 error timeout invalid_header)错误码都会进行重试另外一台服务器。这个对于读请求没有关系,如果对于写请求就会发生多次提交事件。

access_log:路径/文件,将请求日志记录,
access_log off; 表示不记录日志,关闭缓存。
调用示例:http://10.0.1.115:9009

upstream 负载方式:
默认方式:
upstream 1N{
server 10.0.1.115:8080;
server 10.0.1.121:8080;
}
按照轮询方式进行负载,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。虽然这种方式简便、成本低廉。但缺点是:可靠性低和负载分配不均衡。适用于图片服务器集群和纯静态页面服务器集群。

weight(权重):
upstream 1N{
server 10.0.1.115:8080 weight=1;
server 10.0.1.121:8080 weight=1;
}
weight 越大 对应的服务访问几率越大

ip_hash(访问ip)
    每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
upstream favresin{
      ip_hash;
      server 10.0.1.115:8080;
server 10.0.1.121:8080;
}

fair(第三方)
    按后端服务器的响应时间来分配请求,响应时间短的优先分配。与weight分配策略类似。
 upstream favresin{     
      server 10.0.0.10:8080;
      server 10.0.0.11:8080;
      fair;
}
url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
注意:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法。
 upstream resinserver{
      server 10.0.0.10:7777;
      server 10.0.0.11:8888;
      hash $request_uri;
      hash_method crc32;
}

nginx请求转发和负载均衡一起使用:
server{
server_name test;
location /search{
proxy_pass http://10.0.1.115:8080/face_recognition_cloud/v1.0/search;
}
location /multiframesearch{
proxy_pass http:// 1N/face_recognition_cloud/v1.0/multiframesearch;
}
}
upstream 1N{
server 10.0.1.115:8080 weight=1;
server 10.0.1.121:8080 weight=1;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值