Day06_nginx及反向代理、共享存储nfs

一.nginx服务

  1. nginx服务
  2. 装nginx前线装epel-release:yum install epel-release -y(基于这个源安装nginx)
  3. 安装nginx:yum install nginx -y
  4. 修改配置文件:vim /etc/nginx/nginx.conf
    • 其中access_log 为运行日志
    • server 下的root 为网站下的根目录 例如:/usr/share/nginx/html
    • cd到root下 vim打开 index.html文件,用户访问时会下载此文件
    • url 统一资源定位符:例如 http://192.168.1.1:80 定位到软件
    • uri 统一资源标识符:例如 http://192.168.1.1:80/a/b/c.txt 定位到文件 文件路径为:/usr/share/nginx/html/a/b/c.txt
  5. 编辑index.html文件,并重启 systemctl [re]start nginx
    • systemctl status nginx 为检查服务状态
    • systemctl disable nginx 为开机不启动
    • systemctl enable nginx 为开机启动
    • systemctl reload nginx 为重新加载,读取配置文件
  6. 关闭防火墙:systemctl stop firewalld(或者iptables -F 清理防火墙规则)
    • 因自己实验多次仍会出现权限问题,多方查阅,有以下处理方法
    • SELinux设置为开启状态(enabled)的原因
      首先查看本机SELinux的开启状态,如果SELinux status参数为enabled即为开启状态
      /usr/sbin/ sestatus -v
      或者使用getenforce命令检查

      • 找到原因了,如何关闭 SELinux 呢

        1. 临时关闭(不用重启)
          setenforce 0
        2. 修改配置文件 /etc/ selinux/config,将SELINUX=enforcing改为SELINUX=disabled
          vi /etc/ selinux/config
          注意:修改配置文件需要重启系统 reboot,之后再关闭防火墙即可。
  7. 即可访问
  8. nginx.conf文件
    1. location其中的"/"代表自定义的根目录,其中的{}可自己定义,例如 root /var/www/html;(注意以分号结尾)
    2. log_format 为日志格式

二.nginx反向代理

  1. 正向代理和反向代理:

    • 代理:A访问B,A把自己的请求让C代理,C去访问B
    • 正向代理:A明确地知道自己的代理C的存在,A明确地指定自己的代理地址是C,让C去访问B,拿到结果再给A,通常用来FQ
    • 反向代理:用户请求发给nginx后,由nginx负载给代理的机器,拿到结果,再由nginx返回给客户端(如此,nginx便把一堆自己代理的机器隐藏到后端,外界访问的就是nginx)
  2. 负载均衡
    • round-robin:轮询,依次给代理服务器;
    • least-connected:最小链接数;
    • ip-hash:根据IP地址(与会话保持有关);
  3. 反向代理配置
    引用:nginx反向代理

    1. 负载均衡设置

      • http中的upstream :定义nginx需要管理的一组机器,组名为myapp1,server为代理服务器
      • location /中 修改为:proxy_pass http://myapp1;
    2. 最小连接数设置
      • 只需在server上一行 增加least_conn; 即可
    3. ip-hash设置
      • 只需在server上一行 增加ip_hash; 即可
    4. 权重设置
      • 需在server此行 增加weight=number 即可(number为权重为几次)

三.共享存储nfs

  1. 安装

    1. 需先安装rpc协议软件包及nfs软件包:yum install rpcbind nfs-utils -y
  2. 配置
    1. 配置文件为 /etc/exports (这个文件是NFS的主要配置文件,不过系统并没有默认值,所以这个文件不一定会存在,可能要使用vim手动建立,然后在文件里面写入配置内容)
    2. /etc/exports文件内容格式:
      • [客户端1 选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)]
      • 输出目录:输出目录是指NFS系统中需要共享给客户机使用的目录;
      • 客户端:客户端是指网络中可以访问这个NFS输出目录的计算机
      • 访问权限选项
        • 设置输出目录只读:ro
        • 设置输出目录读写:rw
      • 具体请见 第19单元NFS服务
        引用:nfs服务
    3. 修改配置
      • [[email protected] nginx]# cat /etc/exports
      • /share 192.168.31.0/24(rw,sync,fsid=0)
        • 192.168.31.0/24:指定子网中的所有主机
        • sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性
    4. 文件存储和块存储及对象存储
      • 块存储: 硬盘
      • 文件存储: 直接可以创建 增删改查
      • 对象存储: 创建 更改需要加载到本地 再上传
    5. 开权限(nfs开启了w权限还不行,others还需要对/share目录有w权限)
      • chmod -R o+w /share
    6. 开机启动
      1. systemctl enable nfs-server.service
      2. systemctl enable rpcbind.service
    7. 启动服务
      1. systemctl start rpcbind.service(必须先启动)
      2. systemctl start nfs-server.service
    8. 确认nfs服务器启动成功
      1. rpcinfo
      2. exportfs
      3. showmount -e #默认查看自己共享的服务,前提是要DNS能解析自己,不然容易报错
      4. showmount -a #显示已经与客户端连接上的目录信息
  3. 客户端配置
    1. yum install rpcbind nfs-utils -y:安装软件
    2. systemctl enable rpcbind.service && systemctl start rpcbind.service:开机启动
    3. showmount -e NFS服务器IP #检查 NFS 服务器端是否有目录共享
    4. mount -t nfs NFS服务器IP:/share /var/www/html/ :挂载
  4. 测试
    • 基于nginx的负载均衡配置,打开后端被代理服务的access.log日志,tail -f access.log来观察访问,访问LB刷新页面发现内容保持一致,但是每台被代理的机器的access.log日志都有新的内容进来
时间: 2024-10-02 17:27:31

Day06_nginx及反向代理、共享存储nfs的相关文章

共享存储nfs

NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种, 它允许网络中的计算机之间通过TCP/IP网络共享资源.在NFS的应用中, 本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样. 一.基础环境 1)服务端10.1.10.117 erh0 7.8(debian) 3.2.0-4-amd64 2)客户端10.1.10.160 eth0 5.0.10(debian) 2.6.26-2-amd64 二.安装nfs

linux-nginx服务nfs服务nginx反向代理三台web

一:nginx服务 1.二进制安装nginx包 [[email protected] ~]# systemctl disable firewalld  #关闭Firewalls自启动 Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service. [[ema

Shell脚本-自动化部署反向代理、WEB、nfs

部署nginx反向代理三个web服务,调度算法使用加权轮询(由于物理原因只开启两台服务器) AutoNginxNfsService.sh #/bin/bash systemctl status nginx if(($?==4)) then yum install -y nginx if(($?==0)) then #echo 'Yes!' systemctl start nginx if(($?==0)) then echo "Congratulations!! Nginx start OK!!

十五.编写自动脚本部署web,反向代理,nfs服务

一.自动部署web,反向代理,加权轮询: 1.编写脚本自动部署反向代理,web,nfs. #!/bin/bash #author/dengsiyuan function nginx_check()  #配置nginx { ngx_status= 'ps aux|grep -v grep|grep -c nginx' #取运行nginx进程的进程数 if [ -f /etc/nginx/nginx.conf ];then   #判断是否存在正规文件nginx.conf以判断nginx是否安装 ec

Nginx反向代理,负载均衡,redis session共享,keepalived高可用

相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此处可搭建服务器集群. redis服务器一台,用于session的分离共享. nginx主服务器:192.168.50.133 nginx备服务器:192.168.50.135 tomcat项目服务器1:192.168.50.137 tomcat项目服务器2:192.168.50.139 redis服

十四.nginx,web,反向代理,调用加权轮询算法,nfs服务

一.部署nginx反向代理web服务,调度算法使用加权轮询: 1.首先配置一个nginx服务端,三个web客户端.用vmware 新建虚拟机完成,并用xshell连接 2.在服务端和3个web客户端都下载epel_release 和nginx软件包; yum install epel_release -y ;  yum install nginx -y 3.关闭服务端和web客户端的防火墙,在服务端和web客户端都开启nginx软件包并且查看是否开启; 如未开启重新启动nginx: system

Apache 2.x+jboss6.1反向代理session共享问题设置

2016年8月4日,第一次开笔写博客园,今天在公司解决了一个问题. apache+jboss做负载均衡的问题一直困扰了很久.问题描述如下,使用apche做反向代理转发给3台jboss 的app,app有session会话.为了跳转不丢失session会话,需要配置.经过几天的寻找,大概有两种方法: 1.jboss上配置session共享 2.apache上将请求转发至已访问过的链路 Session处理另一方面就是多个业务逻辑单元之间的Session处理,处理方式有两种,一种是Session st

NFS为lamp提供共享存储实践

本文旨在实现NFS为lamp环境web站点提供共享存储. 1.实验需求 (1)nfs server导出/data/application/web,在目录中提供wordpress; (2)nfs client挂载nfs server导出的文件系统,至/var/www/html; (3)客户端1(lamp)部署wordpress,并让其正常访问,要确保正常发文章,上传图片. (4)客户端2(lamp),挂载nfs server导出的文件系统至/var/www/html,验证其wordpress是 否

nginx和tomcat实现反向代理、负载均衡和session共享

这类的文章非常多,nginx和tomcat实现反向代理.负载均衡实现非常easy,能够參照http://blog.csdn.net/liuzhigang1237/article/details/8880752 但tomcat借助memcache实现session共享非常麻烦(和jar的版本号有关),这里做个记录. 我的tomcat的版本号是7.0.53,须要加入的jar是: couchbase-client-1.2.0 javolution-5.4.3.1 Memcached-Java-Clie