美文网首页运维大世界
第18章 网站服务

第18章 网站服务

作者: fe8478c7ba2a | 来源:发表于2018-04-19 21:19 被阅读6次
    概念
        前言
            UI的转变:B/S架构
        Web Server
            Nginx(Tengine)、Apache、IIS
                公司背景
        静态元素
            .html .img  .css  .swf  .mp4 
        动态元素
            .php .jsp .cgi .asp  SQL
        Web 中间件: 
            php: PHP-fpm、HHVM
            jsp: Tomcat、JBOSS、Resin、IBM WebSphere
        常见组合方式:
            LNMP (Linux + Nginx + MySQL + PHP) //php-fpm进程
            LAMP (Linux + Apache + MySQL + PHP) //php作为Apache的模块
            Nginx + Tomcat   //取代Apache与Tomcat结合,java
    
    静态站点
        Apache
            建议使用2.4及以上的版本
            
            
        Apache基础
            Apache: www.apache.org
            软件包: httpd
            服务端口: 80/tcp(http) 443/tcp(https,http+ssl)
            配置文件: /etc/httpd/conf/httpd.conf
            /etc/httpd/conf.d/*.conf
            /etc/httpd/conf.d/welcome.conf //默认测试页面
    
        安装Apache
            [root@apache ~]# yum -y install httpd
            [root@apache ~]# systemctl start httpd
            [root@apache ~]# systemctl enable httpd
    虚拟主机
            目的
                虚拟主机VirtualHost 
          作用:在一台物理服务器上运行多个网站 
            类型:
                    基于主机名
                    基于IP地址
                    基于端口号
            配置虚拟主机
                实现如下网站:
                www.a.org       /var/www/html/a.org     
                www.b.org       /b.org 
            注意关闭firewalld和selinux
            www.a.org:
                # mkdir /var/www/html/a.org 
            # vim /var/www/html/a.org/index.html 
    
       创建a.org的配置文件
            # vim /etc/httpd/conf.d/a.org.conf 
                        <VirtualHost *:80>
                        ServerName www.a.org
                         DocumentRoot /var/www/html/a.org
                        </VirtualHost>
    
            检测配置文件语法,重启服务
            # httpd -t 
            # systemctl restart httpd 
    
            注意:web客户机可以自建DNS,也可以HOSTs文件解析。
            测试:yum install -y elinks
                    elink www.a.org
                        www.b.org:
                            # mkdir /b.org 
            # vim /b.org/index.html 
    
            创建b.org的配置文件 
                        # vim /etc/httpd/conf.d/b.org.conf 
                        <VirtualHost *:80>
                           ServerName www.b.org
                          DocumentRoot /b.org
                        </VirtualHost>
    
                        <Directory "/b.org">
                           Require all granted
                        </Directory>
            检测配置文件语法,重启服务
            # httpd -t 
            # systemctl restart httpd 
            
            注意:域名解析。www.b.org
            测试:yum install -y elinks
        elink www.b.org
    

    动态站点

        HTTP Server:(测试LAMP)
            Apache
                建议使用2.4及以上的版本
                
                
            一、Apache基础
                Apache: www.apache.org
            软件包: httpd
            服务端口: 80/tcp(http) 443/tcp(https,http+ssl)
            配置文件: /etc/httpd/conf/httpd.conf
            /etc/httpd/conf.d/*.conf
            /etc/httpd/conf.d/welcome.conf //默认测试页面
    
            二、安装Apache
                                [root@apache ~]# yum -y install httpd
                        [root@apache ~]# systemctl start httpd
                        [root@apache ~]# systemctl enable httpd
            三、防火墙
                            [root@apache ~]# sed -ri '/^SELINUX=                        /cSELINUX=disabled' /etc/selinux/config 
                        [root@apache ~]# setenforce 0
                        [root@apache ~]# firewall-cmd --permanent --add-service=http
                        [root@apache ~]# firewall-cmd --permanent --add-service=https
                        [root@apache ~]# firewall-cmd --reload 
    
            四、网站主目录建立测试页
                1 建立静态页面。
                        [root@apache ~]# vim /var/www/html/index.html
                        1702test
                        请注意观察测试是否成功。
    
            2 建立动态页面。
                        [root@apache ~]# vim /var/www/html/2.php 
                              <?php
                              phpinfo();
                              ?>
            请观察测试是否成功,NO
            五、安装PHP
                之所以,测试不成功。是因为没有人解析动态语言。
    
                        [root@apache ~]# yum -y install php      //php作为Apache的模块 
    
            观察安装后的结果。
                        [root@apache ~]# ll /etc/httpd/modules/libphp5.so 
                        -rwxr-xr-x. 1 root root 4588368 Jun 24 2015 /etc/httpd/modules/libphp5.so
                        [root@apache ~]# ll /etc/httpd/conf.d/php.conf 
                        -rw-r--r--. 1 root root 691 Jun 24 2015 /etc/httpd/conf.d/php.conf
                        重新启动网站程序。调动php模块
                        [root@apache ~]# systemctl restart httpd
    
            请再次刷新页面。见下图。PHP语言被解析成功。
        
            六、安装数据库(mysql/Mariadb 
                
                        [root@apache ~]# yum -y install mariadb-server mariadb
                        [root@apache ~]# systemctl start mariadb.service 
                        [root@apache ~]# systemctl enable mariadb.service 
    
                  增强mysql。
                        [root@apache ~]# mysql_secure_installation //提升mariadb安全 [可选]
                                    Set root password? [Y/n] 
                                    New password: 123
                                    Re-enter new password: 123 
                                    手动测试账号密码。
                                    [root@apache ~]# mysql  -uroot  -p123 //登录mariadb测试
                                    MariaDB [(none)]> \q
    
                                    [root@apache ~]# rm -rf /var/www/html/*
                                    [root@apache ~]# vim /var/www/html/index.php
                                                <?php
                                                $link=mysql_connect('localhost','root','123');
                                                if ($link)
                                                echo "Successfuly";
                                                else
                                                echo "Faile";
                                                mysql_close();
                                                            ?>
    
                请思考。数据库是否可以连接成功。
                    测试结果: php无法连接mysql  。因为缺少php连接mysql的工具
            七、配置php-mysql,用来连接Mariadb
                配置php连接Mariadb
                                    [root@apache ~]# yum -y install php-mysql
                                    [root@apache ~]# php -m //查看php有哪些扩展
                                    [PHP Modules]
                                    mysql
                                    mysqli
                                    [root@apache ~]# systemctl restart httpd
    
                
            八、Apache基本配置
                
                            [root@tianyun ~]# vim /etc/httpd/conf/httpd.conf
                              ServerRoot "/etc/httpd"       //安装目录
                                    Listen 80                           //监听端口
                                    IncludeOptional conf.d/*.conf   //包含conf.d下的*.conf文件
                                    User apache         //运行Apache的用户
                                    Group apache        //运行Apache的用户组
                                    DirectoryIndex index.html                                   index.php       //设置默认主页,用一个。
                                    DocumentRoot        //站点默认主目录
    
            九、MPM优化(面试题)
                                        # prefork MPM //进程模式(稳定)
                                                <IfModule prefork.c>
                                                StartServers 6 //初始建立的进程数
                                                MinSpareServers 6 //最小空闲的进程数
                                                MaxSpareServers 15 //最大空闲的进程数
                                                ServerLimit 2000 //最大启动的进程数 默认256
                                                MaxClients 2000 //最大并发连接数  默认256 
                                                MaxRequestsPerChild                         4000 //每个子进程在其生命周期内允许响应的最大请求数,0不限制
                                    </IfModule>
    
                        # worker MPM //线程模式(高效)
                                    <IfModule worker.c>
                                    StartServers 2 //初始建立的进程数
                                    ThreadsPerChild 50 //每个进程建立的线程数
                                    MinSpareThreads 100 //最小空闲的线程数
                                    MaxSpareThreads 200 //最大空间的线程数
                                    MaxClients  2000 //最大的并发访问量(线程)
                                    MaxRequestsPerChild 0 //每个子进程在其生命周期内允许响应的最大请求数,0不限制
                                    </IfModule>
    
    部署网上商城 ecshop
            一、基础环境
                一、基础环境
                        [root@apache ~]# sed -ri '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config 
                        [root@apache ~]# setenforce 0
                        [root@apache ~]# systemctl stop firewalld.service 
                        [root@apache ~]# systemctl disable firewalld.service
    
            二、安装LAMP
                二、安装LAMP
                        [root@apache ~]# yum -y install httpd mariadb-server mariadb php php-mysql gd php-gd
                        [root@apache ~]# systemctl start httpd mariadb
                        [root@apache ~]# systemctl enable httpd mariadb
                        [root@apache ~]# mysqladmin -u root password "123"
    
            三、安装Ecshop
                上传站点源码包
                    
                        1. Apache 配置虚拟主机
                        [root@apache ~]# vim /etc/httpd/conf.d/zhufo.conf
    
                    
                    httpd -t httpd配置文件语法检测
                        [root@apache ~]# systemctl restart httpd
                    2. 导入ecshop网站源码
                        [root@apache ~]# mkdir -p /webroot/zhufo
                        [root@apache ~]# unzip ECShop_V3.0.0_UTF8_release0518.zip
                        [root@apache ~]# cp -rf ECShop_V3.0.0_UTF8_release0518/* /webroot/zhufo/
    
                    3. 安装ecshop [任何client]
                        [root@tianyun ~]# vim /etc/hosts //如果没有使用DNS解析
                        192.168.122.161 www.zhufo.top zhufo.top //161为 web server IP
    
                前台安装源码包
                    
                    [root@apache ~]# chmod -R 777 /webroot/zhufo/
                    
                    
                    修改php.ini时区
                    [root@apache ~]# vim /etc/php.ini
                    
                    [root@apache ~]# systemctl restart httpd
    
    部署博客系统 wordpress
            一、基础环境[已完成]
                
                        一、基础环境[已完成]
                        [root@apache ~]# sed -ri '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config 
                        [root@apache ~]# setenforce 0
                        [root@apache ~]# systemctl stop firewalld.service 
                        [root@apache ~]# systemctl disable firewalld.service
    
            二、安装LAMP[已完成]
                二、安装LAMP[已完成]
                        [root@apache ~]# yum -y install httpd mariadb-server mariadb php php-mysql gd php-gd
                        [root@apache ~]# systemctl start httpd mariadb
                        [root@apache ~]# systemctl enable httpd mariadb
                        [root@apache ~]# mysql_secure_installation
    
            三、安装Ecshop
                1. Apache 配置虚拟主机
                    1. Apache 配置虚拟主机
                        [root@apache ~]# vim /etc/httpd/conf.d/tianyun.conf
    
                    
                    [root@apache ~]# systemctl restart httpd
                2. 导入wordpress网站源码
                    2. 导入wordpress网站源码
                        [root@apache ~]# mkdir -p /webroot/tianyun
                        [root@apache ~]# tar xf wordpress-4.5.3-zh_CN.tar.gz
                        [root@apache ~]# cp -rf wordpress/* /webroot/tianyun/
                3. 准备数据库(创建一个库)
                    
                4. 安装wordpress [任何client]
                    4. 安装wordpress [任何client]
                        [root@tianyun ~]# vim /etc/hosts
                        192.168.122.161 www.zhufo.top zhufo.top www.tianyun.com tianyun.com //161为 web server IP
                    
                    
                    chmod -R 777 /webroot/tianyun
                    
                    
                    
        Apache 访问控制
            准备环境
    
                        [root@aliyun ~]# rm -rf /var/www/edusoho/web/download/*
                        [root@aliyun ~]# echo "download....." > /var/www/edusoho/web/download/index.html
    
            仅用于http 2.4+
    
    案例1
            案例1:允许所有主机访问
                        <Directory "/var/www/edusoho/web/download">
                                    AllowOverride None
                                    Require all granted
                        </Directory>
    
                        AllowOverride All 允许子目中的 .htaccess 中的设置覆盖当前设置
                        AllowOverride None 不允许子目中的 .htaccess 中的         设置覆盖当前设置
    
                                Require all denied
    案例2
                
            案例2:只允许网段192.168.5.0/24、192.168.10.0/24访问
                        <Directory "/var/www/edusoho/web/download">
                                    AllowOverride None
                                    Require ip 202.106.0.0/24
                                    Require ip 114.248.160.203
                        </Directory>
    
    案例3
                案例3:只拒绝某些主机访问
                        <Directory "/var/www/edusoho/web/download">
                                    AllowOverride None
                                <RequireAll>
                                    Require not ip 114.248.160.203
                                    Require all granted
                                </RequireAll>
                        </Directory>
    
    案例4
                
            四、针对文件的访问控制
                        不允许在/var/www/edusoho/web/upload目录中执行.php文件
                        <Directory /webroot/baidu/upload>
                                    AllowOverride None
                                    Require all granted
    
                                <Files ~ "\.php$" >
                                    Order allow,deny
                                    Deny from all
                                </Files>
                        </Directory>
    

    相关文章

      网友评论

        本文标题:第18章 网站服务

        本文链接:https://www.haomeiwen.com/subject/hxugkftx.html