一步步搭建分布式应用--配置静态ip和连外网+fastdfs整合nginx搭建分布式文件服务器+修改虚拟机主机名称,并配置主机域名解析

VirtualBox配置静态ip和连外网

在这里插入图片描述
这里我用的是桥接网卡的方式,只启动了一个网卡。使用桥接网卡,虚拟机即能连外网,又能ping通本地主机。缺点是ip是动态分配的,每次开机重启,或外网IP变化,虚拟机的ip就会跟着变化。又由于我用这个东西主要是学分布式的,动态ip比较不方便。所以接下来讲讲如何配置静态IP
在这里插入图片描述

  1. 使用ip addr 查看要配置静态ip的网卡名(lo是回环地址,不是我们想要的),可以看到enp0s3是动态分配ip的网卡
    在这里插入图片描述
  2. yum install net-tools安装网络工具,并使用netstat -rn 查看linux的网关(其实取ip的前三个字段.1就是网关了)
    在这里插入图片描述
  3. vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 修改该网卡的配置信息
    在这里插入图片描述
  4. service network restart 重启你的网络。这样静态IP就配置好了,可使用ip addr查看(此时虚拟机ping www.baidu.com是ping不同的。)
  5. vi /etc/resolv.conf 添加dns服务器,使其支持dns域名解析,从而使虚拟机能够连接外网(192.168.3.1是自己虚拟机的网关,每台电脑的可能不一样)
# Generated by NetworkManager
nameserver 192.168.3.1

在这里插入图片描述
6. 重启服务器

修改虚拟机主机名称,并配置主机域名解析

  1. hostname查看主机名,hostnamectl set-hostname yourSelfHOstName()
    在这里插入图片描述
  2. vi /etc/hosts 配置dns解析
    在这里插入图片描述

在这里插入图片描述

关闭防火墙

为了使我们的网络程序能够被外界访问到,我们需要关闭防火墙 (1. 临时关闭) (2. 永久关闭)

systemctl stop firewalld.service       

systemctl disable firewalld.service              
 

查看防火墙的状态

service firewalld.service status

配置java环境变量

解决了虚拟机的网络问题,接下来就是相关软件的安装问题了

  • 上传jdk的tar.gz压缩包到linux,使用tar zxvf jdk1.8命令解压
  • vi /etc/profile (文件的末尾追加如下内容—相关jdk的位置请自行替换)
JAVA_HOME=/opt/jdk1.8.0_152   #jdk存放位置     
JRE_HOME=/opt/jdk1.8.0_152/jre    #jre存放位置 
PATH=$PATH:$JRE_HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export JRE_HOME
export PATH
  • source /etc/profile 使配置文件生效
  • java -version 测试是否安装成功

fastdfs整合nginx搭建分布式文件服务器

  1. 上传图中的四个文件到/opt目录下
    在这里插入图片描述
  2. 安装相关的软件编译,运行依赖
yum install gcc-c++ -y
yum -y install zlib zlib-devel pcre pcre-devel gcc gcc-c++ openssl openssl-devel libevent libevent-devel perl unzip net-tools wget
yum -y install libevent
yum install perl*

安装Libfastcommon

  1. 安装Libfastcommon
cd /opt/libfastcommon-1.0.7
./make.sh
./make.sh install
cp /usr/lib64/libfastcommon.so /usr/lib/

安装FastDFS

  1. 安装FastDFS
tar zxvf /opt/FastDFS_v5.05.tar.gz -C /usr/local/
cd /usr/local/FastDFS/
./make.sh
./make.sh install
cp  /usr/local/FastDFS/conf/*  /etc/fdfs/
mkdir -p /home/yuqing/fastdfs

5.配置fastdfs的traketserver的ip

vim /etc/fdfs/storage.conf
  1. 添加fastdfs到service服务中
cd /usr/local/FastDFS/
cp restart.sh  /usr/local/bin/
cp stop.sh  /usr/local/bin/
cd /etc/init.d/
 chkconfig --add fdfs_trackerd
 chkconfig --add fdfs_storaged

vim /etc/init.d/fdfs_storaged

将PRG=/usr/local/bin/fdfs_storaged改成
PRG=/usr/bin/fdfs_storaged (将此处的local去掉)
在这里插入图片描述
vim /etc/init.d/fdfs_trackerd
操作同上(只改prg的local,别的local不动)
在这里插入图片描述

  1. 配置fastdfs的server对应的ip以及数据/日志的存放路径
vim /etc/fdfs/storage.conf              ### 编辑这个文件就可以了,修改里面的trackver_server的ip        

### vim /usr/local/FastDFS/conf/storage.conf

vim /etc/fdfs/client.conf             ### 编辑客户端配置文件的服务器的ip地址。很重要,很重要
  1. 启动fastfds服务
service fdfs_storaged start
service fdfs_trackerd start

如果报错:
在这里插入图片描述
解决方案见文末

  1. 上传测试
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /home/lmj/tangyan.jpg

安装fast_nginx_module

  1. 解压配置fast_nginx_module
tar zxvf fastdfs-nginx-module_v1.16.tar.gz
cd /opt/fastdfs-nginx-module/src
vim config

运行到这里千万要注意:
原来的:CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"

现在的:CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

/*就是要去掉这一行的local,别的local不要去,别的不动就好了/
在这里插入图片描述

cp mod_fastdfs.conf /etc/fdfs/
vim /etc/fdfs/mod_fastdfs.conf
mkdir -p /homeyuqing/tmp
mkdir -p /var/temp/nginx/client

安装nginx

  1. 解压nginx到/usr/local/
cd /opt
tar zxvf nginx-1.12.2.tar.gz -C  /usr/local/
cd /usr/local/nginx-1.12.2/

./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--add-module=/opt/fastdfs-nginx-module/src

在这里插入图片描述

或者单独运行这条语句也行 ./configure --add-module=/opt/fastdfs-nginx-module/src/

make && make install
  1. 配置nginx反向代理/请求转发
vim /usr/local/nginx/conf/nginx.conf

内容如下:
在这里插入图片描述

 location /group1/M00/ {
           ngx_fastdfs_module;
        }
  • 原来的是:
    location / {
    root html;
    index index.html index.htm;
    }
  1. nginx相关命令
/usr/local/nginx/sbin/nginx                         启动
/usr/local/nginx/sbin/nginx -s reload              重启动
/usr/local/nginx/sbin/nginx -s stop                 停止
  1. 浏览器访问 http://192.168.3.203:8888/group1/M00/00/00/wKgDy11pSfqAU-8yAALLQJh-5qk800_big.jpg 测试(follow3节点正常)

安装过程中出现的错误和解决方案

正常启动是这样的,nginx有两个进程
在这里插入图片描述
但是由于我在编译安装nginx时,加入了fastdfs-nginx-module模块,但这个模块我在配置时又出了一些问题( ./configure --add-module=/opt/fastdfs-nginx-module/src/),所以启动失败的情况是这样的在这里插入图片描述
这样它会导致浏览器请求nginx是一直处于响应等待状态,浏览器左上角一直在转圈。能访问到服务,但却一直处于等待。

  • 解决办法1:
    删除fastdfs-nginx-module模块,重新编译安装。执行如下命令即可
cd /usr/local/nginx-1.12.2/
./configure
make && make install

然后重启nginx就可以了(这样能解决nginx不能用的问题,但是nginx无法结合fastdfs完成分布式文件存储)

  • 解决办法2:
    查看原因:
    在这里插入图片描述
    vim /etc/init.d/fdfs_storaged
    在这里插入图片描述

将第6步的
cd /usr/local/FastDFS/
cp restart.sh /usr/local/fdfs/
cp stop.sh /usr/local/fdfs/
改成

cd /usr/local/FastDFS/
cp restart.sh  /usr/local/bin/
cp stop.sh  /usr/local/bin/

然后启动
service fdfs_storaged start
service fdfs_trackerd start

  • 解决方案3—ginx和fastdfs整合后nginx没有worker节点以及nginx无法正常启动问题
    当使用nginx源码编译安装的时候
    注意当nginx和fastdfs整合的时候,nginx的nginx配置文件需要修改,这时候会有两个nginx.conf。我们会认为nginx会读取的是/usr/local/nginx/conf的文件,其实不是!坑!
    这个时候读取的时解压后nginx的目录,读取的是解压后的nginx下的conf目录下的nginx.conf,不要忘记修改这个文件!
    如果这个文件有错误,启动不了worker节点
    在这里插入图片描述
    查看错误日志:发现如下:
    在这里插入图片描述
    conf file “/etc/fdfs/mod_fastdfs.conf”, host “192.168.3.304” is invalid
    我的ip是192.168.3.204,但我却不小心配成了304,所以更改就好了

可能出错的配置文件

vim /usr/local/nginx/logs/error.log ###根据报错日志里面的信息定位错误到下面配置文件里

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

vim /usr/local/nginx-1.12.2/conf/nginx.conf

vim /etc/init.d/fdfs_storaged

vim /etc/init.d/fdfs_trackerd

vim /etc/fdfs/storage.conf ### 编辑这个文件就可以了,修改里面的trackver_server的ip

vim /opt/fastdfs-nginx-module/src/config

vim /etc/fdfs/mod_fastdfs.conf

vim /etc/init.d/fdfs_storaged

vim /etc/fdfs/mod_fastdfs.conf 记得将里面的url_hava_group_name等号后的值改成true
(已经修复上述bug)

  • [emerg] open() “/var/run/nginx/nginx.pid” failed (2: No such file or directory)处理
    mkdir -p /var/run/nginx
    在var/run/下建立一个文件夹命名为nginx,然后重启
    修改:

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

#user nobody;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;(把#删除)

然后:wq保存退出

在/usr/local/nginx目录下建立logs文件夹,把/var/run/nginx/nginx.pid这里面的这个nginx.pid拷贝到这个logs文件夹下面,

在这里插入图片描述

然后把logs这个文件夹在conf下也拷贝一份

然后:

[root@localhost ~]# chmod 755 logs

[root@localhost ~]# chmod 755 nginx.pid

[root@localhost ~]# /usr/local/nginx/sbin/nginx

[root@localhost ~]# /usr/local/nginx/sbin/nginx -s reload

记录一下:
vim /etc/fdfs/storage.conf
在这里插入图片描述
在这里插入图片描述
vim /etc/fdfs/mod_fastdfs.conf
在这里插入图片描述
在这里插入图片描述

启动nginx,但是worker进程挂掉了,报错: ERROR - file: …/storage/trunk_mgr/trunk_shared.c, line: 177, “No such file or directory” can’t be accessed, error info: /opt/fdfs

这个错误是因为我配置了/opt/fdfs,但是我却没有创建这个目录,所以使用命令 mkdir /opt/fdfs创建即可

一切都ok,但就是访问报404,ERROR - file: /opt/fastdfs-nginx-module/src/common.c, line: 870, file: /opt/fastdfs/fdfs_storage/data/00/00/wKgDyl1qPxKAZUc_AALLQJh-5q

本地目录是有个文件的 ls /opt/fastdfs/fdfs_storage/data/00/00/
使用命令修改权限即可

  • chmod 777 /opt/fastdfs/fdfs_storage/data/00/00/

附一些网络命令

lsof -i:8200 查看端口占用情况

启动前端工程

命令行进入 E:\WORK_SPACE\Idea_workspace\分布式\gmall0106\front\gmall-admin
然后 npm run dev在这里插入图片描述
在这里插入图片描述
http://127.0.0.1:8888/#/dashboard

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值