一、搭建Nginx服务

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

1 安装扩展包epel

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

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

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

2 修改配置文件

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

vim /etc/nginx/nginx.conf

2.1 server

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

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寻找

3 启动软件

3.1 启动Nginx服务

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

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

**

3.2 通过浏览器访问

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

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

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

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

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

重启Nginx在浏览器中

3.4 修改location

在location中添加 根目录和index

将在文件中写入内容

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

SELINUX=enforcing改为SELINUX=disabled

重启机器

在浏览中输入192.168.16.134/index.html

二、Nginx反向代理

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

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

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

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

通过xshell5进行远程连接

修改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;

实验结果:

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

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地址就能访问了

Linux之Nginx服务 nfs文件存储 负载均衡的更多相关文章

  1. Linux下Nginx+多Tocat下的负载均衡环境的简单搭建

    本文主要分为四个部分: 1.Nginx的搭建:2.JDK+Tomcat的搭建:3.静态HTML的访问配置:4.负载均衡的配置 ===================================== ...

  2. linux 常用命令 和 nginx(反响代理、负载均衡)安装和配置

    (1)linux常用命令 [1]在光标前输入内容:i [2]删除输入方式下所输入的文本:Ctrl+u  [3]文件保存退出:wq [4]文件不保存退出:q [5]文件强制退出:q! [6]常规删除文件 ...

  3. Linux - Nginx的集群与负载均衡

    Nginx的集群与负载均衡 集群就是一群人干同样的活,负载均衡就是保证每个人都干得差不多.或者大人干得多一些,小孩干得少一些. Nginx实现负载均衡很方便. 准备三台服务器,一台是用于访问图片(66 ...

  4. Nginx反向代理 实现Web负载均衡

    实现负载均衡的方式有很多种,DNS.反向代理.LVS负载均衡器(软件实现).F5(负载均衡器,硬件,非常昂贵)这里我们只提到基于DNS,以及反向代理的方式来实现负载均衡Web服务       DNS服 ...

  5. 使用Nginx、Keepalived构建文艺负载均衡

    面对网站服务器端负载增大的问题,是"拿15万¥买一台服务器"来解决,还是靠"加三倍服务器"来解决?还是用其它一些办法? 对于一个访问量日益增加的网站架构而言,从 ...

  6. 图文解说:Nginx+tomcat配置集群负载均衡

    图文解说:Nginx+tomcat配置集群负载均衡 博客分类: appserver nginxTomcatUbuntuLinux网络应用  作者:niumd Blog:http://ari.iteye ...

  7. Nginx的反相代理, 负载均衡

    转自 http://freeloda.blog.51cto.com/2033581/1288553 大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负 ...

  8. nginx,lvs,haproxy负载均衡对比

    Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术,具体的应用需求还得具体分析. 如果是中小型的Web应用,比 ...

  9. Nginx使用反向代理实现负载均衡

    Nginx使用反向代理实现负载均衡 yls 2019-9-20 简介 基于docker容器以及docker-compose,所以需要自学docker在linux环境的基本使用 使用两个tomcat作为 ...

随机推荐

  1. MS SQL server对象类型type

    执行下面代码,将获取ms sql server对象类型以及其说明 IF OBJECT_ID('tempdb.dbo.#type') IS NOT NULL DROP TABLE #type CREAT ...

  2. iOS 8 之后的动态沙盒路径

    在iOS8之前,我们获取到沙盒中的document.cache.tmp之后,下一次模拟器或真机无论重启多少次,这具体的路径是固定的,可是iOS8 之后,你要是在按原来的路径去找你想要的东西,我想它会把 ...

  3. Chrome开发者工具 debug 调试

    Chrome 的开发者工具分为 8 个大模块,每个模块及其主要功能为: Element 标签页: 用于查看和编辑当前页面中的 HTML 和 CSS 元素. Network 标签页:用于查看 HTTP ...

  4. CodeForces599D【数学】

    题意: 给出一个x,求有多少个矩阵中满足存在x个不同的正方形. 思路: (数学渣+推理渣) #include<bits/stdc++.h> using namespace std; typ ...

  5. HDU3478 【判奇环/二分图的性质】

    题意: 给你一幅图,给你一个起点,然后问你存不存在一个时刻,所有点可以在那个时刻到达. 思路: 这幅图首先是联通的: 如果出现奇数环,则满足在某一时刻都可能到达: 然后判断奇数环用二分图性质搞也是神奇 ...

  6. CF960G Bandit Blues(第一类斯特林数)

    传送门 可以去看看litble巨巨关于第一类斯特林数的总结 设\(f(i,j)\)为\(i\)个数的排列中有\(j\)个数是前缀最大数的方案数,枚举最小的数的位置,则有递推式\(f(i,j)=f(i- ...

  7. 【OpenJ_Bailian - 4110】圣诞老人的礼物-Santa Clau’s Gifts (贪心)

    圣诞老人的礼物-Santa Clau’s Gifts  Descriptions: 圣诞节来临了,在城市A中圣诞老人准备分发糖果,现在有多箱不同的糖果,每箱糖果有自己的价值和重量,每箱糖果都可以拆分成 ...

  8. java模拟进程调度之模拟抢占试多级轮转调度(附带可视化解决方案)

    1.简介一下多级轮转调度 多级轮转调度是一种提高调度效率的解决方案,简单讲就是讲要执行的程分成几个优先级的列队即例如三个,第一个列队分10个时间片,第二个列队分配1000个时间片,第三个列队表示100 ...

  9. 【Netty】利用Netty实现心跳检测和重连机制

    一.前言 心跳机制是定时发送一个自定义的结构体(心跳包),让对方知道自己还活着,以确保连接的有效性的机制.   我们用到的很多框架都用到了心跳检测,比如服务注册到 Eureka Server 之后会维 ...

  10. PAT甲级——1118 Birds in Forest (并查集)

    此文章 同步发布在CSDN:https://blog.csdn.net/weixin_44385565/article/details/89819984   1118 Birds in Forest  ...