设为首页 收藏本站
查看: 3292|回复: 0

[经验分享] Linux系统服务搭建之Apache

[复制链接]

尚未签到

发表于 2018-11-18 12:33:30 | 显示全部楼层 |阅读模式
1、  www: world  wide  web 万维网

http   协议超文本传输协议
HTML语言: 超文本标识语言 index.html
2、 URL:统一资源定位: 协议+域名:端口+网页文件名
http://www.baidu.com:80/phpmyadmin/index.php
3 搭建www的服务器的方法
windows   IIS  + asp  + SQLserver
IIS: Internet  Information server
Linux   apache+mysql+php
     nginx

一、相关文件
apache配置文件     
源码包安装:/usr/lcoal/apache2/etc/httpd.conf(主配置文件)
            /usr/local/apache/etc/extra/*.conf(子配置文件)
rpm包安装:/etc/httpd/conf/httpd.conf
网页保存位置:
源码包:     /usr/local/apache2/htdocs/
rpm包安装:  /var/www/html/
日志保存位置
源码包:/usr/local/apache2/logs/
rpm包: /var/log/httpd/

二、配置文件
         注意:apache配置文件严格区分大小写
1、  针对主机环境的基本配置
ServerRoot   apache主目录  
/usr/local/apache2
Listen       监听端口   :80
LoadModule   加载的相关模块      php5
        
User
Group        用户和组
ServerAdmin  管理员邮箱
ServerName
服务器名(没有域名解析时,使用临时解析。默认不开启)
ErrorLog "logs/error_log   错误日志
CustomLog "logs/access_log" common  正确访问日志
DirectoryIndex index.html index.php  
默认网页文件名,优先级顺序
Include  etc/extra/httpd-vhosts.conf     
子配置文件中内容也会加载生效
     
2 主页目录及权限

DocumentRoot "/usr/local/apache2//htdocs"
  #网页文件存放目录(默认)

  #定义指定目录的权限

Options Indexes FollowSymLinks
     #options
     None:     没有任何额外权限
     All:   所有权限
Indexes: 浏览权限(当此目录下没有默认网页文件时,显示目录内容)
  FollowSymLinks:准许软连接到其他目录

AllowOverrideNone
#定义是否允许目录下
.htaccess文件中的权限生效
None:.htaccess中权限不生效
All:文件中所有权限都生效
AuthConfig:文件中,只有网页认证的权限生效。

Require all granted   访问控制列表
        #定义此目录的允许访问权限
以下5个例子都是在Require allgranted紧下面插入(很重要)
例1:   仅允许IP为192.168.1.1的主机访问

      Require all  granted
      Require ip 192.168.1.1

例2: 仅允许192.168.0.0/24网络的主机访问
  
      Require all  granted
      Require ip 192.168.1.0/24
  
例3:    禁止192.168.1.2的主机访问,其他的都允许访问,

      Require all  granted
      Require not ip 192.168.1.2

4:    允许所有访问,
Require all  granted         
5:    拒绝所有访问,
Require all  denied

三、四个小实验
实验环境:

  使用lamp环境安装好的apache进行试验

安装完成后,先启动apache进行服务验证,是否安装成功,并且主页是否可以访问。
  注:发现启动服务报错:AH00558: httpd: Could not reliably determine the server's fullyqualified domain name, using localhost.localdomain. Set the 'ServerName'directive globally to suppress this message
解决办法:打开主配置文件httpd.conf
搜索ServerName     (约在200行左右)
修改为 ServerName  localhost:80(并且去掉前面的#注释)

实验一:目录别名
可以使特定的网站程序不出现在网站根目录下面,而这样的话,就可以避免和原来的程序本身发生混淆和冲突;缩短网页目录的纵深,减少URL的长度。

1.     打开apache主配置文件
#Includeetc//extra/httpd-autoindex.conf (将#号去掉)
2.     进到子配置文件目录extra下,打开httpd-autoindex.conf
仿照例子写一个别名:
Alias  /a/ "/www/a/"   #实际目录结束要有/

    Options Indexes MultiViews
    AllowOverride None
    Require all granted

在/www/a/目录下手动创建index.html文件

3.     将apache服务重启:
/usr/local/apache2/bin/apachectlstop
/usr/local/apache2/bin/apachectlstart
注:重启源码包安装的apache需要先关闭,再启动。

4.     验证试验结果:
打开浏览器输入   服务器IP/a/ (最后的“/”必须有)


实验二:用户认证
  提高网站安全性,保护个别页面的信息,限制特定目录只有指定用户可以访问。

1.打开主配置文件在最下面添加:
  #被保护目录
    Options Indexes
    AllowOverride All   #(开启权限认证文件.htaccess)
    Require all granted

2.在指定目录下创建权限文件:
cd  /usr/local/apache2/htdocs/baohu  
Vi   .htaccess      #添加下面的内容
AuthName"50 docs"   #提示信息
AuthTypebasic       #加密类型
AuthUserFile/usr/local/apache2/htdocs/baohu/apache.passwd
#密码文件,文件名自定义。(但是路径要对,使用绝对路径)
requirevalid-user     #允许密码文件中所有用户访问
3.使用命令生成密码文件apache.passwd,加入允许访问的用户。(此用户和系统用户无关
Htpasswd
–c /usr/local/apache2/htdocs/baohu/apache.passwd test1
-c 建立密码文件,只有添加第一个用户时,才能-c
htpasswd  
-m /usr/local/apache2/htdocs/baohu/apache.passwd  test2
-m  再添加更多用户时,使用-m参数
4. 验证访问:(自己手动去目录下创建index.html文件)
浏览器输入 服务器IP/baohu/index.html

实验三:***虚拟主机***

虚拟主机的分类:
1)   基于IP的虚拟主机:一台服务器,多个ip,搭建多个网站
  Ifconfig  eth0:0 IP      #建立网卡子端口
2)   基于端口的虚拟主机:一台服务器,一个ip,搭建多个网站,每个网络使用不同端口访问
3)   基于名字的虚拟主机:一台服务器,一个ip,搭建多个网站,每个网站使用不同域名访问

1.     实验搭建(准备工作)
a.   域名解析:准备两个域名
www.sohu.com   
www.sina.com
b.   没搭建DNS,只能手动添加到本地hosts文件内进行解析
  Windows系统中:C:\WINDOWS\system32\drivers\etc\hosts
  Linux系统中:/etc/hosts
c.   网站主页目录规划
在/htdocs/目录下分别创建sohu 和 sina 两个目录
并且在分别在新建目录内创建index.html文件(分别写不一样的内容
2.   实验流程(修改配置文件
A.   vi  /usr/local/apache2/etc/httpd.conf  
#修改主配置文件开启文件关联
Include etc//extra/httpd-vhosts.conf  #此行取消注释
  
B.   vi  /usr/local/apache2/etc/extra/httpd-vhosts.conf
  #添加下方内容(添加之前先把原先存在的示例删除掉

Options Indexes
AllowOverride None
Require all granted



Options Indexes
AllowOverride None
Require all granted


       #虚拟主机标签
ServerAdmin webmaster@sina.com      #管理员邮箱
DocumentRoot "/usr/local/apache2/htdocs/sina"  #网站主目录
ServerName www.sina.com          #完整域名
ErrorLog "logs/sina-error_log"      #错误日志
CustomLog "logs/sina-access_log" common  #访问日志



ServerAdmin webmaster@sohu.com
DocumentRoot "/usr/local/apache2/htdocs/sohu"
ServerName www.sohu.com
ErrorLog "logs/sohu.com-error_log"
CustomLog "logs/sohu.com-access_log" common


C.   重启服务,验证结果
Windows 下:浏览器下输入两个不同的域名验证网页内容
Linux下:通过elinks命令验证:elinks 域名
实验四:rewrite重写功能
URL中输入一个地址会自动跳转为另一个,多用于网站更换或者添加新域名。

实验要求:
A 虚拟主机能正常访问
B 打开主配置文件开启重写模块
             LoadModule rewrite_module modules/mod_rewrite.so   #取消注释

域名跳转实验:
1.   修改虚拟主机配置文件
vi */extra/httpd-vhosts.conf

Options Indexes FollowSymLinks
AllowOverride All
Require all granted


2.   创建规则匹配文件
vi  */.htaccess       #在指定的网站网页目录下创建
RewriteEngine on
#开启rewrite功能
RewriteCond %{HTTP_HOST} www.sina.com
#把以www.sina.com  开头的内容赋值给HTTP_HOST变量
RewriteRule  .*   http://www.sohu.com
#.*  输入任何地址都跳转到http://www.sohu.com

3.   重启服务器,进行访问验证

静态向动态跳转:
1.   修改虚拟主机配置文件
vi */extra/httpd-vhosts.conf

Options Indexes FollowSymLinks
AllowOverride All
Require all granted

2.   创建规则文件
vi  */.htaccess
RewriteEngine on
RewriteRule index(\d+).html index.php?id=$1
#输入index(数值).html时,跳转到index.php文件

3.   重启服务,进行访问验证
验证方式:在*/htdocs/sohu/目录下新建index.php文件
访问www.sohu.com/index(数值).html看访问的是否是你的index.php的网页
注:静态网页向动态网页跳转这个实验,只有完整的lamp环境下才能访问。

四、常用子配置文件

httpd-default.conf #apache线程控制,必须开启
Timeout 300   #超时时间
KeepAlive On   
#开启线程控制(不开启的话用户访问页面会产生一个进程,访问其他页面会产生另一个进程,这样的话一个用户会产生好多个进程,会降低apache性能。开启此项,当用户访问网站时会产生一个进程,打开其他页面时会产生线程,保证了一个用户只产生一个进程。网站此项功能必须开启。)
MaxKeepAliveRequests 100 #最大线程连接数

httpd-info.conf #apache状态统计

SetHandler server-status
Order deny,allow
Deny from all
Allow from .example.com

#通过访问www.domain.com/server-status可以查看apache状态。如果页面显示not found 则需要修改目录权限,在Deny from all下加上allow from ip(允许的ip)。
httpd-manual.conf #apache帮助文档
通过访问www.domain.com/manual 查看apache帮助文档,一般为英文,没用,可以到apache官网下载帮助文档。

httpd-languages.conf #语言编码
要使其生效需要在主配置文件中打开,如果中文乱码不是浏览器编码的原因可能是此配置文件注释没打开。

五、yum安装apache后的虚拟主机
目的:实现apache的虚拟主机DNS的搭配使用
应用技术基于域名的虚拟主机  和  基于IP的虚拟主机
前提:1、一台双网卡的WEB服务器,eth0-192.168.115.195
          eth1-192.168.115.199
      2、一台DNS服务器eth0-192.168.115.194
      3、一台客户机192.168.115.200
5.1、规划

网站               IP          DocumentRoot      ServerAdmin
---------------------------------------------------------------------www.163.com     192.168.115.195   /www/163.com      www.163.com
www.sina.com     192.168.115.195   /www/sina.com     www.sina.com
www.sohu.com     192.168.115.195   /www/sohu.com     www.sohu.com
www.baidu.com    192.168.115.199   /www/baidu.com   www.baidu.com
www.baidu.com
是基于IP的
---------------------------------------------------------------------
5.2、配置DNS服务器
5.2.1、配置本地yum源,安装软件bind
启动服务service  named  start
5.2.2、配置网卡服务并重启网络服务
DSC0000.png
service  network  restart


5.2.3、配置主配置文件named.conf
删除其他所有多余行,只保存下面的内容
DSC0001.png       






5.2.4、配置数据配置文件


创建相关域名的正向解析文件并更改所有者为 named
DSC0002.png


配置各个相关域名的正向解析文件
163.com
DSC0003.png


sina.com
DSC0004.png

Sohu.com
DSC0005.png

Baidu.com(基于IP的虚拟主机)
DSC0006.png

重启DNS服务   service  named restart


5.3、配置115.200客户机测试
此处使用的是Win客户机,配置如下:
DSC0007.png

测试
DSC0008.png
5.4、配置apache服务器
5.4.1、配置网卡并重启网络服务
Eth0      
DSC0009.png


Eth1
DSC00010.png
重启网络服务service  network  restart

5.4.2、配置本地yum源,安装httpd
yum   -y   install  httpd
service  httpd   start

5.4.3、创建相关目录及主页
DSC00011.png
  实现重启服务时不出现warning信息

vi   /etc/httpd/conf/httpd.conf
ServerName  www.example.com:80   //改成192.168.115.195:80

配置Apache实现虚拟主机
vi  /etc/httpd/conf/httpd.conf

NameVirtualHost *:80//  改为NameVirtualHost 192.168.115.195:80,IP是本机的IP
NameVirtualHost 192.168.115.195:80支持基于主机名的虚拟主机

vi /etc/httpd/conf/httpd.conf  
主配置文件最下面添加以下内容
DSC00012.png





5.4.4、测试验证
DSC00013.png




  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-636582-1-1.html 上篇帖子: Linux服务器内核参数优化(适合Apache,Nginx,Squid等多种web应用) 下篇帖子: 七、Web服务器Apache的配置和管理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表