zoukankan      html  css  js  c++  java
  • Apache

    Apacche web服务器(lamp架构)

    http超文本协议

    统一资源标识符 URI

    统一资源定位符 URL

    其实包含了这些东西

    http://www.sina.com.cn:80/admin/index.php

    ssl 安全套接字(声明一个协议)

    http:// 

    域名

    www.sina.com.cn

    端口

    :80

    http对应80端口,https对应443端口

    网址目录和文件名

    /admin/index.php

    apache三种工作模式

    httpd –V 

    即可查看工作模式,但需先下载此命令 

    yum install httpd -y

    prefork:一个进程处理一个用户请求

      比如说一千个用户访问我的网站,那我就要有一千个进程来处理用户的请求,这个时候就带来了一个很大的问题,每个进程就消耗的系统资源多,如果说你的访问量非常大的话,系统资源可能会承受不住,它并不擅长高并发请求,什么是高并发请求,就是在一定时间内,你单台服务器能够承载的访问量。

    Worker:一个进程生成了多个线程(比进程利用的系统资源少),每个线程里面都有它的子进程。适合在高并发下使用,但线程安全问题比较突出。

    Event:改善了worker工作模式,他有单独的工作模块。

    Apache基本信息

    apache为企业中常用的web服务,用来提供http://(超文本传输协议)

    主配置目录

    /etc/httpd/conf

    主配置文件

    /etc/httpd/conf/http.conf

    子配置目录

    /etc/httpd/conf.d

    子配置文件

    /etc/httpd/conf.d/*.conf

    默认发布目录,网站根目录,就是说你想把你这个网站的东西发布出去给谁看,你要把你这个包全都放到这个目录下面,别人才能看得到。

    /var/www/html/

    默认发布文件

    index.html

    默认端口:80

    网站状态返回码

    200: 代表上传成功

    304: 代表缓存

    403: 代表没有权限

    404: 代表你网站根目录的东西定义错了

    500: 代表服务器内部错误

    503: 代表服务器暂时不可用

    什么是LAMP 就是 Linux Apache Mysql / MaraiDB PHP

    常见的apache架构:lamp、lnmp、lnmmp、lammp

    Apache和mysql使用的是CGI协议进行通信,php和mysql使用的是php_mysql协议进行通信。Apache不能直接和mysql直接通信。

    编译安装apache

    先安装apache依赖包

    yum install gcc gcc-c++ ncurses-deve  ncurses pcre pcre-devel openssl-devel zlib-devel -y

    第一步

    将三个压缩包包传至root用户家目录,apr-1.5.2.tar  apr-util-1.5.4.tar httpd.2.4.20.tar

    第二步

    将三个压缩包解压至当前路径下

    第三步

    先编译apr-1.5.2 cd apr-1.5.2

    列出当前路径下的所有文件

    首先找configure这个文件

    第四步

    ./configure --prefix=/usr/local/apr

    这步是检查依赖关系并进行安装,如果依赖关系解决,会进行下一步,如果依赖关系没有解决,会报错要求解决依赖关系。–prefix是指定安装路径,它默认的安装路径是/usr/local。

    第五步:

    这一步会报错

    看到C compiler是缺少gcc编译器,直接下载即可。

    第六步

    下载完后再进行编译即可。

    第七步

    编译的意思

    make

    第八步

    安装的意思

    make install 

    第九步

    返回至root用户家目录

    cd apr-util-1.5.

    第十步

    列出当前路径下的所有文件,找configure这个文件

    第十一步

    ./configure --with-apr =/usr/local/apr  --prefix=/usr/local/apr-util

    第十二步

    make && make install

    第十三步

    返回至root用户家目录

    cd httpd-2.4.20

    第十四步

    列出当前路径下的所有文件,找configure这个文件

    第十五步

    ./configure --prefix=/usr/local/httpd2.4 
    
    --with-apr=/usr/local/apr 
    
    --with-apr-util=/usr/local/apr-util 
    
    --enable-cache 
    
    --enable-so 
    
    --enable-ssl 
    
    --enable-static-ab 
    
    --with-mpm=worker 

    第十六步

    会出现一个错误,缺少两个安装包

    yum install pcre pcre-devel -y

    第十七步:下载完两个两个安装包在进行上步安装,还会报错

    yum install openssl-devel -y

    第十八步

    make && make install    

    第十九步

    编译安装的要定义启动和停止命令

    停止命令的一种方法

    先使用

    ps aux | grep httpd 

    查看这个程序的pid

    再用

    kill -9

    结束掉

    启动的方法

    进入

    /usr/local/httpd2.4/bin

    这个目录里面的apachectl就是命令

    启动:前提是在当前目录下启动

    ./apachectl star

    停止:在当前目录下停止

    ./apachectl stop

    我不能每次启动跟停止都进入做个目录执行这个命令,那么我们就要有其他的办法。

    首先复制

    /usr/local/httpd2.4/bin

    这个路径

    而后进入这个目录

    /etc/profile.d

    这个目录里有很多的.sh结尾的文件,我们只要定义一个任意开头,.sh结尾文件,写入如下内容:

    export   PATH=/usr/local/httpd2.4/bin:$PATH

    而后加载

    source /etc/profile.d/刚才编辑文件名

    编辑配置文件(yum安装)

    打开主配置文件

    vim /etc/httpd/conf/httpd.conf
    ServerRoot “/etc/httpd”:服务器目录
    
    Listen 80 :监听80端口
    
    <Directory />
    
            allowOveride none
           
            Require all denied
    
    </Directory>
    
    #这里定义了“/”就是网站根目录

    DocumentRoot “/var/www/html”:定义了网站根目录的路径

    DirectoryIndex index.html #把index.html写在了这里,访问网站的时候就不用写index.html。

    Customlog "log/access_log" #日志 路径:/var/log/httpd 

    yum 下载的apache 

    子配置文件

    /etc/httpd/conf.d

    配置文件里面有一个welcome.conf就是testing123….这个界面的配置文件,如何把它搞掉,注释掉8至22行即可不显测试页面。他会显示这个界面:

    Index of /
        
        Name Last modified Size Description

    如何改写这个界面,cd /var/www/html,vim index.html,内容写你想说的话即可。

    Not Found
    
    The requested URL /jadjal was not found on this server     #出现这个图片如何改写,就是说找不到网页的时候。
    开主配置文件

    #ErrorDocument 500 "The server made a boo boo."

    #ErrorDocument 400 /missing.html

    #ErrorDocument 404 "/cgi-bin/missing_handler.pl"
    #ErrorDocument 402  http://www/example.com/subscription_info.html

    将注释取消掉,将500改成404即可。
    #ErroDocument 404 /missing.html     定义成文件,/里的斜杠代表网站根目录。

    #ErroDocument 404 https://www.cnblogs.com/shuaiyin/ 跳转网页

    重定向

    Redirect permanent /foo http://www.example.com/bar
    
    Redirect permanent /foo 要跳转的网址

      你虽然在我这台服务器上搜foo的时候,就会自动跳转到后面的网址上去,虽然是在我这个网址上的请求,但我把请求分发到了另一台服务器上去,给你提供服务。实现多台服务器为你提供服务。 

    Ip/pv/uv

    IP就是独立IP数,其实并不精确,IPV4是有限的

    Pv页面被刷新的次数

    Uv一个用户就是一个uv

    基于端口创建虚拟主机

    编辑/etc/httpd/conf/httpd.conf这个文件,在最后添加两台虚拟主机:

    <VirtualHost  *:81>
    DocumentRoot /var/www/ken1
    DirectoryIndex index.html
    </VirtualHost>
    <VirtualHost  *:82>
    DocumentRoot /var/www/ken2
    DirectoryIndex index.html
    </VirtualHost>

    一对virtuahost就是一台虚拟主机,/表示结尾,*代表任意IP,

    而后将81和82两个端口添加上去

    此时用一个命令,httpd –t 来检查编辑的文本有没有错,从而进行排错。

    记住要给测试文件:

    echo "ken1" > /var/www/ken1/index.html
    
    echo
    "ken2" > /var/www/ken2/index.html
    echo
    "ken3" > /var/www/ken3/index.html

    而后访问ip加端口号即可。

    基于域名创建虚拟主机

    编辑/etc/httpd/conf/httpd.conf这个文件,在最后添加,
    两台虚拟主机

    <VirtualHost 192.168.64.5>
    
    DocumentRoot /var/www/html
    
    ServerName www.ken1.com
    
    DirectoryIndex  index.html
    
    </VirtualHost >

      而后重启服务,但还是访问不到,需要将IP跟域名添加到/etc/hosts这个文件里即可,但这也是只能linux系统可以访问,不能windows系统访问,需要打开我的电脑,c盘,windows,system32,drivers,etc,里面有个hosts文件,把它剪切到桌面上修改,打开后将IP跟域名添加进去即可,然后在剪切回去即可。

    curl 域名 

    也可以直接访问

    上线静态网站

    先传压缩包

    下载unzip

    yum install unzip –y

    上线网站需要把包放到网站的根目录

    而后把你里面的index文件删除,把game文件放到外面。

    打开网站时记得加后缀。后缀是开发包。

    上线动态网站

    第一步

    yum install php php-mysql mariadb-server -y

    第二步

    把之前网站根目录下的包删完

    第三步

    把wordpress放到网站根目录下,并把里面的内容全部拿到外面来

    第四步

    cp wp-config-sample.php  wp-config.php

    第五步

    vim wp-config.php 

    第六步

    启动数据库

    systemctl start mariadb

    第七步

    mysql –uroot

    第八步

    create database 之前配置文件定义的用户名;

    第九步

    grant all on *.*  to 用户名@“localhost”  identified by “密码”;

    第十步

    flush privileges; 

    第十一步

    vim /etc/httpd/con/httpd.conf

    第十二步

    <VirtualHost 192.168.64.5>
    
    DocumentRoot /var/www/html
    
    ServerName www.ken1.com
    
    DirectoryIndex index.php index.html
    
    <VirtualHost 192.168.64.5>

    第十三步

    systemctl restart httpd

    第十四步

    访问网站即可

    增加步骤(编译安装apache上线动态需要下列步骤):

    打开配置文件

    vim /usr/local/httpd2.4/conf/httpd.conf

    添加

    AddType application/x-httpd-php .php
    
    AddType application/x-httpd-php-source .phps
    
    ProxyRequests Off
    
    ProxyPassMatch ^/(.*.php)$ fcgi://127.0.0.1:9000/usr/local/httpd2.4/htdocs/

    把代理模块开启

    搜索proxy

    把mod_proxy.so和mod_proxy. fcgi. so的注释取消掉

    而后下载

    yum install php-fpm -y

    添加源 7yum.repo

    启动php-fpm 

    systemctl start php-fpm

    怎么统计哪些IP频繁访问我

    /var/log/httpd/access_log  #在这个日志里怎么把IP筛选出来
    
    cat /var/log/httpd/access_log | awk -F "  +" '{print $1}' | grep -E -v ":+" | sort | uniq -c
  • 相关阅读:
    Istio流量管理实践之(3): 基于Istio实现流量对比分析
    15分钟在笔记本上搭建 Kubernetes + Istio开发环境
    阿里云 Aliplayer高级功能介绍(九):自动播放体验
    阿里云 Aliplayer高级功能介绍(八):安全播放
    阿里云 Aliplayer高级功能介绍(七):多分辨率
    统计报告称中国大学导师最多同时带47名博士生
    RHEL5 挂载 NTFS 分区
    2008级计算机应用 嵌入式方向课表(前10周)
    硬盘安装CentOS-5.5
    slax
  • 原文地址:https://www.cnblogs.com/shuaiyin/p/10910965.html
Copyright © 2011-2022 走看看