Nginx初识2

## Ngin初识2

  • 实验环境

    • nginx server:Centos7 192.168.10.124

    • apache server:Centos7 192.168.10.121

    • LAMP server:Centos7 192.168.10.121

    注:以下实验为Nginx初识的后续

配置防盗链

  • 修改nginx配置

    image-20191112135008952

    image-20191112134837080

  • 在指定目录添加测试页

    image-20191112135023263

    image-20191112135228319

  • 访问查看
    image-20191112134917616

  • 在另一台主机搭建apache服务

    image-20191112133356087

  • 修改配置文件

    image-20191112135040393

    image-20191112133548211

  • 添加盗链主页

    image-20191112134951374

    image-20191112135414123

  • 启动服务

    image-20191112135339920

  • 测试盗链效果

    image-20191112135453878

  • 在nginx服务器 添加防盗链规则

    image-20191112135522917

    image-20191112140103186

  • 检查是否存在语法错误

    image-20191112140129134

  • 重载服务

    image-20191112140151768

  • 测试防盗链是否生效(注:可能会因为浏览器缓存的原因导致图片无法加载,打开新的选项卡再次加载即可)

    image-20191112144013481

访问日志格式配置

  • 修改配置文件

    image-20191112145801707

        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    ...
        access_log  logs/host.access.log  main;
    ...
    #log_format  main 定义日志格式内容 main为指定的格式名称,可以添加多个,但名称必须唯一
    #access_log 指定日志的路径/名称 格式名
    #格式中可以使用的参数
    #$remote_addr             客户端地址 
    #$remote_user             客户端用户名称  
    #$time_local              访问时间和时区       
    #$request                 请求的URI和HTTP协议   
    #$http_host               请求地址,即浏览器中你输入的地址(IP或域名)
    #$status                  HTTP请求状态        
    #$upstream_status         upstream状态                    
    #$body_bytes_sent         发送给客户端文件内容大小             
    #$http_referer            url跳转来源              
    #$http_user_agent         用户终端浏览器等信息                          
    #$ssl_protocol            SSL协议版本                            
    #$ssl_cipher              交换数据中的算法                             
    #$upstream_addr           后台upstream的地址,即真正提供服务的主机地址
    #$request_time            整个请求的总时间                           
    #$upstream_response_time  请求过程中,upstream响应时间
    
  • 创建日志文件

    image-20191112145419045

    image-20191112145901861

  • 测试

    image-20191112150003527

  • 查看生成日志

    image-20191112150028984

网页优化

  • 超时设置

    image-20191112150133284

    image-20191112151154832

        keepalive_timeout  60; #长连接超时时间,超过该时长需要重新建立连接
        keepalive_requests 100; #单个长连接能够请求的最大资源数
        keepalive_disable none; #指定禁用长连接的用户代理类型
        client_header_timeout 30; #发送请求头超时时间
        client_body_timeout 50; #请求体读超时时间
        send_timeout 60; #发送超时时间
    
    

    image-20191112152821022

    image-20191112152223851

  • 开启网页缓存

    image-20191112152356845

    image-20191112152852742

    expires 2d;
    #开启缓存,d表示天
    #语法:expires [time|epoch|max|off]
    #	epoch:指定“Expires”的值为 1 January,1970,00:00:01 GMT
    #	max:指定“Expires”的值为31 December2037 23:59:59GMT,"Cache-Control"的值为10年。
    #	-1:缓存立即过期。
    #	off:不启用缓存 默认
    #Cache-Control 表示缓存存活时长,单位秒
    #Expires 缓存时间
    

    image-20191112152826059

    image-20191112153255943

  • 网页压缩

    image-20191112152356845

    image-20191112155815306

        gzip  on; #启用压缩
        gzip_min_length 1k; #最小压缩文件大小
        gzip_buffers 4 32k; #压缩缓冲区 表示4个32k内存作为压缩结果流缓存
        gzip_http_version 1.1; #压缩版本
        gzip_comp_level 6; #压缩比,最小为1,最大为9,越大压缩的越小,处理速度越慢
        gzip_types text/css text/xml application/javascript image/png; #设置压缩类型
        gzip_vary on; #允许缓存服务器缓存经过压缩的页面
    #gzip_types支持MIME类型
    

    image-20191112152826059

    image-20191112160534703

  • 服务版本号隐藏

    image-20191112152356845

    image-20191112160649617

    image-20191112152826059

    image-20191112160801437

LNMP搭建

  • 使用默认的yum源安装epel源(需要连接外网)

    image-20191112160918351

    image-20191112161226871

  • 安装nginx

    image-20191112162252923

  • 修改fastcgi相关配置

    image-20191112162518110

    image-20191112163608898

            location ~ \.php$ { #匹配访问php的请求
                root "html"; #指定根目录,
                fastcgi_pass        127.0.0.1:9000; #将请求转给fpm处理,fpm端口为9000
                fastcgi_index       index.php; #主页名
                fastcgi_param        SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name; #
                include     fastcgi_params;
            }
    
    
  • 设置nginx开机自启

    image-20191112163656547

  • 安装php与Mariadb

    image-20191112164025814

     yum install php mariadb mariadb-server mysql-devel php-mysql php-cgi php-mbstring php-gd php-fpm
    
  • 安装依赖组件

    image-20191112164248110

    yum -y install autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers
    
    
  • 修改fpm运行时使用的用户和组

    image-20191112164414174

    image-20191112164448411

  • 重启nginx

    image-20191112164559771

  • 启动Mariadb和php-fpm

    image-20191112164657453

  • 创建mariadb用户

    image-20191112165041450

    image-20191112170238124

  • 创建测试页

    image-20191112165211787

    image-20191112170024846

    image-20191112170041430

    image-20191112170411431

    <?php
            $link=mysqli_connect('192.168.10.124','root','12345');
            if($link)
                    echo "ok";
            else
                    echo "not ok";
    ?>
    
    

    image-20191112170500787

  • 创建站点所用数据库及用户

    image-20191112170747695

  • 安装Skyyuc站点

    • 将安装包上传至服务器并解压缩

      image-20191112171236914

      image-20191112171149068

      image-20191112171314562

    • 将解压包中的src目录复制到/usr/share/nginx/html目录下

      image-20191112171455054

    • 设置权限

      image-20191112171923586

    • l浏览器访问安装

      image-20191112171700862

      image-20191112171959801

    • 若未正确分配权限则会出现如下界面

      image-20191112171747376

      image-20191112184133652

      image-20191112184207231

      image-20191112184256226

      管理员界面: http://192.168.10.124/src/admincp/index.php

      image-20191112184410645

    • 删除insatll目录

      image-20191112184451453

Nginx与Apache实现动静分离

  • 另外搭建一台LAMP服务器

    • 安装http服务

      image-20191112191650050

    • 安装php与Mariadb服务

      image-20191112191835833

    • 安装依赖包

      image-20191112192042997

    • 若提示如下内容则需要按安装epel源

      image-20191112192007180

      image-20191112192427736

    • 修改http服务配置

      image-20191112192744853

      image-20191112192810410

      image-20191112192840652

    • 编写测试主页

      image-20191112193821825

      image-20191112193809535

    • 启动服务

      image-20191112193111811

    • 测试

      image-20191112193838867

    • 使用模板配置Mariadb

      image-20191112193959381

    • 启动数据库

      image-20191112194035886

    • 修改数据库账号密码

      image-20191112194236746

    • 重启数据库

      image-20191112194314322

    • 修改测试页

      image-20191112194343997

      image-20191112195054659

    • 测试

      image-20191112195205983

    • 创建论坛数据库和管理用户

      image-20191112195609913

    • 将discuz论坛上传至服务器,并解压缩

      image-20191112195759302

      image-20191112195823789

    • 将解压出的upload存放到/var/www/html/目录下,并重命名为discuz

      image-20191112200008083

    • 修改权限

      image-20191112200047108

    • 浏览器安装

      image-20191112200131356

      image-20191112200154008

      image-20191112200209526

      image-20191112200906924

    • 安装完成

      image-20191112201000598

      image-20191112201020036

      image-20191112201047189

  • 将nginx服务器中的php动态请求 转发给LAMP服务器处理

    • 修改配置

      image-20191112201232924

      image-20191112201921246

  • 重启服务

    image-20191112201943641

    • 测试,所有php页面请求都会发送至192.168.10.121的LAMP服务进行处理

      image-20191112202207161

      image-20191112202235465

      image-20191112202058331

posted @ 2019-11-12 20:51  MirL  阅读(221)  评论(0编辑  收藏  举报