基于linux下apache服务的部署,linuxapache部署


######################1.apache服务简介#######################################

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。同时Apache音译为阿帕奇,是北美印第安人的一个部落,叫阿帕奇族,在美国的西南部。

http 软件提供超文本传输协议 
apache 同步阻塞模式 稳定(用于认证) 
ndinx 异步非阻塞模式 高效(用于浏览)

apache服务: 
http服务的默认端口为80 

http中的默认文件为index.html;浏览器中http后的’/’=/var/www/html(默认目录);ftp后的’/’=/var/ftp

######################2.安装apache服务##########################################################3

yum install httpd -y                           ##安装 apache 服务软件包: 

[root@localhost ~]# systemctl start httpd

[root@localhost ~]# systemctl stop firewalld

[root@localhost ~]# netstat -antlupe | grep httpd

tcp6 0 0 :::80 :::* LISTEN 0 27316 1679/httpd

[root@localhost ~]# cd /var/www/html/

[root@localhost html]# ls

[root@localhost html]# vim index.html

h1是字体设置,放大加粗

[root@localhost html]# cat index.html

hello

浏览器:172.25.254.119

[root@localhost html]# vim test.html

[root@localhost html]# cat test.html

test

浏览器:172.25.254.119/test.html  




################################3,http服务基本配置修改############################################

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

################(1)服务端口修改:

[root@localhost html]# vim /etc/httpd/conf/httpd.conf ##更改端口为8011

42 Listen 8011

[root@localhost html]# systemctl restart httpd ##重启

[root@localhost html]# netstat -antlupe | grep httpd ##查看端口

浏览器:172.25.254.119 ##会报错(需要修改防火墙支持端口)

[root@localhost html]# vim /etc/httpd/conf/httpd.conf ##改回原来端口80

Listen 80

[root@localhost html]# systemctl restart httpd

浏览器测试: 

直接输入ip时默认端口为80,不能查看到内容,输入ip:8011时可以查看到内容。



##########2.更改默认发布目录

[root@node1 html]# vim /etc/httpd/conf/httpd.conf

修改端口为原端口80

[root@node1 html]# systemctl restart httpd

[root@node1 html]# mkdir /westos/html -p #建立目录/westos和之下的/html

[root@node1 html]# cd /westos/html

[root@node1 html]# vim index.html #编辑默认发布文件


[root@node1 html]# vim /etc/httpd/conf/httpd.conf


[root@node1 html]# systemctl restart httpd

在网页浏览:172.25.254.128


#############3.更改默认发布文件

vim /westos/html/test.html

vim /etc/httpd/conf/httpd.conf

编写:

DocumentRoot "/westos/html"

<Directory "/westos">

require all granted

DirectoryIndex test.html

</Directory>


[root@localhost html]# systemctl restart httpd

验证:浏览器:172.25.254.128 显示test's page

#############4.添加发布目录及文件

mkdir /westos/html/linux

vim /westos/html/linux/index.html

写入index's page

vim /westos/html/linux/test.html

写入test's page

验证:浏览器:172.25.254.107/linux,显示test's page


vim /etc/httpd/conf/httpd.conf #将/westos/html下的目录/linux也设置为可访问的目录以及里面的文件


验证:浏览器:172.25.254.107/linux ,显示index’s page 


##################4.访问权限控制#############################################################

1.基于ip访问方式

[root@localhost ~]# cd /var/www/html/
[root@localhost html]# mkdir westos
[root@localhost html]# ls
index.html  test.html  westos
[root@localhost html]# vim /etc/httpd/conf/httpd.conf     
打开119 DocumentRoot "/var/www/html"
注释120 DocumentRoot "/westos/html"
121 <Directory "/var/www/html/westos">
122         Order Allow,Deny                   ##先读Allow后读Deny
123         Allow from All                     ##都可以
124         Deny from 172.25.254.71            ##不可以
125 </Directory>
##除了 172.25.254.71 登陆不成功,其余的都可以
[root@localhost html]# systemctl restart httpd
浏览器分别输入:172.25.254.119     ##登陆成功
              172.25.254.71      ##登录失败
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16


修改主配置文件/etc/httpd/conf/httpd.conf 

浏览器:172.25.254.119 

浏览器:172.25.254.71 

[root@localhost html]# vim /etc/httpd/conf/httpd.conf 
121 <Directory "/var/www/html/westos">
122         Order Deny,Allow             ##先读deny,后读allow
123         Allow from 172.25.254.119    ##唯一一个可以
124        Deny from All                 ##不可以
125 </Directory>
[root@localhost html]# systemctl restart httpd
浏览器:172.25.254.119
       172.25.254.71
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

 
浏览器:172.25.254.119 

浏览器:172.25.254.71 ,就不可以得到结果

###########2.基于用户的访问控制

[root@localhost westos]# cd /etc/httpd
[root@localhost httpd]# ls
    
[root@localhost httpd]# htpasswd -cm apacheuser admin  ##-cm新建apache用户并设定密码
    
[root@localhost httpd]# cat apacheuser   ##查看apache的用户
    
[root@localhost httpd]# htpasswd -cm apacheuser tom  ##-cm新建apache用户并设定密码
    
[root@localhost httpd]# cat apacheuser    

        

##建立了两个用户后发现现在只有一个用户,admin用户被tom用户覆盖

[root@localhost httpd]# htpasswd -m apacheuser admin     ##注意添加用户时要使用-m,否则-cm会覆盖原有的用户
[root@localhost httpd]# cat apacheuser
    

[root@localhost httpd]# vim /etc/httpd/conf/httpd.conf
注释掉之前写的
    
[root@localhost httpd]# systemctl restart httpd
用真机网页浏览:172.25.254.128/westos,需要用户和密码登录

    

    

         ##用admin用户和密码登录时可以看到文件内容

注意:用有效密码登陆后需要删除登陆密码的历史记录,否则其他用户也可以直接登录。

          在配置文件中加入Require valid-user   是允许文件的所有用户登录。

###############5.apache的虚拟主机设置###########################################

虚拟主机允许您从一个 httpd 服务器同时为多个网站提供服务。在本节中 , 我们将了解基于名称的虚拟主机其中多个

主机名都指向同一个 IP 地址 , 但是 Web 服务器根据用于到达站点的主机名提供具有不同内容的不同网站。

在真机上:
[root@foundation68 ~]# vim /etc/hosts  ##在访问主机进行域名解析
     
[root@foundation68 ~]# systemctl restart httpd    ##重启http服务  

可以在网页上浏览

          

可以看到,三个网页出现的内容都是一样的

在虚拟机上:
[root@localhost ~]# cd /etc/httpd
[root@localhost httpd]# ls
    
[root@localhost httpd]# cd conf.d/
[root@localhost conf.d]# ls
    
[root@localhost conf.d]# vim default.conf   ##配置默认文件
    
[root@localhost conf.d]# mkdir /var/www/virtual/westos.com/news -p   ##建立虚拟机主机默认发布的目录
[root@localhost conf.d]# mkdir /var/www/virtual/westos.com/music -p
[root@localhost conf.d]# vim /var/www/virtual/westos.com/news/index.html  ##建立虚拟机主机默认发布的文件
    
[root@localhost conf.d]# vim /var/www/virtual/westos.com/music/index.html
    
[root@localhost conf.d]# vim news.conf
    
[root@localhost conf.d]# cp news.conf music.conf
[root@localhost conf.d]# vim music.conf
:%s/news/music/g     ##将文件里所有的news换成music
    
[root@localhost conf.d]# systemctl restart httpd
在网页浏览www.westos.com
    
在网页浏览news.westos.com
    
在网页浏览music.westos.com

    


################6.自定义自签名证书###############################################

如果加密的通信非常重要,而经过验证的身份不重要,管理员可以通过生成 self-signed certificate 来避免与认证机构进行交互所带来的复杂性。 
使用 genkey 实用程序(通过 crypto-utils 软件包分发),生成自签名证书及其关联的私钥。为了简化起见,genkey 将在“正确”的位置( etc/pki/tls 目录)创建证书及其关联的密钥。相应地,必须以授权用户(root)身份运行该实用程序。

[root@localhost ~]# cd /etc/httpd/conf.d

[root@localhost conf.d]# yum install mod_ssl crypto-utils -y
[root@localhost conf.d]# systemctl restart httpd
[root@localhost conf.d]# genkey www.westos.com  ##生成证书


   

  


[root@localhost conf.d]# vim /etc/httpd/conf.d/ssl.conf   ##安装证书及其私钥

    

   

[root@localhost conf.d]# systemctl restart httpd

在网页浏览:https://www.westos.com/



    ##可以看到看到网址前面有一个小锁


########################7.apache证书网页重写############################################################

在真机上:
[root@foundation68 ~]# vim /etc/hosts

[root@foundation68 ~]# systemctl restart httpd

在虚拟机上:

[root@localhost conf.d]# cp news.conf login.conf
[root@localhost conf.d]# mkdir -p /var/www/virtual/westos.com/login/
[root@localhost conf.d]# vim /var/www/virtual/westos.com/login/index.html
    
[root@localhost conf.d]# vim login.conf
    
[root@localhost conf.d]# systemctl restart httpd
网页浏览:login.westos.com

    ##输入网址是前面没有加https时也会出现前面的锁


##########################8.php语言支持######################################

HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版。https协议需要到ca申请证书,一般免费证书很少,需要交费。而http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。http的连接很简单,是无状态的。HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全。

[root@node1 ~]# cd /var/www/html
[root@node1 html]# yum install php -y   #下载php 
[root@node1 html]# vim index.php  #编写默认访问文件
  • 1
  • 2
  • 3

文件内容如下: 

[root@node1 html]# vim /etc/httpd/conf/httpd.conf  #修改默认首先访问index.php
  • 1

文件内容如下: 

[root@node1 html]# systemctl restart httpd
  • 1

在浏览器测试,可以看到php页面: 

#####################9.通用网关接口(CGI)#########################################

 通用网关接口 (CGI) 是网站上放置动态内容的最简单的方法。

CGI 脚本可用于许多目的 , 但是谨慎控制使用哪个 CGI 脚本

以及允许谁添加和运行这些脚本十分重要。编写质量差的 CGI

脚本可能为外部攻击者提供了破坏网站及其内容安全性的途径。
因此 , 在 Web 服务器级别和 SELinux 策略级别 , 都存在用于限
制 CGI 脚本使用的设置.

[root@localhost ~]# cd /var/www/html

[root@localhost html]# mkdir cgi

[root@localhost html]# ls
    
[root@localhost html]# vim cgi/index.cgi
    
[root@localhost html]# chmod +x cgi/index.cgi  ##给cgi一个可执行文件
[root@localhost html]# ./cgi/index.cgi    ##查看运行出来可看到的结果
    
[root@localhost html]# cd /etc/httpd/conf.d
[root@localhost conf.d]# vim default.conf 
   
[root@localhost conf.d]# systemctl restart httpd
网页浏览:172.25.254.128/cgi/index.cgi

可以在网页看到运行脚本的结果

     


#########################10、搭建Discuz论坛#####################################

[root@localhost ~]# systemctl start mariadb      ##先下载好mariadb,再开启服务
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# cd /var/www/html
[root@localhost html]# ls
    

下载一个Discuz_X3.2_SC_UTF8.zip论坛软件包到/var/www/html

[root@localhost html]# unzip Discuz_X3.2_SC_UTF8.zip     ##解压软件包

[root@localhost html]# ls
    
[root@localhost html]# chmod 777 /var/www/html/upload/ -R     ##要给upload一个可写权限
[root@localhost html]# yum install php-mysql -y
[root@localhost html]# systemctl restart httpd

在网页浏览:http://172.25.254.128/upload/install





注意:在安装数据库的时候要设定一个密码,否则会报错


登录用户


   


####################11.squid正向代理################################################

 Squid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器。Squid有广泛的

用途,从作为网页服务器的前置cache服务器缓存相关请求来提高Web服务器的速度,到为一组人共享网络资源而缓存万维网,域

名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。Squid主要设计用于在Unix一类系统运行。

  squid可以做代理也可以做缓存。

  squid不仅可以做正向代理,又可以做反向代理。

  正向代理,squid后面是客户端,客户端上网要通过Squid去上;反向代理,squid后面是服务器,服务器返回给用户数据需

要走squid。

在真机上:(要保证可以上网)
[root@foundation68 Desktop]# yum install squid -y
[root@foundation68 Desktop]# vim /etc/squid/squid.conf

    

     

[root@foundation68 Desktop]# systemctl start squid
[root@foundation68 Desktop]# ping www.baidu.com



在虚拟机上的网页浏览:www.baidu.com   ##设置

 

  

##可以在不能上网的虚拟机打开百度,是因为它缓存了主机上的网页。


###################12.squid反向代理#######################################

在server虚拟机:IP=172.25.254.228(充当西安分客服端)
[root@xian ~]# yum install squid -y
[root@xian ~]# systemctl start squid
[root@xian ~]# vim /etc/squid/squid.conf



[root@xian ~]# systemctl restart squid
[root@xian ~]# systemctl stop firewalld

在desktop虚拟机:(充当深圳总客服端)
[root@shenzhen ~]# cd /var/www/html
[root@shenzhen html]# vim index.html
    
[root@shenzhen html]# systemctl restart httpd
[root@shenzhen html]# vim /etc/httpd/conf/httpd.conf
     
[root@shenzhen html]# systemctl restart httpd

在网页浏览:http://172.25.254.228/    ##设置里关掉上一步开启的  (充当客户端)



##这样用客户端就可以看到想要看到的内容,并且快速又方便。

注意:在所有实验中,httpd服务要处于打开状态,防火墙处于关闭状态,这样在网页上才能查看到内容。

相关内容

    暂无相关文章