zoukankan      html  css  js  c++  java
  • 搭建一套LNMP架构的博客项目

    作业

    1.恢复快照
    2.搭建两台LNMP
    3.数据库独立
    4.文件共享
    5.文件实时备份
    6.代理一台机器
    

    一 。环境准备

    二 。需要做的步骤

    1.首先搭建两台LNMP架构的服务器(web01的部署)
    	1)先安装nginx服务
    	2)统一用户和用户组
    	3)安装php解释器环境
    	4) 修改nginx和php启动用户
    	5)修改nginx和php上传文件大小
    	6)启动nginx服务和php服务并加入开机自启
    	7)检查启动
    	8)创建博客项目目录
    	9)上传博客项目代码并授权
    	10)配置网站站点
    	11)重启nginx服务并测试网站
    	
    	12)web02 安装nginx服务和php解释器
    	13)创建统一用户和组
    	14)修改nginx启动用户和上传大小
    	15)修改php启动用户和组以及上传文件大小
    	16)推送blog项目代码和nginx站点配置
    	17)启动nginx和php并加入到开机自启
    	18) 重启nginx服务并测试网站
    	
    2.数据库独立(db01服务器)
    	1) 安装数据库mariadb
    	2)启动数据库检查是否启动并加入到开机自启
    	3)修改数据库账号密码
    	4)创建数据库给blog项目使用
    	5)创建远程账号允许链接数据库
    	
    3.文件共享(nfs服务器配置)
    	0)下载nfs服务
    	1)创建目录供挂载使用
    	2)设置/etc/exports配置允许其他服务器挂载
    	3)创建统一用户
    	4)启动nfs服务
    	5)配置web01和web02挂载nfs服务器
    	
    	
    4.文件实时备份(backup服务器)
    	1)创建备份数据目录/data并授权
    	2) 创建统一用户和组
    	3)下载rsync服务
    	4) 配置rsync项目
    	5)启动rsync服务并加入到开机自启
    	
    	6) 配置nfs服务端
        7)下载rsync和inodetify
        8)创建统一用户和组
        9)安装sersync服务
        10)配置sersync服务
        11)启动sersync服务
        
        
    5.代理一台机器(id01服务器)
    	1)下载nginx服务
    	2) 配置nginx服务站点
    	3)启动nginx服务
    
    

    三。开始实战搭建

    1.首先搭建两台LNMP架构的服务器(web01的部署)
    1)先安装nginx服务

    [root@web01 ~]# yum install -y nginx
    
    

    ​ 2)统一用户和用户组

    [root@web01 ~]# groupadd  www -g 666
    [root@web01 ~]# useradd www -u 666 -g 666
    
    

    ​ 3)安装php解释器环境

    # 上传php服务文件
    [root@web01 /package]# rz
    [root@web01 /package]# ll
    total 19424
    -rw-r--r-- 1 root root 19889622 Aug 26 10:08 php.tar.gz
    
    # 解压并安装php服务
    [root@web01 /package]# tar xf php.tar.gz
    [root@web01 /package]# yum localinstall -y *.rpm
    
    

    ​ 4) 修改nginx和php启动用户

    [root@web01 ~]# vim /etc/nginx/nginx.conf 
    user www;
    
    [root@web01 ~]# vim /etc/php-fpm.d/www.conf 
    user = www
    group = www
    
    
    

    ​ 5)修改nginx和php上传文件大小

    [root@web01 ~]# vim /etc/php.ini 
    upload_max_filesize = 200M
    post_max_size = 200
    
    [root@web01 ~]# vim /etc/nginx/nginx.conf
    client_max_body_size 200M;
    

    ​ 6)启动nginx服务和php服务并加入开机自启

    [root@web01 ~]# systemctl start nginx 
    [root@web01 ~]# systemctl start php-fpm.service 
    
    [root@web01 ~]# systemctl enable nginx
    Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
    [root@web01 ~]# systemctl enable php-fpm.service 
    Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
    
    

    ​ 7)检查启动

    [root@web01 ~]# netstat -lntp
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
    tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      7977/php-fpm: maste 
    tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      5514/rpcbind        
    tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      7928/nginx: master  
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      6798/sshd           
    tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      6949/master         
    tcp6       0      0 :::111                  :::*                    LISTEN      5514/rpcbind        
    tcp6       0      0 :::22                   :::*                    LISTEN      6798/sshd           
    tcp6       0      0 ::1:25                  :::*                    LISTEN      6949/master 
    
    

    ​ 8)创建博客项目目录

        
    [root@web01 ~]# mkdir /code/blog -p
    
    

    ​ 9)上传博客项目代码并授权

    [root@web01 /code/blog]# rz
    
    [root@web01 /code/blog]# ll
    total 4
    drwxr-xr-x 5 1006 1006 4096 Jan 11  2019 blog
    
    [root@web01 /code/blog]# chown -R www.www /code/
    [root@web01 /code/blog]# 
    
    

    ​ 10)配置网站站点

    [root@web01 /etc/nginx]# vim conf.d/linux.blog.com.conf
    systemctl restart nginx
    [root@web01 /code/blog]# vim /etc/nginx/conf.d/linux.blog.com.conf
    server {
            listen 80;
            server_name linux.blog.com;
            root /code/blog;
    
            location / {
                    index index.php;
            }
    
            location ~* .php$ {
                    fastcgi_pass 127.0.0.1:9000;
                    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                    include fastcgi_params;
            }
    }
    

    ​ 11)重启nginx服务并测试网站

    # 配置windows hosts文件
    c:/windows/system32/drivers/etc/hosts
    10.0.0.7 linux.blog.com
    

    ​ 12)web02 安装nginx服务和php解释器

    [root@web02 ~]# yum install -y nginx
    # 上传php服务文件
    [root@web02 /package]# rz
    [root@web02 /package]# ll
    total 19424
    -rw-r--r-- 1 root root 19889622 Aug 26 10:08 php.tar.gz
    
    # 解压并安装php服务
    [root@web02 /package]# tar xf php.tar.gz
    [root@web02 /package]# yum localinstall -y *.rpm
    

    ​ 13)创建统一用户和组

    [root@web02 ~]# groupadd www -g 666
    [root@web02 ~]# useradd www -u 666 -g 666
    
    
    

    ​ 14)修改nginx启动用户和上传大小

    [root@web02 ~]# vim /etc/nginx/nginx.conf 
    user www;
    client_max_body_size 200M;
    
    

    ​ 15)修改php启动用户和组以及上传文件大小

    [root@web02 ~]# vim /etc/php-fpm.d/www.conf 
    user = www
    group = www 
    
    [root@web02 ~]# vim /etc/php.ini 
    upload_max_filesize = 200M
    post_max_size = 200M
    
    
    

    ​ 16)推送blog项目代码和nginx站点配置

    # 打包blog项目和nginx配置
    [root@web01 ~]# tar czPf code.tar.gz /code
    [root@web01 ~]# tar czPf nginx.tar.gz /etc/nginx 
    
    # 推送到web02
    [root@web01 ~]# tar czPf code.tar.gz /code
    [root@web01 ~]# tar czPf ngnx.tar.gz /etc/nginx
    [root@web01 ~]# scp -r code.tar.gz ngnx.tar.gz 172.16.1.8:/root/
    
    # web02切换到跟目录解压包
    [root@web02 ~]# cd /
    [root@web02 /]# tar xf /root/code.tar.gz
    [root@web02 /]# tar xf /root/nginx.tar.gz
    
    
    

    ​ 17)启动nginx和php并加入到开机自启

    [root@web02 /]# systemctl start php-fpm.service 
    [root@web02 /]# systemctl enable  php-fpm.service 
    Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
    
    [root@web02 /]# systemctl start nginx
    [root@web02 /]# systemctl enable nginx
    Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
    
    
    1. 配置windows的hosts文件测试网站
    # 配置windows hosts文件
    c:/windows/system32/drivers/etc/hosts
    10.0.0.8 linux.blog.com
    

    2.数据库独立(db01服务器)
    1) 安装数据库mariadb

    [root@db01 ~]# yum install -y mariadb-server
    
    

    ​ 2)启动数据库检查是否启动并加入到开机自启

    [root@db01 ~]# systemctl start mariadb.service 
    [root@db01 ~]# systemctl enable mariadb.service 
    Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
    
    
    [root@db01 ~]# netstat -lntp
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
    tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      17505/mysqld        
    tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      6350/rpcbind        
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      6790/sshd           
    tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      6875/master         
    tcp6       0      0 :::111                  :::*                    LISTEN      6350/rpcbind        
    tcp6       0      0 :::22                   :::*                    LISTEN      6790/sshd           
    tcp6       0      0 ::1:25                  :::*                    LISTEN      6875/master         
    [root@db01 ~]# 
    
    
    

    ​ 3)修改数据库账号密码

    [root@db01 ~]# mysqladmin -uroot password '123456'
    
    

    ​ 4)创建数据库给blog项目使用

    [root@db01 ~]# mysql -uroot -p123456
    MariaDB [(none)]> create database blog;
    
    

    ​ 5)创建远程账号允许链接数据库

    MariaDB [(none)]> grant all on blog.* to blog@'172.16.1.%' identified by '123456';
    Query OK, 0 rows affected (0.00 sec)
    
    

    3.文件共享(nfs服务器配置)
    0)下载nfs服务

    [root@nfs ~]# yum install -y nfs-utils
    
    

    ​ 1)创建目录供挂载使用

    [root@nfs ~]# mkdir /data
    

    ​ 2)设置/etc/exports配置允许其他服务器挂载

    [root@nfs ~]# vim /etc/exports
    /data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
     
    

    ​ 3)创建统一用户

    [root@nfs ~]# groupadd www -g 666
    [root@nfs ~]# useradd www -u 666 -g 666
    
    [root@nfs ~]# chown -R www.www /data/
    
    
    

    ​ 4)启动nfs服务

    [root@nfs ~]# systemctl start nfs-server.service 
    [root@nfs ~]# systemctl enable nfs-server.service 
    
    # 检查配置能否被链接
    [root@nfs ~]# cat /var/lib/nfs/etab
    /data	172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=666,anongid=666,sec=sys,rw,secure,root_squash,all_squash)
    
    

    ​ 5)配置web01和web02挂载nfs服务器

    # 检查能否链接
    [root@web02 /]# showmount -e 172.16.1.31
    Export list for 172.16.1.31:
    /data 172.16.1.0/24
    
    
    # web02挂载nfs服务器
    [root@web02 /code/blog/wp-content]# mount -t nfs 172.16.1.31:/data ./uploads
    [root@web02 /code/blog/wp-content]# df -h
    Filesystem         Size  Used Avail Use% Mounted on
    /dev/sda3           19G  1.5G   18G   8% /
    devtmpfs           980M     0  980M   0% /dev
    tmpfs              991M     0  991M   0% /dev/shm
    tmpfs              991M  9.5M  981M   1% /run
    tmpfs              991M     0  991M   0% /sys/fs/cgroup
    /dev/sda1          497M  120M  378M  25% /boot
    tmpfs              199M     0  199M   0% /run/user/0
    172.16.1.31:/data   19G  1.3G   18G   7% /code/blog/wp-content/uploads
    
    # web01挂载nfs服务器
    [root@web01 /code/blog/wp-content]# mount -t nfs 172.16.1.31:/data ./uploads/
    [root@web01 /code/blog/wp-content]# df -h
    Filesystem         Size  Used Avail Use% Mounted on
    /dev/sda3           19G  1.6G   17G   9% /
    devtmpfs           980M     0  980M   0% /dev
    tmpfs              991M     0  991M   0% /dev/shm
    tmpfs              991M  9.5M  981M   1% /run
    tmpfs              991M     0  991M   0% /sys/fs/cgroup
    /dev/sda1          497M  120M  378M  25% /boot
    tmpfs              199M     0  199M   0% /run/user/0
    172.16.1.31:/data   19G  1.3G   18G   7% /code/blog/wp-content/uploads
    
    

    4.文件实时备份(backup服务器)
    1)创建备份数据目录/data

    [root@backup ~]# mkdir /data
    [root@backup ~]# 
    

    ​ 2) 创建统一用户和组

    [root@backup ~]# groupadd www -g 666
    [root@backup ~]# useradd www -u 666 -g 666
     
     # 授权
    [root@backup ~]# chown -R www.www /data
    [root@backup ~]# 
    

    ​ 3)下载rsync服务

    [root@backup ~]# yum install -y rsync
    
    

    ​ 4) 配置rsync项目

    [root@backup ~]# vim /etc/rsyncd.conf 
    
    uid = www
    gid = www
    port = 873
    fake super = yes
    use chroot = no
    max connections = 200
    timeout = 600
    ignore errors
    read only = false
    list = false
    auth users = rsync_backup
    secrets file = /etc/rsync.password
    log file = /var/log/rsyncd.log
    [data]
    comment = welcome to oldboyedu backup!
    path = /data
    
    # 创建密码文件并授权600
    [root@backup ~]# vim /etc/rsync.password
    rsync_backup:123456
    
    [root@backup ~]# chmod 600 /etc/rsync.password 
    [root@backup ~]# 
    

    ​ 5)启动rsync服务并加入到开机自启

    [root@backup ~]# systemctl start rsyncd
    [root@backup ~]# 
    

    ​ 6) 配置nfs服务端

    # 下载rsync和实时监控inotify-tools
    [root@nfs ~]# yum install -y rsync inotify-tools
    
    

    ​ 7)下载rsync和inodetify
    ​ 8)创建统一用户和组

    ​ 9)安装sersync服务

    [root@nfs ~]# rz
    
    [root@nfs ~]# ll
    total 712
    -rw-r--r-- 1 root root 727290 Aug 14 20:01 sersync2.5.4_64bit_binary_stable_final.tar.gz
    [root@nfs ~]# tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz -C /usr/local/
    
    [root@nfs /usr/local]# mv GNU-Linux-x86/ ./sersync
    
    

    ​ 10)配置sersync服务

    [root@nfs /usr/local/sersync]# vim confxml.xml 
    
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <head version="2.5">
        <host hostip="localhost" port="8008"></host>
        <debug start="false"/>
        <fileSystem xfs="false"/>
        <filter start="false">
            <exclude expression="(.*).svn"></exclude>
            <exclude expression="(.*).gz"></exclude>
            <exclude expression="^info/*"></exclude>
            <exclude expression="^static/*"></exclude>
        </filter>
        <inotify>
            <createFile start="true"/>
            <closeWrite start="true"/>
            <moveFrom start="true"/>
            <moveTo start="true"/>
            <attrib start="true"/>
            <modify start="true"/>
        </inotify>
    
        <sersync>
            <localpath watch="/data">
                <remote ip="172.16.1.41" name="data"/>
                <!--<remote ip="192.168.8.39" name="tongbu"/>-->
                <!--<remote ip="192.168.8.40" name="tongbu"/>-->
            </localpath>
            <rsync>
                <commonParams params="-artuz"/>
                <auth start="true" users="rsync_backup" passwordfile="/etc/rsync.password"/>
                <userDefinedPort start="false" port="874"/><!-- port=874 -->
                <timeout start="false" time="100"/><!-- timeout=100 -->
                <ssh start="false"/>
            </rsync>
            <failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once-->
            <crontab start="false" schedule="600"><!--600mins-->
                <crontabfilter start="false">
                    <exclude expression="*.php"></exclude>
                    <exclude expression="info/*"></exclude>
                </crontabfilter>
            </crontab>
           
    # 创建密码文件并授权
    [root@nfs /usr/local/sersync]# vim /etc/rsync.password 
    123456
    
    [root@nfs /usr/local/sersync]# chmod 600 /etc/rsync.password
    

    ​ 11)启动sersync服务

    [root@nfs /data]# /usr/local/sersync/sersync2 -dro /usr/local/sersync/confxml.xml 
    

    5.代理一台机器(id01服务器)
    1)下载nginx服务

    [root@id01 /etc/nginx/conf.d]# yum install -y nginx
    
    
    

    ​ 2) 配置nginx服务站点

    [root@id01 /etc/nginx/conf.d]# vim linux.blog.com.conf
    
    server {
            listen 80;
            server_name linux.blog.com;
    
            location / {
            proxy_pass http://172.16.1.7:80;
            proxy_set_header Host $http_host;
    
            }
    

    ​ 3)启动nginx服务

    [root@id01 /etc/nginx/conf.d]# systemctl start nginx
    
  • 相关阅读:
    在CSS里加下面任何一行代码都可以解决图片之间的间隙
    MasterPage Toolbar
    图解虚拟机VMware服务自动启动
    WSUS完全部署
    DIV全屏覆盖网页
    大型架构.net平台篇(WEB层均衡负载nginx)
    组策略设置及导出导入方法[附上设置好的组策略]
    如何設定定時關機?
    gridview获取当前行索引的方法
    no suject
  • 原文地址:https://www.cnblogs.com/xiaolang666/p/13583174.html
Copyright © 2011-2022 走看看