安装httpd

yum -y install  httpd

    服务脚本:/etc/rc.d/init.d/httpd

       脚本配置文件:/etc/sysconfig/httpd

    运行目录:/etc/httpd

    配置文件:

     主配置文件:/etc/httpd/conf/httpd.conf

     扩展配置:/etc/httpd/conf.d/*.conf

     Socket:80/tcp,443/tcp

     文档根目录:/var/www/html

         CGI:/var/www/cgi-bin/

修改apache的工作模式

vim /etc/sysconfig/httpd

#HTTPD=/usr/sbin/httpd.worker

ps -elfH #查看进程,主进程和辅助进程之间的关系

MPM

   多道处理模块

   httpd -l 查看编译进内核的模块

   想使用不同的机制,修改配置文件即可 /etc/syconfig/httpd文件

 

<IfModule preforck.c>判断模块是否存在
StartServers 8 默认启动的工作进程数
MinSpareServers 5 最少空闲进程数
MaxSpareServers 20 最大空闲进程数
ServerLimit 256 最大活动进程数
MaxClients 256 最大并发连接数,最多允许发起的连接请求的个数
MaxRequestsPerChild 4000 每个子进程在生命周期内最大允许服务的最多请求个数
</IfModule> <IfModule worker.c>
StartServers 4 启动的子进程的个数
MaxClients 300 最大并发连接数,最多允许发起的连接请求的个数
MinSpareThreads 25 最少空闲线程数
MaxSpareThreads 75 最大空闲线程数
ThreadsPerChild 25 每个子进程生成的线程数
MaxRequestsPerChild 0 每个子进程在声明周期内最大允许服务的最多请求个数
</IfModule>

配置日志功能

/var/log/http/

       access.log:访问日志,其需要记录的内容需要自定义

       error.log

      

      访问日志:

        CustomLog "/path/to/log_file" LogFormat

        LogFormat定义日志格式

        "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""

        %h:客户端地址

        %l:远程的登录名,通常为-

        %u:认证时的远程用户名,通常为-

        %t:接收到的请求时的时间,为标准英文格式时间+时区

        \" :转义,显示""

        %r:请求报文的起始行

        %>s:响应状态码,

        %b:以字节响应报文的长度,不包含http报文

        %{Header_Name}i:记录指定请求报文首部的内容(value)

        %u:请求的URL

        

     详情请参考:http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#formats

        错误日志:

         ErrorLog

如设置日志文件为时间日期格式显示,并且超过1天则自动切割

在apache的配置文件中找到

ErrorLog logs/error_log

CustomLog logs/access_log common

将其改为 

ErrorLog "| /usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/error_%Y%m%d.log 86400 480"

CustomLog "| /usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/access_%Y%m%d.log 86400 480" common

rotatelogs这样日志回滚的工具



用法



rotatelogs  [ -l ] logfile  [ rotationtime [ offset ]] | [ filesizeM ]





-l 使用本地时间代替GMT时间作为时间基准。注意:在一个改变GMT偏移量(比如夏令时)的环境中使用-l会导致不可预料的结果。





logfile 它加上基准名就是日志文件名。如果logfile中包含"%",则它会被视为用于strftime()的格式字符串;否则它会被自动加上以秒为单位的".nnnnnnnnnn"后缀。这两种格式都表示新的日志开始使用的时间。





rotationtime 日志文件滚动的以秒为单位的间隔时间。





offset 相对于UTC的时差的分钟数。如果省略,则假定为"0"并使用UTC时间。比如,要指定UTC时差为"-5小时"的地区的当地时间,则此参数应为"-300"。





filesizeM 指定以filesizeM文件大小滚动,而不是按照时间或时差滚动。





解决方法:





ErrorLog "|/usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/www.test.com-error.log.%Y-%m-%d-%H_%M_%S 10M"

CustomLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache2/logs/www.test.com-access.log 100M" commom





当日志大小达到10M时,日志就会滚动,产生新的日志。当然你可以根据时间来进行滚动,把100M换成36000,表时日志10个小时滚动一次。

路径别名

Alias /alias/ "/path/to/somewhere"

   Alias /images/ "/www/img/"

    意味着访问http://Server_IP/alias时,其页面文件来自于/path/to/somewhere中

指定默认的字符集

AddDefaultCharset  UTF-8

配置通过用户目录访问

首先编辑httpd服务器文件

vim /etc/httpd/conf/httpd.conf

#UserDir disabled

    UserDir public_html

重新加载httpd服务 service httpd reload

创建hadoop用户并设置相关访问测试网页文件

useradd haddop

su - hadoop

mkdir public_html

vim /home/hadoop/public_html/index.html

<h1>Welcome to Hadoop's home</h1>

su -

设置apache用户对hadoop目录的访问权限(setfacl -m u:apache:x ~Username)

setfacl -m u:apache:x /home/hadoop/

通过如下方式访问(http://Server_IP/~Username/):

http://192.168.8.39/~hadoop/

脚本路径别名(CGI接口)

vim /etc/httpd/conf/httpd.conf



vim /var/www/cgi-bin/test2

添加如下内容:

#!/bin/bash
#
cat << EOF
Content-Type:text/html <pre>
The hostname is : `hostname`
This time is `date`
<pre> EOF

通过访问测试

http://192.168.8.39/cgi-bin/test2

基于用户的访问控制

虚拟用户:不是系统用户,只是为了获取某种资源类型的一种虚拟的用户

  文件/etc/httpd/conf/.htpasswd

  SQL数据库

  dbm:

  ldap:轻量级目录访问协议

    认证类型(auth):

        basic:基本认证,账号和密码明文发送

        digest:摘要认证,hash编码之后发送

    认证提供者(authentication provider):账号和密码的存放位置

      authn

    授权机制(authorization):根据什么进行授权

    案例:基于文件,做基本认证根据用户和组进行授权

    1、编辑配置文件,为需要认证的目录配置认证机制

    <Directory "/www/htdocs/fin">A

        options None

        AllowOverride AuthConfig 使用认证配置

        AuthType Basic 使用基本认证

        AuthName "Private Area" 质询时标题

        AuthUserFile /etc/httpd/conf/.htpasswd  密码的存放位置

        Require valid-user 可访问的用户



    </Directory>



    2、使用htpsswdm命令使用生成认证库

      htpasswd 

      -c 创建密码,创建第一个用户时使用

      htpasswd -c -m /etc/httpd/conf/.htpasswd tom

      -m MD5格式存放

      -b 批量模式

      -D 删除用户

具体操作:

vim /etc/httpd/conf/httpd.conf

<Directory "/www/htdocs/fin">
options None
AllowOverride AuthConfig
AuthType Basic
AuthName "Private Area"
AuthUserFile /etc/httpd/conf/.htpasswd
Require valid-user
</Directory>

htpasswd -c -m /etc/httpd/conf/.htpasswd tom

htpasswd -m /etc/httpd/conf/.htpasswd tom

mkdir /www/htdocs/fin

vim index.html

<h1>authrization site</h1>

通过访问以下地址验证

http://192.168.8.39/fin/

虚拟主机的配置



基于不同IP的虚拟主机配置

1.添加多个IP

ifconfig eth0:1 192.168.8.100

ifconfig eth0:2 192.168.8.101

2.创建存放网站的目录文件,并创建测试文件

mkdir /web/a.com/htdocs -pv

vim /web/a.com/htdocs/index.html

<h1>www.a.com</h1>

mkdir /web/b.net/htdocs -pv

mkdir /web/c.org/htdocs -pv

本地hosts文件中添加相应的域名解析(路径C:\Windows\System32\drivers\etc)

192.168.8.39 www.a.com
192.168.8.100 www.b.net
192.168.8.101 www.c.org



3.关闭全局的虚拟目录设置

#DocumentRoot "/www/htdocs"





4.设置虚拟主机

<VirtualHost 192.168.8.39:80>

        ServerName www.a.com

        DocumentRoot "/web/a.com/htdocs"

</VirtualHost>

<VirtualHost 192.168.8.100:80>

        ServerName www.b.net

        DocumentRoot "/web/b.net/htdocs"

</VirtualHost>

<VirtualHost 192.168.8.101:80>

        ServerName www.c.org

        DocumentRoot "/web/c.org/htdocs"

</VirtualHost>

测试 httpd -t

重启service httpd restart

访问测试

基于不同端口的虚拟主机配置

1.添加配置

Listen 8080

2.配置虚拟主机

<VirtualHost 192.168.8.39:8080>

        ServerName www.d.com

        DocumentRoot "/web/d.com/htdocs"

</VirtualHost>

3.创建主机目录

mkdir /web/d.com/htdocs -pv

vim /web/d.com/htdocs/index.html

访问 www.d.com:8080测试

基于不同主机名实现不同的虚拟主机

变化ServerName的值

    通过请求报文中的HOST来实现不同的虚拟主机访问

1.配置httpd.conf

NameVirtualHost *:80

<VirtualHost *:80>
ServerName www.a.com
DocumentRoot "/web/a.com/htdocs"
CustomLog "/var/log/httpd/www.a.com.acclog_log" combined
</VirtualHost>
<VirtualHost *:80>
ServerName www.b.net
DocumentRoot "/web/b.net/htdocs"
CustomLog "/var/log/httpd/www.b.net.acclog_log" combined
</VirtualHost>
<VirtualHost *:80>
ServerName www.c.org
DocumentRoot "/web/c.org/htdocs"
CustomLog "/var/log/httpd/www.c.org.acclog_log" combined
</VirtualHost>

apache服务器的常用功能及设置的更多相关文章

  1. Apache服务器如何通过.htaccess文件设置防盗链?

    Apache服务器通过.htaccess文件设置防盗链 用户经常面对的一个问题就是服务器的流量问题,而站点文件被盗链是其中最为主要的部分.所谓盗链,是指其他网站直接链接我们网站上的文件,一般来说,盗链 ...

  2. Power-BI 报表常用功能自适应设置

    Power-BI 报表可以跨平台浏览,并自适应多种屏幕大小.在Power-BI 的开发界面下,就有多个属性用于设定在不同屏幕报表的展现方式,以达到更优的用户体验. 1.PC布局:设定报表在PC机上的布 ...

  3. linux apache服务器

    apache服务器 服务端功能是侦听和响应客户端的http请求.http协议的默认端口是80. 1996年以来,apache成为最流行的web服务器. IIS web服务器只能安装在windows上. ...

  4. 在centos 7云服务器上搭建Apache服务器并访问到你的网站

    网站是指在互联网上根据一定的规则,用HTML等语言制作的网页的集合.网站的目的是用来展示一些信息,如果是个人网站则是为了展示自己的一些想被人知道的东西,例如自己的一些作品,又或者是通过网站来达到盈利的 ...

  5. Apache运维中常用功能配置笔记梳理

    Apache 是一款使用量排名第一的 web 服务器,LAMP 中的 A 指的就是它.由于其开源.稳定.安全等特性而被广泛使用.下边记录了使用 Apache 以来经常用到的功能,做此梳理,作为日常运维 ...

  6. 在Linux系统中如何设置APACHE服务器里的后台页面只允许某个IP地址访问

    补充资料 本网络中使用LINUX服务器,web服务器是由APACHE搭建,IP地址为192.168.1.5,后台页面为/admin/login.jsp . 如何设置后台页面LOGIN.JSP只允许19 ...

  7. TeeChart控件的安装与常用 功能设置

    TeeChart控件的安装 TeeChart 7.0 With Source在Delphi 7.0中的安装 一.删除Delphi7自带TeeChart  1.Component -> insta ...

  8. apache服务器参数设置

    全局参数设置 ServerRoot:服务器根目录 apache安装目录[我的为:/usr/local/apache/] 用于指定apache服务器的配置文件及日志文件存放的根目录.服务器的基础目录,a ...

  9. Apache服务器代理与缓存

    Apache服务器代理与缓存 1.代理  正向代理:             反向代理:   mod_proxy模块 apache实现代理和网关的关键模块.加载mod_proxy模块:LoadModu ...

随机推荐

  1. poj 3320(尺取法)

    传送门:Problem 3320 参考资料: [1]:挑战程序设计竞赛 题意: 一本书有 P 页,每页都有个知识点a[i],知识点可能重复,求包含所有知识点的最少的页数. 题解: 相关说明: 设以a[ ...

  2. vue-devtools chrome 开发工具

    1.github下载地址:https://github.com/vuejs/vue-devtools 有Git的同学直接 Git clone https://github.com/vuejs/vue- ...

  3. 上传znbsite

    1.将本地文件打包为zip: 2.备份服务器上的classes文件夹下面的配置文件: 3.上传zip,释放到tomcat下: 4.覆盖classes文件夹中的配置文件,启动tomcat:

  4. Kubernetes Ingress管理

    目录 Ingress介绍 1.Pod漂移问题 2.端口管理问题 3.域名分配及动态更新问题 Nginx Ingress配置 1.部署默认后端 2.部署Ingress Controller 3.部署In ...

  5. POJ1185 状压dp(二进制//三进制)解法

    很显然这是一道状压dp的题目 由于每个最优子结构和前两行有关,一个显而易见的想法是用三维dp[i][j][k]用来记录在第i行下为j状态,i - 1行为k状态时的最大值,然而dp[100][1 < ...

  6. centos7下安装nginx的方法

    没有用tar包的方法,太麻烦,还需要找,还需要编译,还需要下乱七八糟的依赖模块.麻烦的一逼,看网上说的.就采用了在线安装的方法.很快.注意一下,这种方法安装是安装到系统默认的位置.我也不知道怎么换.留 ...

  7. C#获取Html中的图片元素路径

    使用Ueditor的时候把文章以HTML标签的方式存在数据库中,同时还要将文章的第一张图片的路径一并存入数据库,所以就需要在Html中获取第一个图片的路径,没有图片的话设置一个默认的图片.代码如下: ...

  8. link 和@import 的区别

    两者都为外部引入css的方式. 他们的区别: 1.link属于HTML标签,而@import是css提供的 2.页面被加载时候,link会同时加载,而@import引入的文件会等到页面加载完成之后再进 ...

  9. 选择排序算法的JAVA实现

    1,采用选择排序对元素进行排列时,元素之间需要进行比较,因此需要实现Comparable<T>接口.即,<T extends Comparable<T>>. 更进一 ...

  10. Linux配置Tomcat步骤mv apache-tomcat-7.0.82 tomcat

    (一)安装JAVA1.检查java环境 java -version,不存在安装.2.yum -y list java* Loaded plugins: fastestmirror, langpacks ...