nginx安装配置和tomcat负载均衡

1、nginx的反向代理

正向代理是指客户端访在问某个地址,如www.test.com,无法直接访问,是通过访问一个代理服务器返回访问内容,客户端明确知道要访问的地址是www.test.com;而反向代理是指当访问的内容存在于多个服务器上时,客户端的请求先发送到代理服务器,由代理服务器通过轮询、权重等方式选择一个服务器,代替客户端访问该服务器上的内容并返回结果给客户端。

2、环境

三台虚拟机:一台部署nginx,另外两台部署tomcat

3、安装配置nginx

yum安装编译工具及库文件:

yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel

安装PCRE,PCRE 作用是让 Nginx 支持 Rewrite 功能

wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
tar -zxvf pcre-8.35.tar.gz
cd pcre-8.35
./configure
make && make install

查看pcre版本:pcre-config --version 显示8.35

安装nginx

wget http://nginx.org/download/nginx-1.6.2.tar.gz
tar -zxvf nginx-1.6.2.tar.gz
cd nginx-1.6.2
./configure
make && make install

whereis nginx查看nginx所在目录:/usr/local/nginx

/usr/local/nginx/sbin/nginx 启动nginx

/usr/local/nginx/sbin/nginx -s  stop, quit, reopen, reload  关闭、退出、重新打开、重启

vim /usr/local/nginx/conf/nginx.conf

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

...

}

看到nginx是80端口,浏览器访问,发现访问不了,原因是防火墙80端口未开启

firewall-cmd --query-port=80/tcp 查看端口是否开放 (centos7)

firewall-cmd --zone=public --add-port=80/tcp --permanent 开启端口 (centos7)

重启防火墙 systemctl restart firewalld.service

重新访问,成功!

nginx安装配置和tomcat负载均衡_第1张图片

4、负载均衡

为了方便测试,在两台机器的webapp/examples下新建同名的test.jsp

启动另外两台机器上的tomcat,ip和端口分别为192.168.1.193:8080和192.168.1.194:8080

配置nginx

http{
    ...

    upstream tomcat_app{
        server 192.168.1.193:8080 weight=2;
        server 192.168.1.194:8080 weight=1;
    }

    server {
        listen       80;
        server_name  localhost 192.168.1.152;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.html;
            proxy_pass http://tomcat_app;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    ...
    }
}

使用weight轮询的方式配置,当访问192.168.1.152:80时会将请求转发到192.168.1.193和192.168.1.194,并且连续的访问结果是访问193两次,访问194一次,再访问193两次,访问194一次,重复。

注意:

proxy_pass http://后的内容跟定义的upstream相同;

如果不配置proxy_set_header Host $host等,浏览器访问时会报错400

在浏览器连续访问http://192.168.1.152:80/examples/test.jsp

nginx安装配置和tomcat负载均衡_第2张图片

nginx安装配置和tomcat负载均衡_第3张图片

nginx安装配置和tomcat负载均衡_第4张图片

done!

 

参考:

https://www.runoob.com/linux/nginx-install-setup.html

你可能感兴趣的:(nginx安装配置和tomcat负载均衡)