centos7离线安装Nginxnginx反向代理、nginx负载均衡

下载所需rmp包(包中有所有rpm

安装 gcc  PCRE pcre-devel   zlib   OpenSSL

 

直接下载.tar.gz安装包,地址:https://nginx.org/en/download.html(文件在包中)

 

cd /usr/local/

mkdir rpm

cd rpm

rpm文件上传

 

rpm -Uvh ./*.rpm --nodeps --force

 

cd /usr/local/

mkdir nginx

cd nginx

 

nginx安装包上传

tar -zxvf nginx-1.15.4.tar.gz

cd nginx-1.15.4

 

./configure        效果如下图:

 nginx离线安装,反向代理,负载均衡

编译安装

make

 nginx离线安装,反向代理,负载均衡

make install

 nginx离线安装,反向代理,负载均衡

查找安装路径:

whereis nginx

 

 

 

开放端口

添加

firewall-cmd --permanent --zone=public --add-port=80/tcp

  --permanent永久生效,没有此参数重启后失效)

 nginx离线安装,反向代理,负载均衡

 

 

 

重新载入

firewall-cmd --reload

 nginx离线安装,反向代理,负载均衡

 

 

查询端口是否开放

firewall-cmd --query-port=80/tcp

 nginx离线安装,反向代理,负载均衡

启动、停止nginx

cd /usr/local/nginx/sbin/

./nginx              启动nginx

./nginx -s stop 此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程

./nginx -s quit         此方式停止步骤是待nginx进程处理任务完毕进行停止

./nginx -s reload 重启nginx(重新加载配置文件)

 

 

 

 

开机自启动

即在rc.local增加启动代码就可以了。

vi /etc/rc.local

增加一行 /usr/local/nginx/sbin/nginx
设置执行权限:

chmod 755 rc.local

 nginx离线安装,反向代理,负载均衡

访问端口如下成功:

 nginx离线安装,反向代理,负载均衡

Nginx反向代理(一台nginx  192.168.50.80,一台tomcat192.168.50.102:8080

 

下载启动tomcat  必须要有jdk环境

cd /usr/local

mkdir tomcat

 

上传tomcatapache-tomcat-8.5.34.tar.gz

tar -zxvf apache-tomcat-8.5.34.tar.gz

cd /usr/local/tomcat/apache-tomcat-8.5.34/bin

./startup.sh

 nginx离线安装,反向代理,负载均衡

开放8080端口

添加

firewall-cmd --permanent --zone=public --add-port=8080/tcp

重新载入

firewall-cmd --reload

查询端口是否开放

firewall-cmd --query-port=8080/tcp

nginx离线安装,反向代理,负载均衡

关闭tomcat:

cd /usr/local/tomcat/apache-tomcat-8.5.34/bin

./shutdown.sh

 nginx离线安装,反向代理,负载均衡

切换到nginx服务器

cd /usr/local/nginx/conf

vi nginx.conf

location/{}中加入tomcat服务器ip及端口

proxy_pass http://192.168.0.115:8080;     Tomcat地址配置(被代理的地址)

 nginx离线安装,反向代理,负载均衡

./nginx -s reload 重启nginx

 

现在访问nginx会出现tomcat的页面

 nginx离线安装,反向代理,负载均衡

Nginx负载均衡(一台nginx 192.168.50.120 两台tomcat 192.168.50.102:8080  192.168.50.103:8080

 

切换到nginx服务器

cd /usr/local/nginx/conf

vi nginx.conf

 

修改配置文件

添加:

upstream backend{

        #ip_hash;       

        server 192.168.50.102:8080;

        server 192.168.50.103:8080;

}

 

location/{}中添加:

proxy_pass http://backend;

 nginx离线安装,反向代理,负载均衡

./nginx -s reload 重启nginx

 

 

 

 

切换到tomcat,为演示方便查看修改tomcat index

cd /usr/local/tomcat/apache-tomcat-8.5.34/webapps/ROOT

vi index.jsp

 

${pageContext.servletContext.serverInfo}-192.168.50.102  加上本机ip方便查看

 nginx离线安装,反向代理,负载均衡

另一台tomcat也是如下操作

 nginx离线安装,反向代理,负载均衡

访问nginx会出现如下效果:

 nginx离线安装,反向代理,负载均衡

 

 nginx离线安装,反向代理,负载均衡

此时nginx负载均衡完成

附:

Nginx负载均衡其他几种配置方法:

配置1

此配置将请求转发到两个WEB服务器,根据客户端IP分配目标主机,同时按权重分配流量,(weight 默认为1.weight越大,负载的权重就越大)

  upstream backend {

    ip_hash;

    server 192.168.50.102:8080 weight=5;

    server 192.168.50.103:8080 weight=3;

  }

 

配置2

默认负载平衡配置,nginx应用HTTP负载平衡来分发请求。

  upstream backend {

    server 192.168.50.102:8080;

    server 192.168.50.103:8080;

    }

 

配置3

最小连接负载平衡配置,nginx将尽量不使用繁忙的服务器,而是将新请求分发给不太忙的服务器。

  upstream backend {

    least_conn;

server 192.168.50.102:8080;   

server 192.168.50.103:8080;

  }

 

 

配置4

会话持久性配置,使用ip-hash,客户端的IP地址用作散列密钥,

以确定应为客户端请求选择服务器组中的哪个服务器。

此方法确保来自同一客户端的请求将始终定向到同一服务器,除非此服务器不可用。

  upstream backend {

    ip_hash;

    server 192.168.50.102:8080;

    server 192.168.50.103:8080;

  }

 

配置5

加权负载平衡配置,通过使用服务器权重进一步影响nginx负载平衡算法。

  未配置权重的服务器,意味着所有指定的服务器被视为对特定负载平衡方法同等资格。

如:

  upstream backend {

    ip_hash;

    server 192.168.14.132:8080 weight=3;

    server 192.168.14.133:80 weight=2;

    server 192.168.14.134:80;

    server 192.168.14.135:80;

  }