阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Windows环境用Nginx配置反向代理和负载均衡

149次阅读
没有评论

共计 2042 个字符,预计需要花费 6 分钟才能阅读完成。

引言:在前后端分离架构下,难免会遇到跨域问题。目前的解决方案大致有 JSONP,反向代理,CORS 这三种方式。JSONP 兼容性良好,最大的缺点是只支持 GET 方式请求。反向代理方式简单彻底,基本只需要服务器配置即可完成。CORS 由服务提供程序主动声明自己可信任源,目前的缺点是老式浏览器无法支持。

问题:反向代理如何实现?

解决方案:使用 Nginx 轻松搞定反向代理。配置很简单,还附带负载均衡配置方法。

步骤 1. 下载 Nginx。最新下载地址:http://nginx.org/en/download.html

步骤 2. 修改 / conf/ nginx.conf 配置文件。Nginx 运行起来。

 Windows 环境用 Nginx 配置反向代理和负载均衡Windows 环境用 Nginx 配置反向代理和负载均衡

 

访问 localhost:8000/index.html 会直接访问发布的静态文件。访问 localhost:8000/api/index.html 会被轮询分配到 localhost:8005/index.html 和 localhost:8006/index.html。这样就能保证前端和后端服务在同源下,彻底解决跨域问题。同时 api 还实现了负载均衡,减轻了服务器压力。

步骤 3,设置服务端 cookie 的 path 和 domain。

效果:

 Windows 环境用 Nginx 配置反向代理和负载均衡Windows 环境用 Nginx 配置反向代理和负载均衡

涉及配置文件内容:

 #设定负载均衡的服务器列表
         #weight 越大,负载的权重就越大。8006 的访问量是 8005 的两倍
         upstream targetserver{
                   #ip_hash;# 按访问 ip 的 hash 结果分配,解决 Session 跨服务器问题
                   server localhost:8005 weight=1; 
                   server localhost:8006 weight=2; 
         }
 

Windows 环境用 Nginx 配置反向代理和负载均衡

location ^~ /api/ {
            #proxy_pass    http:
//localhost:8006;# 反向代理方式 1
            proxy_pass  http://targetserver; #反向代理 2,也可做负载均衡。
            #proxy_redirect default ;
            proxy_redirect off ;
            proxy_set_header Host $host;
            proxy_set_header X
-Real-IP $remote_addr;
            proxy_set_header REMOTE
HOST $remote_addr;
            proxy_set_header X
-Forwarded-For $proxy_add_x_forwarded_for;
            client_max_body_size 50m;
            client_body_buffer_size 256k;
            proxy_connect_timeout
30;
            proxy_send_timeout
30;
            proxy_read_timeout
60;
            proxy_buffer_size 256k;
            proxy_buffers
4 256k;
            proxy_busy_buffers_size 256k;
            proxy_temp_file_write_size 256k;
            proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
            proxy_max_temp_file_size 128m;                           

            rewrite/api/(.+)$ /$1 break;# 将 /api/ 后面的路由直接转发到目标服务器的根目录
        }

                 

  location/ {
              autoindex on;
index index.html index.htm;
              root 
E:\02 源代码管理 \ 技术文档 \AngularJsDemo;   
        }

—————————————————- 正文结束分割线 —————————————————- 

upstream 还可以为每个设备设置状态值,这些状态值的含义分别如下:

down 表示单前的 server 暂时不参与负载.

weight 默认为 1.weight 越大,负载的权重就越大。

max_fails:允许请求失败的次数默认为 1. 当超过最大次数时,返回 proxy_next_upstream 模块定义的错误.

fail_timeout : max_fails 次失败后,暂停的时间。

backup:其它所有的非 backup 机器 down 或者忙的时候,请求 backup 机器。所以这台机器压力会最轻。

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-01/139038.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2042字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中