nginx相关配置、反向代理、负载均衡等

Administrator
发布于 2020-07-24 / 1264 阅读 / 0 评论 / 0 点赞

nginx相关配置、反向代理、负载均衡等

nginx相关配置、反向代理、负载均衡等

一、什么是Nginx

Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。

1.1应用场景

1、http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。
2、虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。
3、反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。

二、Nginx安装

详见:Nginx详细安装过程-菜鸟教程
安装关键点和命令
1.解压:
tar -zxvf xxx.tar.gz
2.、安装编译工具及库文件
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
3.编译安装
[root@bogon pcre-8.35]# ./configure
[root@bogon pcre-8.35]# make && make install

三、nginx简单命令

进入/usr/local/nginx/sbin
1.启动nginx
[root@localhost sbin]# ./nginx
2.关闭nginx:
[root@localhost sbin]# ./nginx -s stop
推荐使用:
[root@localhost sbin]# ./nginx -s quit
3.重启nginx:
1、先关闭后启动。
2、刷新配置文件:
[root@localhost sbin]# ./nginx -s reload

最后访问nginx,默认80端口
注意放行端口

四、firewall防火墙简单用法

1.永久开放端口
firewall-cmd --add-port=8080/tcp --permanent
2.重新加载生效开放的端口
firewall-cmd --reload
3.其他相关命令
systemctl start firewalld # 启动
systemctl enable firewalld # 开机启动
systemctl stop firewalld # 关闭
systemctl disable firewalld # 取消开机启动
4.查看所有打开的端口:
firewall-cmd --zone=public --list-ports
firewall-cmd --list-all

五、nginx配置虚拟机

就是在一台服务器启动多个网站。
如何区分不同的网站:
1、域名不同
2、端口不同

5.1通过端口区分不同虚拟机

Nginx的配置文件:
/usr/local/nginx/conf/nginx.conf

在这里插入图片描述在这里插入图片描述

重新加载配置文件
[root@localhost nginx]# sbin/nginx -s reload

5.2 通过域名区分虚拟主机

本地测试可以修改hosts文件。
修改window的hosts文件:(C:\Windows\System32\drivers\etc
可以配置域名和ip的映射关系,如果hosts文件中配置了域名和ip的对应关系,不需要走dns服务器。
在这里插入图片描述

nginx配置

server {
        listen       80;
        server_name  www.taobao.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html-taobao;
            index  index.html index.htm;
        }
    }
    server {
        listen       80;
        server_name  www.baidu.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

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

域名的配置:
192.168.25.148 www.taobao.com
192.168.25.148 www.baidu.com

六、反向代理

在这里插入图片描述

6.1 Nginx实现反向代理

两个域名指向同一台nginx服务器,用户访问不同的域名显示不同的网页内容。
两个域名是www.sian.com.cnwww.sohu.com
nginx服务器使用虚拟机192.168.101.3

在这里插入图片描述

第一步:安装两个tomcat,分别运行在8080和8081端口。
第二步:启动两个tomcat。
第三步:反向代理服务器的配置

upstream `tomcat1` {
	server `192.168.25.148:8080`;
    }
    server {
        listen       80;
        server_name  www.sina.com.cn;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass   `http://tomcat1`;
            index  index.html index.htm;
        }
    }
    upstream `tomcat2` {
	server `192.168.25.148:8081`;
    }
    server {
        listen       80;
        server_name  www.sohu.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass   `http://tomcat2`;
            index  index.html index.htm;
        }
    }

第四步:nginx重新加载配置文件
第五步:配置域名
在hosts文件中添加域名和ip的映射关系
192.168.25.148 www.sina.com.cn
192.168.25.148 www.sohu.com

七、 负载均衡

如果一个服务由多条服务器提供,需要把负载分配到不同的服务器处理,需要负载均衡。

 upstream tomcat2 {
	server `192.168.25.148:8081`;
	server `192.168.25.148:8082`;
  }

可以根据服务器的实际情况调整服务器权重。权重越高分配的请求越多,权重越低,请求越少。默认是都是1

 upstream tomcat2 {
	server 192.168.25.148:8081;
	server 192.168.25.148:8082 `weight=2`;
    }

八、 动静分离

   location `/html`{ #url访问路径
            root `/www/wwwroot`;  #文件所在实际路径
            autoindex on; #是否在浏览器显示文件路径
        }    

        location `/image`{
            root `/www/wwwroot`;
            autoindex on;
        }

        location / {
            proxy_pass http://tomcat1;
            root   html;
            index  index.html index.htm;
        }

autoindex on; #是否在浏览器显示文件路径

在这里插入图片描述


评论