博客
关于我
在CentOS 8上安装与配置Apache虚拟主机
阅读量:206 次
发布时间:2019-02-28

本文共 5797 字,大约阅读时间需要 19 分钟。

实验环境

操作系统:Centos 8

web应用:apache
内网IP:192.168.3.21
shell执行:root

以root或具有sudo权限的用户身份登录执行如下操作。

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

安装httpd服务

[root@linuxcool ~]# yum install httpd-devel.x86_64 httpd.x86_64 httpd-tools.x86_64 -y

验证httpd是否安装成功

[root@linuxcool ~]# httpd -vServer version: Apache/2.4.6 (CentOS)Server built:   Apr  2 2020 13:13:23

在这里插入图片描述

启动httpd服务

[root@linuxcool ~]# systemctl start httpd.service[root@linuxcool ~]# systemctl status httpd.service● httpd.service - The Apache HTTP Server   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)   Active: active (running) since Fri 2020-05-22 12:23:03 CST; 25s ago     Docs: man:httpd(8)           man:apachectl(8) Main PID: 952 (httpd)   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"    Tasks: 6   Memory: 3.6M   CGroup: /system.slice/httpd.service           ├─952 /usr/sbin/httpd -DFOREGROUND           ├─953 /usr/sbin/httpd -DFOREGROUND           ├─954 /usr/sbin/httpd -DFOREGROUND           ├─955 /usr/sbin/httpd -DFOREGROUND           ├─956 /usr/sbin/httpd -DFOREGROUND           └─957 /usr/sbin/httpd -DFOREGROUNDMay 22 12:23:03 linuxcool systemd[1]: Starting The Apache HTTP Server...May 22 12:23:03 linuxcool httpd[952]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, u...messageMay 22 12:23:03 linuxcool systemd[1]: Started The Apache HTTP Server.Hint: Some lines were ellipsized, use -l to show in full.

在这里插入图片描述

apache安装成功,默认web目录/var/www/

测试

http://192.168.3.21/

在这里插入图片描述
上面的页面表示 apache 已经正常运行了,它其实访问的是/var/www/html 下面的 index.html 文档,由
于这个文档不存在,所以就显示了测试页,我们可以通过建立 index.html 的方式建立默认主页。

#cd /var/www/html#touch index.html#vi index.html输入以下内容:

Welcome

This is apache Site!

打开浏览器,访问站点地址即可见:

在这里插入图片描述
安装成功!说明 apache 服务已经正常运行!
我们可以在/var/www/html 文件夹内,针对每个用户建立一个软链接,
方法如下:

#ln –s /home/user/public_html user

这样我们就可以通过 http://192.168.5.1/user 的方式访问用户页面了。

在这里插入图片描述
基于 P IP 的虚拟主机
如果希望使用 192.168.0.10 可以访问到/var/site/bbs.example.com 目录的内容,使用 192.168.0.11 可以访问到/var/site/blog.example.com 目录的内容,需要在主配置文件中加入以下内容:
在这里插入图片描述
①:指定在 192.168.0.10 的 80 端口建立虚拟主机
②:指定该虚拟主机管理员邮箱(非必要参数)
③:指定使用 192.168.0.10 的 IP 地址访问时网站内容的存放目录
④:帮助 apache 识别该虚拟主机的 IP 地址及端口号为 192.168.0.10:80(非必要参数)
⑤:指定访问时网站错误日志地址
⑥:指定访问时的访问记录日志地址
然后修改主机的网络配置,为主机增加一个虚拟网卡,方法如下:
#ifconfig eth0:0 192.168.5.12
但使用此命令添加的虚拟网卡在重启后会失效,所以建议通过修改网卡配置文件来实现:
配置方法参考 FTP 部分虚拟主机的配置方法!(点击此连接可访问该部分)
最后,进入对应的目录建立 index.html 文件即可,步骤不重述。

配置apache虚拟主机

创建网站目录

[root@linuxcool ~]# mkdir -p /var/www/web1[root@linuxcool ~]# mkdir -p /var/www/web2

web1添加index.html

[root@linuxcool ~]# vim /var/www/web1/index.html      
Welcome to Web1

Success! Web1 home page!

web2添加index.html

[root@linuxcool ~]# vim /var/www/web2/index.html      
Welcome to Web1

Success! Web1 home page!

授权web目录权限

[root@linuxcool ~]# chttps://mp.weixin.qq.com/s/cEPsHaFWnuNgSXDjmXcSYQ[root@linuxcool ~]# chown -R apache: /var/www/web2/

创建虚拟主机文件

#web1

[root@linuxcool ~]# vim /etc/httpd/conf.d/web1.conf
ServerName web1.comServerAlias www.web1.comServerAdmin webmaster@example.comDocumentRoot /var/www/web1
Options -Indexes +FollowSymLinksAllowOverride AllErrorLog /var/log/httpd/example.com-error.logCustomLog /var/log/httpd/example.com-access.log combined

#web2

[root@linuxcool ~]# vim /etc/httpd/conf.d/web2.conf
ServerName web2.comServerAlias www.web2.comServerAdmin webmaster@example.comDocumentRoot /var/www/web2
Options -Indexes +FollowSymLinksAllowOverride AllErrorLog /var/log/httpd/example.com-error.logCustomLog /var/log/httpd/example.com-access.log combined

重启httpd服务

[root@linuxcool ~]# systemctl restart httpd.service

验证httpd虚拟主机结果

http://www.web1.com
在这里插入图片描述
http://www.web2.com
在这里插入图片描述

Apache配置

1、设置静态文件过期时间为1天

ExpiresActive on ExpiresBytype text/css "access plus 1 days" ExpiresByType text/javascript "access plus 1 days" ExpiresByType application/x-javascript "access plus 1 days" ExpiresByType image/* "access plus 1 days"

2、开启gzip压缩

DeflateCompressionLevel 6 AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html #SetEnvIfNoCase Request_URI .(?:html|htm)$ no-gzip dont-varySetEnvIfNoCase #SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary SetEnvIfNoCase Request_URI .(?:pdf|doc)$ no-gzip dont-vary

3、配置/upload附件目录

#不代理upload路径ProxyPass /upload !

4、访问附件目录/upload,不要提示403禁止,提示404不存在,防止泄露站点结构。

#访问/upload路径不提示403禁止错误,提示404不存在。

RedirectMatch 404 ^/upload/$

5、禁用TRACE方法

修改httpd.conf文件,添加如下代码,重启。

TraceEnable off

6、设置首页重定向

RewriteEngine onRewriteCond %{   REQUEST_URI} ^/$RewriteRule ^/$ /sso/ [R=permanent,L]

7、设置proxy超时时间

Timeout 600ProxyTimeout 600

Apache项目配置

程序目录:/usr/local/apache2

配置

主配置文件:/usr/local/apache2/conf/httpd.conf

虚拟主机配置:/usr/local/apache2/conf/vhost

一个项目一个域名一个配置。

增加域名

脚本:/root/vhost.sh

root@ubuntu:~# /root/vhost.shPlease input domain:(Default domain: www.cyyun.com):

运行脚本,输入需要添加的域名例如www.baidu.com,结束后会在/usr/local/apache2/conf/vhost生成www.baidu.com.conf配置文件。配合tomcat修改以下两段的IP和端口。

ProxyPass / ajp://192.168.122.100:8019/ProxyPassReverse / ajp://l92.168.122.100:8019/

新增域名添加解析后网址类似如http://www.baidu.com:10080/。网站目录是/home/wwwroot/www.cyyun.com,日志是/var/log/apache2/www.baidu.com-access_log。

重启apache2

/etc/init.d/apache2 restart

参考链接 :

在CentOS 8上安装与配置Apache虚拟主机 :https://mp.weixin.qq.com/s/cEPsHaFWnuNgSXDjmXcSYQ

RHEL7 源码安装Apache服务 https://mp.weixin.qq.com/s/2C2PLJ3SKLNbKvjav5P1Dg

转载地址:http://vtxi.baihongyu.com/

你可能感兴趣的文章
MySQL 在并发场景下的问题及解决思路
查看>>
MySQL 在控制台插入数据时,中文乱码问题的解决
查看>>
MySQL 基础架构
查看>>
MySQL 基础模块的面试题总结
查看>>
MySQL 处理插入重主键唯一键重复值办法
查看>>
MySQL 备份 Xtrabackup
查看>>
mysql 复杂查询_mysql中复杂查询
查看>>
mYSQL 外键约束
查看>>
mysql 多个表关联查询查询时间长的问题
查看>>
mySQL 多个表求多个count
查看>>
mysql 多字段删除重复数据,保留最小id数据
查看>>
MySQL 多表联合查询:UNION 和 JOIN 分析
查看>>
MySQL 大数据量快速插入方法和语句优化
查看>>
mysql 如何给SQL添加索引
查看>>
mysql 字段区分大小写
查看>>
mysql 字段合并问题(group_concat)
查看>>
mysql 字段类型类型
查看>>
MySQL 字符串截取函数,字段截取,字符串截取
查看>>
MySQL 存储引擎
查看>>
mysql 存储过程 注入_mysql 视图 事务 存储过程 SQL注入
查看>>