一、搭建Nginx服务

Nginx 是俄罗斯人编写的十分轻量级的HTTP 服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器

1 安装扩展包epel

在安装Nginx之前需要安装epel扩展包,先通过rpm -qi epel-release 查看一下是否安装,通过查看已经安装,如果没有安装就需要通过yum install epel进行安装

Linux之Nginx服务 nfs文件存储 负载均衡

通过yum安装Nginx需要有扩展的源epel.repo ,确定有后yum install nginx -y 就开始安装

Linux之Nginx服务 nfs文件存储 负载均衡

查看下Nginx版本是1.10.2,这是官方的稳定版本

Linux之Nginx服务 nfs文件存储 负载均衡

2 修改配置文件

Nginx的配置文件村村存放在/etc/nginx/nginx.conf

vim /etc/nginx/nginx.conf

2.1 server

下图中sever中 80代表的是监听的是80端口,root 的路径/var/share/nginx/html;是网站的根目录,这是去全局的,最后必须用分号结尾

Linux之Nginx服务 nfs文件存储 负载均衡

2.2 location

  • url 统一资源定位符
http://192.168.1.1:80 能定位到唯一的一个软件
  • uri 统一资源占位符
http://192.168.1.1:80/a/b/c.txt

能定位到服务端的c.txt文件

客户端提交请求,最终服务端寻找的就是

/var/share/nginx/html/a/b/c.txt

上网最终就是上网查找文件下载到本地

1 http:// --->sever端基于http给clint发送数据
2 192.168.1.1:80 --->定位到全世界唯一的软件
3 /a/b/c.txt ---> /先找软件的根 root /usr/share/nginx/html

在找根的时候会先找location,没有location会从root寻找

Linux之Nginx服务 nfs文件存储 负载均衡

3 启动软件

3.1 启动Nginx服务

第一次启动的时候需要用Start,systemctl start nginx,启动后可以通过systemctl status nginx 查看状态

Linux之Nginx服务 nfs文件存储 负载均衡

Nginx启动后,修改配置文件后需要重新启动,用**systemctl restart nginx
**

3.2 通过浏览器访问

先获得服务端的IP地址,ifconfig 得到IP地址是192.168.16.134

在浏览器中输入192.168.16.134不能访问,这是软件防火墙的问题,通过systemctl stop firewall 就能把防火墙关闭,重新输入就能访问

systemctl disable firewalld配置开机关闭防火墙

Linux之Nginx服务 nfs文件存储 负载均衡

下面修改index文件,在文件中写入welcome Nginx

Linux之Nginx服务 nfs文件存储 负载均衡

Linux之Nginx服务 nfs文件存储 负载均衡

3.3 创建一个文件的,通过目录进行访问

Linux之Nginx服务 nfs文件存储 负载均衡

重启Nginx在浏览器中

Linux之Nginx服务 nfs文件存储 负载均衡

3.4 修改location

在location中添加 根目录和index

Linux之Nginx服务 nfs文件存储 负载均衡

将在文件中写入内容

Linux之Nginx服务 nfs文件存储 负载均衡

在浏览中输入192.168.16.134/index.html出现403页面,尝试关闭软件防火墙还是不行,通过查找资料关闭内核防火墙,修改/etc/selinux/config 文件,

SELINUX=enforcing改为SELINUX=disabled

重启机器

在浏览中输入192.168.16.134/index.html

Linux之Nginx服务 nfs文件存储 负载均衡

二、Nginx反向代理

Nginx官网中找到Using nginx as HTTP load balancer,意思是使用Nginx作为负载均衡

将一台机器配置为Nginx服务器,当有访问的时候,由这台服务器负责分配流量到不同的服务器

下面通过搭建一台Nginx服务器,反向代理3台服务器

具体的环境是在VMware中操作,同过软件的克隆功能复制出3台web服务器,分别是web1、web2、web3.原来的主机做负载均衡

通过xshell5进行远程连接

Linux之Nginx服务 nfs文件存储 负载均衡

Linux之Nginx服务 nfs文件存储 负载均衡

修改3个web服务器的主页

分别修改** /var/www/html/index.html中的内容为web1、web2、web3,用systemctl restart nginx**重启nginx服务,在浏览器中分别输入相应的IP地址就能验验证修改的内容。

我们要做的是通过访问反向代理主机就能访问web123的内容

修改反向代理主机的配置文件

nginx做负载均衡的时候有3中调度算法

  • 轮询
  • 最小连接
  • IP hash

1 基于轮询的方式调度三台web

在反向代理主机的配置文件中添加

http {
    upstream myapp1 {
        server srv1.example.com;
        server srv2.example.com;
        server srv3.example.com;
    }

    server {
        listen 80;

        location / {
            proxy_pass http://myapp1;
        }
    }
}

这里面这要是修改三处,一是名字myapp1,在实际的测试中修改成了Pythonwebtest,二是下面的域名修改成web1、web2、web3的IP地址,三是在server中添加proxy_pass http://pythonwebtest;

Linux之Nginx服务 nfs文件存储 负载均衡

Linux之Nginx服务 nfs文件存储 负载均衡

实验结果:

在浏览器中访问反向代理主机的IP地址,不断刷新显示的内容依次是web1、web2、web3

Linux之Nginx服务 nfs文件存储 负载均衡

Linux之Nginx服务 nfs文件存储 负载均衡

Linux之Nginx服务 nfs文件存储 负载均衡

2 hash的方式调用三台web

IP hash会将访问的IP地址固定到一台web服务器,作用就是会话保持

upstream myapp1 {
    ip_hash;
    server srv1.example.com;
    server srv2.example.com;
    server srv3.example.com;
}

同样的将myapp1修改成pythonwebtest

实验结果就是当访问反向代理主机的时候一直刷新返回的都是web1

3 基于权重的方式调度三台web

  upstream myapp1 {
        server srv1.example.com weight=3;
        server srv2.example.com;
        server srv3.example.com;
    }

具体的实现就是在轮询的基础上再相应的IP后面添加weight并赋值

实验结果:

当访问反向代理主机的时候不断刷新,前3次返回的是web1,之后依次返回web2、web3,然后是3次web1,依次往复循环

三、nfs服务

NFS 是Network File System的缩写,即网络文件系统。

1 安装nfs

yum install rpcbind nfs-utils -y

2 配置

配置文件在/etc/exports

/share 192.168.16.0/24(rw,sync,fsid=0)

把IP地址设置成相同的子网16,这样就都能访问了,这里通过设置反向代理服务器上的文件作为共享文件

3 修改share目录的权限

将share目录的权限修改成 chmod -R o+w /share

4 先为rpcbind和nfs做开机启动

systemctl enable nfs-server.service

systemctl enable rpcbind.service

5 启动

必须先启动rpcbind服务

systemctl start rpcbind.service

systemctl start nfs-server.service

6 确认NFS服务器启动成功

exportfs 

出现share目录证明启动成功

showmount -e #默认查看自己共享的服务
showmount -a #显示已经与客户端连接上的目录信息

现在还没有服务器连接

7客户端安装并开启服务

yum install rpcbind nfs-utils -y

systemctl enable rpcbind.service && systemctl start rpcbind.service						

web1、web2、web3中进行挂载

mount -t nfs 192.168.16.134:/share /var/www/html/

-t nfs 是指定文件的类型

此时,就可以在浏览器中访问192.168.16.134/share.txt

web1、web2、web3 此时共享/var/www/html/

四、源码安装nginx

1 安装环境

从GitHub下载nginx的源码包并解压,在机器上安装开发工具

2 制作Makefile文件

./configure --prefix=/usr/local/nginx

3 编译并安装

make && make install

4设置环境变量

vim /etc/profile.d/http.sh
PATH=/usr/local/nginx/sbin:$PATH

5 启动

systemctl start nginx

在浏览器中输入主机的IP地址就能访问了

相关文章:

  • 2022-02-19
  • 2021-06-26
  • 2021-12-26
  • 2022-01-09
  • 2021-12-20
  • 2022-03-06
  • 2022-01-07
猜你喜欢
  • 2022-12-23
  • 2021-12-25
  • 2022-12-23
  • 2021-12-13
  • 2021-11-19
  • 2022-01-22
  • 2021-12-11
相关资源
相似解决方案