linuxnginx安装配置

linuxnginx安装配置

浏览次数:
信息来源: 用户投稿
更新日期: 2025-12-12
文章简介

一、搭建测试环境这里的测试环境为通过virtualbox安装的两台lubuntu19.04虚拟机,linux系统安装方法不作赘述。为了保证两台linux虚拟机之间的相互访问,虚拟机的网络配置除了

2025阿里云双十一服务器活动

一、搭建测试环境

这里的测试环境为通过virtualbox安装的两台lubuntu19.04虚拟机,linux系统安装方法不作赘述。

为了保证两台linux虚拟机之间的相互访问,虚拟机的网络配置除了默认的nat方式外,还使用了virtualbox软件提供的内部网络(internal)联网方式。

此外,还需要将两台虚拟机中与“内部网络”相关联的网卡,绑定上同一网段的静态ip地址,则两台主机形成局域网络,相互之间可以直接访问。

网络配置

打开virtualbox软件,分别进入两台虚拟机的设置界面,为其添加连接方式为内部网络的网络连接,截图如下(两台虚拟机作同样的配置):

内部网络

登录进虚拟机系统,使用ipaddr命令查看当前的网络连接信息:

2:enp0s3:<broadcast,multicast,up,lower_up>mtu1500qdiscfq_codelstateupgroupdefaultqlen1000

link/ether08:00:27:38:65:a8brdff:ff:ff:ff:ff:ff

inet10.0.2.15/24brd10.0.2.255scopeglobaldynamicnoprefixrouteenp0s3

valid_lft86390secpreferred_lft86390sec

inet6fe80::9a49:54d3:2ea6:1b50/64scopelinknoprefixroute

valid_lftforeverpreferred_lftforever

3:enp0s8:<broadcast,multicast,up,lower_up>mtu1500qdiscfq_codelstateupgroupdefaultqlen1000

link/ether08:00:27:0d:0b:debrdff:ff:ff:ff:ff:ff

inet6fe80::2329:85bd:937e:c484/64scopelinknoprefixroute

valid_lftforeverpreferred_lftforever

可以看到,此时的enp0s8网卡还没有绑定ipv4地址,需要为其手动指定静态ip。

需要注意的是,从ubuntu17.10版本开始,一个新的名为netplan的工具被引入,原来的网络配置文件不再生效。

所以为网卡设置静态ip时需要修改/etc/netplan/01-network-manager-all.yaml配置文件,示例如下:

addresses:[192.168.1.101/24]

#addresses:[192.168.1.101,8.8.8.8]

由于两台主机处于同一子网,网关和dns服务器未配置的情况下仍可以互相访问。对应的配置项暂时先注释掉(后续可以尝试自行搭建dns服务器)。

编辑完成后运行命令,前面配置的静态ip即可生效。

3:enp0s8:<broadcast,multicast,up,lower_up>mtu1500qdiscfq_codelstateupgroupdefaultqlen1000

link/ether08:00:27:0d:0b:debrdff:ff:ff:ff:ff:ff

inet192.168.1.101/24brd192.168.1.255scopeglobalnoprefixrouteenp0s8

valid_lftforeverpreferred_lftforever

inet6fe80::a00:27ff:fe0d:bde/64scopelink

valid_lftforeverpreferred_lftforever

登录进另一台虚拟机中,执行同样的操作(注意配置文件中的addresses项改为[192.168.1.102/24])。两台虚拟机的网络即配置完成。

此时有linux虚拟机server1,ip地址为192.168.1.101;linux虚拟机server2,ip地址为192.168.1.102。两台主机可相互访问。测试如下:

starky@server1:~$ping192.168.1.102-c2

ping192.168.1.102(192.168.1.102)56(84)bytesofdata.

64bytesfrom192.168.1.102:icmp_seq=1ttl=64time=0.951ms

64bytesfrom192.168.1.102:icmp_seq=2ttl=64time=0.330ms

---192.168.1.102pingstatistics---

2packetstransmitted,2received,0%packetloss,time2ms

rttmin/avg/max/mdev=0.330/0.640/0.951/0.311ms

skitar@server2:~$ping192.168.1.101-c2

ping192.168.1.101(192.168.1.101)56(84)bytesofdata.

64bytesfrom192.168.1.101:icmp_seq=1ttl=64time=0.223ms

64bytesfrom192.168.1.101:icmp_seq=2ttl=64time=0.249ms

---192.168.1.101pingstatistics---

2packetstransmitted,2received,0%packetloss,time29ms

rttmin/avg/max/mdev=0.223/0.236/0.249/0.013ms

二、安装nginx服务器

nginx的安装方式主要有两种:

  • 预编译的二进制程序。这是最简单和最快速的安装方式,各主流操作系统都可以通过包管理器(如ubuntu的apt-get)安装。此种方式会安装几乎所有的官方模块或插件。

  • 从源代码编译安装。这种方式相对于前者更加灵活,可以自行选择需要安装的模块或第三方插件。

  • 本示例并没有特殊的需求,所以直接选择第一种安装方式。命令如下:

    $sudoapt-getinstallnginx

    安装成功后,通过命令查看nginx服务的运行状态:

    ●nginx.service-ahighperformancewebserverandareverseproxyserver

    loaded:loaded(/lib/systemd/system/nginx.service;enabled;vendorpreset:en

    active:active(running)sincetue2019-07-0201:22:07cst;26sago

    cgroup:/system.slice/nginx.service

    ├─3748nginx:masterprocess/usr/sbin/nginx-gdaemonon;master_pro

    └─3749nginx:workerprocess

    通过命令验证web服务器是否可以正常访问:

    server:nginx/1.15.9(ubuntu)

    ...

    三、负载均衡配置

    负载均衡(load-balancing)即按照一定的规则将负载分摊到多个操作单元上执行,从而提高服务的可用性和响应速度。

    如某网站应用部署在多台主机构成的服务器集群上,负载均衡服务器位于终端用户和服务器集群之间,负责接收终端用户的访问流量,并根据一定的规则将用户访问分发给后端的服务器主机,从而提高在高并发状态下的响应速度。

    负载均衡服务器

    nginx可以通过upstream选项配置负载均衡。这里使用虚拟机server1作为负载均衡服务器。

    修改serve1上默认站点的配置文件(sudovim/etc/nginx/sites-available/default),改为如下内容:

    server192.168.1.102:8000;

    linuxnginx安装配置

    }

    基于测试的目的,当前只有两台虚拟机。server1(192.168.1.101)已经作为负载均衡服务器,所以使用server2(192.168.1.102)作为应用服务器。

    这里借助nginx的虚拟主机功能,分别将192.168.1.102和192.168.1.102:8000“模拟”为两台不同的应用服务器。

    应用服务器

    修改server2上默认站点的配置文件(sudovim/etc/nginx/sites-available/default),改为如下内容:

    indexindex.htmlindex.htmindex.nginx-debian.html;

    server_name192.168.1.102;

    }

    在/var/www/html目录下创建index.html文件,作为default站点的index页面,内容如下:

    <title>indexpagefromserver1</title>

    <h1>thisisserver1,address192.168.1.102.</h1>

    </html>

    运行命令重启nginx服务,此时访问即可获取刚刚创建的index.html页面:

    <title>indexpagefromserver1</title>

    <h1>thisisserver1,address192.168.1.102.</h1>

    </html>

    配置“另一台主机”上的站点,在server2上创建配置文件,内容如下:

    indexindex2.htmlindex.htmindex.nginx-debian.html;

    server_name192.168.1.102;

    }

    注意监听端口和index页面的配置变化。在/var/www/html目录下创建index2.html文件,作为server2站点的index页面,内容如下:

    <title>indexpagefromserver2</title>

    <h1>thisisserver2,address192.168.1.102:8000.</h1>

    </html>

    ps:为了测试目的,default站点和server2站点配置在同一个主机server2上,且页面稍有不同。实际环境中通常将这两个站点配置在不同的主机上,且内容一致。

    运行命令启用刚刚创建的server2站点。

    重启nginx服务,此时访问即可获取刚刚创建的index2.html页面:

    <title>indexpagefromserver2</title>

    <h1>thisisserver2,address192.168.1.102:8000.</h1>

    </html>

    可以修改server1上的/etc/hosts文件,添加如下一条记录:

    即可将该域名解析到本地ip,完成对负载均衡服务器的访问。

    重启nginx服务,在server1上访问,效果如下:

    <title>indexpagefromserver1</title>

    <h1>thisisserver1,address192.168.1.102.</h1>

    <title>indexpagefromserver2</title>

    <h1>thisisserver2,address192.168.1.102:8000.</h1>

    <title>indexpagefromserver1</title>

    <h1>thisisserver1,address192.168.1.102.</h1>

    <title>indexpagefromserver2</title>

    <h1>thisisserver2,address192.168.1.102:8000.</h1>

    </html>

    从输出中可以看出,server1对负载均衡服务器的访问,完成了对应用服务器server2上两个web站点的轮询,起到负载均衡的作用。

    四、负载均衡方法

    nginx开源版本提供四种负载均衡的实现方式,简单介绍如下。

    1.roundrobin

    用户请求均匀地分配给后端服务器集群(可以通过weight选项设置轮询的权重),这是nginx默认使用的负载均衡方式:

    serverbackend1.example.comweight=5;

    serverbackend2.example.com;

    }

    2.leastconnections

    用户请求会优先转发给集群中当前活跃连接数最少的服务器。同样支持weight选项。

    serverbackend1.example.com;

    serverbackend2.example.com;

    }

    3.iphash

    用户请求会根据客户端ip地址进行转发。即该方式意图保证某个特定的客户端最终会访问同一个服务器主机。

    serverbackend1.example.com;

    serverbackend2.example.com;

    }

    4.generichash

    用户请求会根据一个自定义键值确定最终转发的目的地,该键值可以是字符串、变量或者组合(如源ip和端口号)。

    hash$request_uriconsistent;

    serverbackend1.example.com;

    serverbackend2.example.com;

    }

    权重

    serverbackend1.example.comweight=5;

    serverbackend2.example.com;

    }

    默认权重(weight)为1。backup服务器只有在所有其他服务器全部宕机的情况下才会接收请求。

    如上面的示例,每6个请求会有5个转发给,1个转发给backend2.example.com。只有当backend1和backend2全部宕机时,192.0.0.1才会接收并处理请求。

    以上就是Linux下nginx服务器安装及负载均衡怎么配置的详细内容,更多请关注主机测评网其它相关文章!

    标签:
    centos与ubuntu服务器性能
    « 上一篇
    返回列表
    下一篇 »

    如本文对您有帮助,就请抽根烟吧!