• 什么是Apache?
    Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的HTTP服务器软件之一。同时是完全免费,完全源代码开放。不过正处于日益增长的ngnix,不能忽视,Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器,当然ngnix我们日后再说。

Apache可以直接使用yum安装,也可以直接上官网http://httpd.apache.org/
下载源码编译安装,以下我们说下yum安装。

1、 首先查询一下是否已经安装了apache 软件

rpm -qa| grep httpd

如果无返回任何的信息,则说明并没有安装软件。
2、 安装apache

yum install -y httpd


3、 启动appche

/etc/init.d/httpd start 或者service httpd start #启动appche
chckcongfig httpd on #设置httpd每次开机自己启动


4、 测试安装是否成功
在浏览器输入http://ip地址
要是不能打开则检查下iptables的问题,输入iptables –F 清空防火墙设置,或者使用以下方法:

1
2
3
4
vi /etc/sysconfig/iptables
添加如下内容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT


  • 进阶设置(Apache服务器的目录和配置文件)

  • 1、常用命令

    1
    2
    对Apache的配置文件进行语法检查:apachectl -t
    查看Apache编译配置参数:apachectl -V
  • 2、默认安装目录
    主配置文件:/etc/httpd/conf/httpd.conf
    网页目录:/var/www/html/
    服务脚本:/etc/init.d/httpd
    成功日志:/var/log/httpd/access_log
    错误日志:/var/log/httpd/error_log

  • 3、主配置文件:/etc/httpd/conf/httpd.conf
    httpd.conf文件包含为下面三个部分:

  1. 全局环境设置:控制整个Apache服务器行为的部分(即全局环境变量)
  2. 主服务器配置:定义主要或者默认服务参数的指令,也为所有虚拟主机提供默认的设置参数
  3. 虚拟主机设置:虚拟主机参数设置
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    [root@localhost httpd]# egrep -v "#.*|^$" /etc/httpd/conf/httpd.conf
    ServerTokens OS #在出现错误页的时候是否显示服务器操作系统的名称,ServerTokens Prod为不显示
    ServerRoot "/etc/httpd" #用于指定守护进程httpd的运行目录
    PidFile run/httpd.pid #httpd守护进程的pid号码
    Timeout 60 #服务器与客户端断开的时间
    KeepAlive Off #是否持续连接
    MaxKeepAliveRequests 100 #表示一个连接的最大请求数
    KeepAliveTimeout 15 #断开连接前的时间
    <IfModule prefork.c>
    StartServers 8
    MinSpareServers 5
    MaxSpareServers 20
    ServerLimit 256
    MaxClients 256
    MaxRequestsPerChild 4000
    </IfModule>
    #StartServer开始服务时启动8个进程,最小空闲5个进程,最多空闲20个进程。
    #MaxClient限制同一时刻客户端的最大连接请求数量超过的要进入等候队列。
    #MaxRequestsPerChild每个进程生存期内允许服务的最大请求数量,0表示永不结束
    <IfModule worker.c>
    StartServers 4
    MaxClients 300
    MinSpareThreads 25
    MaxSpareThreads 75
    ThreadsPerChild 25
    MaxRequestsPerChild 0
    </IfModule>
    Listen 80 #监听80端口
    LoadModule auth_basic_module modules/mod_auth_basic.so
    LoadModule auth_digest_module modules/mod_auth_digest.so
    LoadModule authn_file_module modules/mod_authn_file.so
    LoadModule authn_alias_module modules/mod_authn_alias.so
    LoadModule authn_anon_module modules/mod_authn_anon.so
    LoadModule authn_dbm_module modules/mod_authn_dbm.so
    LoadModule authn_default_module modules/mod_authn_default.so
    LoadModule authz_host_module modules/mod_authz_host.so
    LoadModule authz_user_module modules/mod_authz_user.so
    LoadModule authz_owner_module modules/mod_authz_owner.so
    LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
    LoadModule authz_dbm_module modules/mod_authz_dbm.so
    LoadModule authz_default_module modules/mod_authz_default.so
    LoadModule ldap_module modules/mod_ldap.so
    LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
    LoadModule include_module modules/mod_include.so
    LoadModule log_config_module modules/mod_log_config.so
    LoadModule logio_module modules/mod_logio.so
    LoadModule env_module modules/mod_env.so
    LoadModule ext_filter_module modules/mod_ext_filter.so
    LoadModule mime_magic_module modules/mod_mime_magic.so
    LoadModule expires_module modules/mod_expires.so
    LoadModule deflate_module modules/mod_deflate.so
    LoadModule headers_module modules/mod_headers.so
    LoadModule usertrack_module modules/mod_usertrack.so
    LoadModule setenvif_module modules/mod_setenvif.so
    LoadModule mime_module modules/mod_mime.so
    LoadModule dav_module modules/mod_dav.so
    LoadModule status_module modules/mod_status.so
    LoadModule autoindex_module modules/mod_autoindex.so
    LoadModule info_module modules/mod_info.so
    LoadModule dav_fs_module modules/mod_dav_fs.so
    LoadModule vhost_alias_module modules/mod_vhost_alias.so
    LoadModule negotiation_module modules/mod_negotiation.so
    LoadModule dir_module modules/mod_dir.so
    LoadModule actions_module modules/mod_actions.so
    LoadModule speling_module modules/mod_speling.so
    LoadModule userdir_module modules/mod_userdir.so
    LoadModule alias_module modules/mod_alias.so
    LoadModule substitute_module modules/mod_substitute.so
    LoadModule rewrite_module modules/mod_rewrite.so
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
    LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
    LoadModule proxy_http_module modules/mod_proxy_http.so
    LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
    LoadModule proxy_connect_module modules/mod_proxy_connect.so
    LoadModule cache_module modules/mod_cache.so
    LoadModule suexec_module modules/mod_suexec.so
    LoadModule disk_cache_module modules/mod_disk_cache.so
    LoadModule cgi_module modules/mod_cgi.so
    LoadModule version_module modules/mod_version.so
    Include conf.d/*.conf
    User apache
    Group apache
    ServerAdmin root@localhost #管理员的邮箱
    UseCanonicalName Off
    DocumentRoot "/var/www/html" #网页文件存放的目录
    <Directory />
    Options FollowSymLinks
    AllowOverride None
    </Directory>
    <Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
    </Directory>
    <IfModule mod_userdir.c>
    UserDir disabled
    </IfModule>
    DirectoryIndex index.html index.html.var
    AccessFileName .htaccess
    <Files ~ "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
    </Files>
    TypesConfig /etc/mime.types
    DefaultType text/plain
    <IfModule mod_mime_magic.c>
    MIMEMagicFile conf/magic
    </IfModule>
    HostnameLookups Off
    ErrorLog logs/error_log #错误日志的位置
    LogLevel warn #日志的级别
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
    LogFormat "%{Referer}i -> %U" referer
    LogFormat "%{User-agent}i" agent
    CustomLog logs/access_log combined
    ServerSignature On #定义当客户请求的网页不存在,或者错误的时候是否提示apache的版本的一些信息
    Alias /icons/ "/var/www/icons/" #使用Alias 字段可以创建虚拟格式Alias +虚拟目录 +实际路径
    <Directory "/var/www/icons">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
    </Directory>
    <IfModule mod_dav_fs.c>
    DAVLockDB /var/lib/dav/lockdb
    </IfModule>
    ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
    <Directory "/var/www/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
    </Directory>
    IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable Charset=UTF-8
    AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
    AddIconByType (TXT,/icons/text.gif) text/*
    AddIconByType (IMG,/icons/image2.gif) image/*
    AddIconByType (SND,/icons/sound2.gif) audio/*
    AddIconByType (VID,/icons/movie.gif) video/*
    AddIcon /icons/binary.gif .bin .exe
    AddIcon /icons/binhex.gif .hqx
    AddIcon /icons/tar.gif .tar
    AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
    AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
    AddIcon /icons/a.gif .ps .ai .eps
    AddIcon /icons/layout.gif .html .shtml .htm .pdf
    AddIcon /icons/text.gif .txt
    AddIcon /icons/c.gif .c
    AddIcon /icons/p.gif .pl .py
    AddIcon /icons/f.gif .for
    AddIcon /icons/dvi.gif .dvi
    AddIcon /icons/uuencoded.gif .uu
    AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
    AddIcon /icons/tex.gif .tex
    AddIcon /icons/bomb.gif /core
    AddIcon /icons/back.gif ..
    AddIcon /icons/hand.right.gif README
    AddIcon /icons/folder.gif ^^DIRECTORY^^
    AddIcon /icons/blank.gif ^^BLANKICON^^
    DefaultIcon /icons/unknown.gif
    ReadmeName README.html
    HeaderName HEADER.html
    AddLanguage ca .ca
    AddLanguage cs .cz .cs
    AddLanguage da .dk
    AddLanguage de .de
    AddLanguage el .el
    AddLanguage en .en
    AddLanguage eo .eo
    AddLanguage es .es
    AddLanguage et .et
    AddLanguage fr .fr
    AddLanguage he .he
    AddLanguage hr .hr
    AddLanguage it .it
    AddLanguage ja .ja
    AddLanguage ko .ko
    AddLanguage ltz .ltz
    AddLanguage nl .nl
    AddLanguage nn .nn
    AddLanguage no .no
    AddLanguage pl .po
    AddLanguage pt .pt
    AddLanguage pt-BR .pt-br
    AddLanguage ru .ru
    AddLanguage sv .sv
    AddLanguage zh-CN .zh-cn
    AddLanguage zh-TW .zh-tw
    LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
    ForceLanguagePriority Prefer Fallback
    AddDefaultCharset UTF-8
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddType application/x-x509-ca-cert .crt
    AddType application/x-pkcs7-crl .crl
    AddHandler type-map var
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
    Alias /error/ "/var/www/error/"
    <IfModule mod_negotiation.c>
    <IfModule mod_include.c>
    <Directory "/var/www/error">
    AllowOverride None
    Options IncludesNoExec
    AddOutputFilter Includes html
    AddHandler type-map var
    Order allow,deny
    Allow from all
    LanguagePriority en es de fr
    ForceLanguagePriority Prefer Fallback
    </Directory>
    </IfModule>
    </IfModule>
    BrowserMatch "Mozilla/2" nokeepalive
    BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
    BrowserMatch "RealPlayer 4\.0" force-response-1.0
    BrowserMatch "Java/1\.0" force-response-1.0
    BrowserMatch "JDK/1\.0" force-response-1.0
    BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
    BrowserMatch "MS FrontPage" redirect-carefully
    BrowserMatch "^WebDrive" redirect-carefully
    BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
    BrowserMatch "^gnome-vfs/1.0" redirect-carefully
    BrowserMatch "^XML Spy" redirect-carefully
    BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
    ```
    - **4、用户认证**
    安全认证是网络安全中极其重要的一部分,当我们浏览网页时候首先要求输入正确的账号和密码才能正常访问,如下图所示:
    </strong><br><img src="/img/september/renzheng.png" style="width: 600px;">

    ``` python
    通过修改主配置文件httpd.conf
    <Directory "/var/www/html">
    Options Indexes FollowSymLinks
    # AllowOverride None
    AllowOverride AuthConfig
    AuthType Basic #定义了对用户认证的类型,常用的是mod_auth提供的Basic
    AuthName "Please input the account password" #提示信息
    AuthUserFile "/etc/httpd/conf/htpasswd" #口令文件htpasswd的路径
    Require user linuxunix #允许访问的用户名单,要是多个用户则名字间用空格分隔

    创建用户linuxunix
    htpasswd -c -m /etc/httpd/conf/htpasswd linuxunix

注意:第一次创建用户时使用-c参数,第二个用户一定不能加-c,否则会覆盖第一次创建的用户)

  • 5、虚拟主机

1、首先在/etc/httpd/conf/httpd.conf注释#DocumentRoot “/var/www/html”
2、在/etc/httpd/conf/conf.d目录下新建virtual.conf

<VirtualHost IP:端口>
   ServerAdmin linuxunix@xx.com  #管理员邮箱

    DocumentRoot "/www/linuxunix"   #网站主目录

    ServerName www.xxxx.com     #完整域名
    ErrorLog "/var/log/httpd/linuxunix-error_log"   #错误日志

    CustomLog "/var/log/httpd/linuxunix-access_log" combined  #访问日志(成功日志)


<Directory "/www/linuxunix">

    Options Indexes
    AllowOverride None
    Require all granted   
普及1、Order allow,deny        #默认拒绝全部请求
    2、Order deny,allow        #默认允许全部请求
    3、deny from 192.168.1.1  #拒绝192.168.1.1请求 
</Directory>
</VirtualHost>

如果将上面代码中的 Indexes 去掉,就可以禁止 Apache 显示该目录结构。用户就不会看到该目录下的文件和子目录列表了。Indexes 的作用就是当该目录下没有 index.html 文件时,就显示目录结构,去掉 Indexes ,Apache 就不会显示该目录的列表了
顺便普及一下:单网卡配置多ip的方法就是使用命令:
ifconfig eth0:1 192.168.108.129 netmask 255.255.255.0 up




Comments

2015-09-14