前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >nginx安装,实现反向代理和负载均衡

nginx安装,实现反向代理和负载均衡

作者头像
一缕82年的清风
发布2021-12-06 11:00:47
5930
发布2021-12-06 11:00:47
举报
文章被收录于专栏:lsqingfeng

nginx应该算是当前比较流行的web服务器,体积小性能好,可实现高并发连接,据说可承受5万的并发量,并且使用比较简单,可以实现热部署。今天我们就来简单搞一搞。

一. 安装

截止到目前最新的版本是1.14.2. 到目前为止我的博客里已经分别讲了mysql的安装,redis的安装,其实大家应该能够总结出一些规律,首先第一步肯定是先获取安装包。获取安装包有两种方式,一种是使用wget获取,一种是直接去官网下载,由于我在使用wget的时候连接超时了。所以我使用的是去官网下载。下载链接: http://nginx.org/en/download.html

下载好了之后,使用rz上传到服务器上,然后放到自己的一个目录下,我的软件都统一放在了/usr/software文件夹下。

首先就是解压安装包:

代码语言:javascript
复制
tar -zxvf nginx-1.14.2.tar.gz 

解压之后,进入目录; cd /nginx-1.14.2, 执行如下命令

代码语言:javascript
复制
./configure

这个时候nginx开始执行配置,配置过程中有可能会出现错误。

如果出现了: ./configure: error: the HTTP gzip module requires the PCRE library.

安装相应的包: yum -y install pcre-devel 即可

重新 ./configure

如果出现了: ./configure: error: the HTTP gzip module requires the zlib library.

安装相应的包: yum install -y zlib-devel 即可

重新 ./configure

直到最后成功。成功后,会在/usr/local/ 下生成nginx文件夹。我们启动一下服务。

代码语言:javascript
复制
cd /usr/local/nginx/sbin
./nginx

服务启动后,在浏览器输入ip:80 即可出现nginx访问页面, 80端口可不加

二. 反向代理和负载均衡。

如何理解反向代理呢,

首先我们先说明一下正向代理。比如说我们想访问谷歌,但是由于某些原因无法访问,所以我们就可以科学上网,先访问到谷歌。而这个科学上网就是正向代理,通过它,达到我们的目标。

而反向代理正好相反,比如我们访问百度,输入www.baidu.com. 而这个域名其实就是我们的目标,我们先获取到了我们的目标,但是这个域名后面可能由几十台服务器,而访问域名后,帮我们跳到了其中一台服务器上,这就是反向代理,所以正向反向的区别就在于目标服务器在前还是在后。

有了反向代理,就可以帮我们负载均衡,比如百度,代理到了后面的几十台服务上,几十台服务器就起到了负载均衡的作用,让流量平摊到了不同节点上。

好,接下来我们来玩一下这个反向代理。 我的nginx装在了192.168.1.12这台机器上,我希望通过访问192.168.1.12能帮我把请求转到192.168.1.13 和 192.168.1.14这两台机器上。目标在前,就是反向代理。首先我们在192.168.1.13 和 192.168.1.14两个机器上部署两个springboot应用,直接返回本机ip:

现在我们希望访问12这台机器能够反向代理到这两台机器上。直接修改nginx配置文件:

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

代码语言:javascript
复制
http {
    upstream action{
        server 192.168.1.13:8888;
        server 192.168.1.14:8888;
    }
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       8888;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass http://action;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
」

重启nginx:

cd /usr/local/nginx/sbin/

./nginx -s reload 完成。

这个时候,我们访问 192.168.1.12:8888 (8888是在上面listen中配置的,也可以配置成其他的)。

再刷新:

说明一会访问到了13,一会访问到了14. 这就是反向代理和负载均衡。由于我在upstream中没有配置任何策略,现在默认是轮训策略,就是一下是13,一下是14. 除此之外,还可以选用权重和hash, 权重只需在upstream server后面的ip地址后加上weight, 就会根据权重选择。 如果是iphash, 会根据ip的hash值计算,如果总共两台,就对2取余,落到其中一台上,这种方式的特点就是,相同的ip会有固定的一台机器处理,有时候有这种方式解决分布式环境下的session一致问题。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/03/16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的四七层流量分发服务,访问流量经由 CLB 可以自动分配到多台后端服务器上,扩展系统的服务能力并消除单点故障。轻松应对大流量访问场景。 网关负载均衡(Gateway Load Balancer,GWLB)是运行在网络层的负载均衡。通过 GWLB 可以帮助客户部署、扩展和管理第三方虚拟设备,操作简单,安全性强。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档