Linux下的Apache部署

Apache

超文本传输协议的提供软件,常用的有apache(同步阻塞模式,稳定),nginx(异步非阻塞模式,高效)
1、apache
默认端口:80
默认发布目录:/var/www/html
默认发布文件:index.html

[root@localhost mnt]# yum install httpd
[root@localhost mnt]# systemctl start httpd
[root@localhost mnt]# systemctl stop firewalld
[root@localhost mnt]# netstat -antlupe | grep httpd #查看端口,为80
tcp6 0 0 :::80 :::* LISTEN 0 149531
4764/httpd
[root@localhost mnt]# cd /var/www/html
[root@localhost html]# vim index.html
<h1> caroline <h1> #h1到h5,h1字体最大

浏览器:172.25.254.167,可以看到index.html文件的内容
这里写图片描述

[root@localhost html]# vim test.html
test'page

浏览器:172.25.254.167/test.html可以查看到test’page
这里写图片描述
2、默认信息的修改
(1)修改默认端口

[root@localhost html]# vim /etc/vimrc #设置配置文件显示行数
set nu
[root@localhost html]# vim /etc/httpd/conf/httpd.conf
Listen 8080
[root@localhost html]# systemctl restart httpd
[root@localhost html]# netstat -antlupe | grep httpd
tcp6 0 0 :::8080 :::* LISTEN 0 153295 5008/httpd

浏览器:172.25.254.167:8080/test.html #必需要添加端口才能访问
这里写图片描述
(2)修改默认目录

[root@localhost ~]# mkdir /westos
[root@localhost ~]# mkdir /westos/html
[root@localhost ~]# cd /westos/html
[root@localhost html]# vim index.html
index123
[root@localhost html]# vim /etc/httpd/conf/httpd.conf
119 #DocumentRoot "/var/www/html" #注释默认目录
120 DocumentRoot "/westos/html" #修改发布目录为/westos/html
121 <Directory "/westos">
122 require all granted #允许所有客户端访问
123 </Directory>
[root@localhost html]# systemctl restart httpd

这里写图片描述
浏览器:172.25.254.167,可以看到/westos/html/index.html文件的内容test index123
这里写图片描述
(3)修改默认发布文件

[root@localhost html]# vim test.html
test123
[root@localhost html]# vim /etc/httpd/conf/httpd.conf
119 #DocumentRoot "/var/www/html"
120 DocumentRoot "/westos/html"
121 <Directory "/westos">
122 require all granted
123 DirectoryIndex test.html #默认发布文件text.html
124 </Directory>
[root@localhost html]# systemctl restart httpd

这里写图片描述
浏览器:172.25.254.167,可以看到/westos/html/test.html的文件内容tset123,而不是index.html
这里写图片描述

(4)添加默认目录和文件

[root@localhost html]# mkdir linux
[root@localhost html]# cd linux/
[root@localhost linux]# vim index.html
test yes
[root@localhost linux]# vim test.html
test no
[root@localhost html]# vim /etc/httpd/conf/httpd.conf
126 <Directory "/westos/html/linux"> #默认目录
127 DirectoryIndex index.html #默认发布文件
128 </Directory>
[root@localhost html]# systemctl restart httpd

这里写图片描述
浏览器:172.25.254.167/linux,可以看到test.html的文件内容test yes
这里写图片描述
3、访问控制
(1)基于ip

[root@localhost html]# mkdir westos
[root@localhost html]# vim westos/test.html
control
[root@localhost html]# cd westos
[root@desktop westos]# vim /etc/httpd/conf/httpd.conf
119 DocumentRoot "/var/www/html"
120 <Directory "/var/www/html/westos">
121 Order Deny,Allow #先读Deny,再读Allow
122 Deny from all #禁止所有
123 Allow from 172.25.254.167 #允许172.25.254.167
124 </Directory>
[root@desktop westos]# systemctl restart httpd

这里写图片描述

浏览器:167主机测试,172.25.254.67/westos/test.html,可以看到文件test.html的内容
这里写图片描述
其他主机测试,被禁止:
这里写图片描述

(2)基于用户

[root@desktop westos]# htpasswd -cm apacheuser user1 #-c建立文件,-m建立用户
[root@desktop westos]# htpasswd -m apacheuser user2 #文件存在后,不加-c,否则会覆盖原内容
[root@desktop westos]# vim /etc/httpd/conf/httpd.conf
126 <Directory "/var/www/html/westos">
127 AuthUserfile /var/www/html/westos/apacheuser #读取的文件
128 AuthName "Please input user and password" #提示语
129 AuthType basic #基本认证
130 Require user user1 #允许user1
131 #require valid-user #允许所有
132 </Directory>
[root@desktop westos]# systemctl restart httpd

这里写图片描述

浏览器:172.25.254.167/westos/test.html,输入user1和密码,登陆;输入user2和密码时,无法登陆
注意测试时,每次测试前要清理浏览器缓存
4、apache的虚拟主机
本地解析

[root@foundation25 ~]# vim /etc/hosts #本地解析
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.25.254.250 content.example.com
172.25.254.167 www.westos.com news.westos.com music.westos.com login.westos.om

167主机:

[root@desktop html]# cd /etc/httpd
[root@desktop httpd]# ls
conf conf.d conf.modules.d logs modules run
[root@desktop httpd]# cd conf.d
[root@desktop conf.d]# mkdir /var/www/virtual/westos.com -p
[root@desktop conf.d]# mkdir /var/www/virtual/westos.com/news #创建news目录
[root@desktop conf.d]# mkdir /var/www/virtual/westos.com/music #创建music目录
[root@desktop conf.d]# vim /var/www/virtual/westos.com/news/index.html #news的默认发布目录
1 this is news
[root@desktop conf.d]# vim /var/www/virtual/westos.com/music/index.html #music的默认发布目录
1 this is music
[root@desktop conf.d]# vim default.conf
1 <VirtualHost _default_:80>
2 DocumentRoot /var/www/html #默认发布目录
3 CustomLog "logs/default.log" combined #结合所有错误、警告等日志
4 </VirtualHost>
[root@desktop conf.d]# vim news.conf
1 <VirtualHost *:80>
2 ServerName news.westos.com
3 DocumentRoot "/var/www/virtual/westos.com/news/" #news的默认发布目录
4 CustomLog "logs/news.log" combined
5 </VirtualHost>
6 <Directory "/var/www/virtual/westos.com/news/"> #给该目录授权
7 Require all granted
8 </Directory>
[root@desktop conf.d]# cp news.conf music.conf
[root@desktop conf.d]# vim music.conf
1 <VirtualHost *:80>
2 ServerName music.westos.com
3 DocumentRoot "/var/www/virtual/westos.com/music/" #music的默认发布目录
4 CustomLog "logs/music.log" combined
5 </VirtualHost>
6 <Directory "/var/www/virtual/westos.com/music/"> #给该目录授权
7 Require all granted
8 </Directory>
[root@desktop conf.d]# systemctl restart httpd #重启

浏览器测试,一个ip可测试多个发布页面:
这里写图片描述这里写图片描述
5、https

[root@desktop conf.d]# yum install mod_ssl -y
[root@desktop conf.d]# yum search crypt
[root@desktop conf.d]# yum install crypto-utils.x86_64 -y
[root@desktop conf.d]# genkey www.westos.com
[root@desktop conf.d]# vim ssl.conf #修改默认证书和钥匙为自己生成的
[root@desktop conf.d]# systemctl restart httpd

生成证书和钥匙:
这里写图片描述
不发送请求到CA证书认证中心:
这里写图片描述
这里写图片描述
下载完成,编辑相关信息
这里写图片描述
浏览器:https://172.25.254.167,下载证书
这里写图片描述
这里写图片描述
可以查看详细信息:
这里写图片描述

6、apache的网页重写


[root@foundation25 ~]# vim /etc/hosts
172.25.254.125 www.westos.com news.westos.com music.westos.com login.westos.com
[root@desktop conf.d]# cp news.conf login.conf
[root@desktop conf.d]# vim login.conf
1 <VirtualHost *:443>
2 ServerName login.westos.com
3 DocumentRoot "/var/www/virtual/westos.com/login/"
4 CustomLog "logs/login.log" combined
5 SSLEngine on
6 SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt
7 SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key
8 </VirtualHost>
9 <Directory "/var/www/virtual/westos.com/login/"> 
10 Require all granted
11 </Directory>
12
13 <VirtualHost *:80> #访问转化
14 ServerName login.westos.com
15 RewriteEngine on
16 RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301] 
17 </VirtualHost>
#^(/.*)$客户主机在浏览器中输入的字符,%{HTTP_HOST}$1 客户主机在浏览器中输入的内容去掉协议部分,[redirect=301] 临时转换
[root@desktop conf.d]# mkdir /var/www/virtual/westos.com/login
[root@desktop conf.d]# vim /var/www/virtual/westos.com/login/index.html
1 this is login
[root@desktop conf.d]# systemctl restart httpd

这里写图片描述

浏览器输入login.westos.com时,自动转化为https://login.westos.com,下载证书后即可查看内容
这里写图片描述
这里写图片描述
7、php格式文件

[root@desktop conf.d]# yum install php -y
[root@desktop conf.d]# cd /var/www/html/
[root@desktop html]# ls
index.html test.html westos
[root@desktop html]# vim index.php
1 <?php
2 phpinfo();
3 php?>
~
[root@desktop html]# vim /etc/httpd/conf/httpd.conf
189 <IfModule dir_module>
190 DirectoryIndex index.php index.html #先读取index.php文件
191 </IfModule>
[root@desktop html]# systemctl restart httpd

浏览器:172.25.254.167
这里写图片描述
8、cgi文件格式

[root@desktop html]# mkdir cgi
[root@desktop html]# vim cgi/index.cgi
1 #!/usr/bin/perl
2 print "Content-type: text/html\n\n";
3 print `date`; #打印当前时间
[root@desktop html]# chmod +x cgi/index.cgi #添加可执行权限
[root@desktop html]# ./cgi/index.cgi
[root@desktop httpd]# cd /etc/httpd/conf.d/
[root@desktop conf.d]# ls
autoindex.conf login.conf music.conf php.conf ssl.conf userdir.conf
default.conf manual.conf news.conf README tmprequest welcome.conf
[root@desktop conf.d]# vim default.conf
1 <VirtualHost _default_:80>
2 DocumentRoot /var/www/html
3 CustomLog "logs/default.log" combined
4 </VirtualHost>
5 <Directory "/var/www/html/cgi">
6 Options +ExecCGI #对cgi的文件可执行
7 AddHandler cgi-script .cgi
8 DirectoryIndex index.cgi #默认执行文件index.cgi
9 </Directory>
~
[root@desktop html]# systemctl restart httpd

浏览器:172.25.254.167/cgi
这里写图片描述
10、squid正向代理
可以上网的主机:

[kiosk@foundation Desktop]# yum install squid -y
[kiosk@foundation Desktop]# vim /etc/squid/squid.conf
56 http_access allow all
57
58 # Squid normally listens to port 3128
59 http_port 3128 #3128端口
60
61 # Uncomment and adjust the following to add a disk cache directory.
62 cache_dir ufs /var/spool/squid 100 16 256
#在这个目录下创建16个一级目录,256个二级目录,最大为100M
[kiosk@foundation Desktop]# systemctl restart squid

不能上网的虚拟机,进行如下设置:
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
[root@desktop ~]$ ping www.baidu.com #不通
不能上网,只是在代理主机那儿读取缓存而已

11、squid反向代理
167主机:
有apahe服务,且配置成功,浏览器172.25.254.167可以看到默认发布文件的内容
168主机:

[root@linux ~]# yum install squid -y
[root@linux ~]# vim /etc/squid/squid.conf
http_access allow all
# Squid normally listens to port 3128
http_port 80 vhost vport #虚拟主机、虚拟端口
cache_peer 172.25.254.167 parent 80 0 proxy-only #通过80端口,获取167的缓存,0表示down时不告知其他反向代理,仅代理
# Uncomment and adjust the following to add a disk cache directory.
cache_dir ufs /var/spool/squid 100 16 256
[root@linux ~]# systemctl restart squid

这里写图片描述

猜你喜欢

转载自blog.csdn.net/yyyxxxs/article/details/80521872
今日推荐