记一次用nginx做多服务器软负载的配置过程以及https的配置

来源:互联网 发布:软件销售渠道 编辑:程序博客网 时间:2024/05/22 09:01

一、安装Ngnix

详细的安装教程以前的文章中写过,戳这里。

二、需求描述

负载规则如下:

/sso/*负载到192.168.0.4,192.168.0.5两台服务器的8080端口/sync/*负载到192.168.0.4,192.168.0.5两台服务器的8081端口/express/*负载到192.168.0.21,192.168.0.22两台服务器的8084端口

示例:

1. 访问api.fenghuangyouxuan.com/sso/login,  则转到192.168.0.4:8080/sso/login,   192.168.0.5:8080/sso/login2. 访问api.fenghuangyouxuan.com/sync/start, 则转到192.168.0.4:8081/sync/start,  192.168.0.5:8081/sync/start3. 访问api.fenghuangyouxuan.com/express/create, 则转到192.168.0.21:8084/express/create, 192.168.0.22:8084/express/create

三、配置文件

为了以后方便管理,将配置文件进行分开。

主配置/usr/local/nginx/conf/nginx.conf

#user  nobody;worker_processes  1;#error_log  logs/error.log;#error_log  logs/error.log  notice;#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {    worker_connections  1024;}http {    include       mime.types;    default_type  application/octet-stream;    sendfile        on;    include      /etc/nginx/conf/*.conf;}

新建/etc/nginx/conf目录,创建my.conf配置文件, 名字随意,内容如下:

upstream sso {    server 192.168.0.4:8080 max_fails=2 weight=1;    server 192.168.0.5:8080 max_fails=2 weight=1;}upstream sync {    server 192.168.0.4:8081 max_fails=2 weight=1;    server 192.168.0.5:8081 max_fails=2 weight=1;}upstream express {    server 192.168.0.21:8084 max_fails=2 weight=1;    server 192.168.0.22:8084 max_fails=2 weight=1;}server {        listen       80;        server_name  api.demo.com;    location ^~ /sso/ {       proxy_pass http://sso;    }    location ^~ /sync/ {       proxy_pass http://sync;    }    location ^~ /express/ {       proxy_pass http://express;    }}

这样就实现了以上的功能

四、https的配置

需求:

前端协议:https后端协议:http负载策略:所有链接均衡负载到 192.168.0.21,   192.168.0.22两台服务器的8081端口

在/etc/nginx/conf新建myhttps.conf, 内容如下:

upstream mini {    server 192.168.0.21:8081 max_fails=2 weight=1;    server 192.168.0.22:8081 max_fails=2 weight=1;}server {        listen       443 ssl;        server_name  wx-ownedexpress.fenghuangyouxuan.com;    ssl_certificate      /data/credit/ps.fenghuangyouxuan.com_bundle.crt;        ssl_certificate_key  /data/credit/ps.fenghuangyouxuan.com.key;    location / {       proxy_pass http://mini;    }}

虽然很简单,但是确实是没毛病。