实验环境

操作系统: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 -v
Server 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 ServerLoaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)Active: active (running) since Fri 2020-05-22 12:23:03 CST; 25s agoDocs: man:httpd(8)man:apachectl(8)Main PID: 952 (httpd)Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"Tasks: 6Memory: 3.6MCGroup: /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...message
May 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输入以下内容:
<h1>Welcome</h1>
<h2>This is apache Site!</h2>

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

安装成功!说明 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
<!DOCTYPE html>
<html lang="en" dir="ltr"><head><meta charset="utf-8"><title>Welcome to Web1</title></head><body><h1>Success! Web1 home page!</h1></body>
</html>

web2添加index.html

[root@linuxcool ~]# vim /var/www/web2/index.html
<!DOCTYPE html>
<html lang="en" dir="ltr"><head><meta charset="utf-8"><title>Welcome to Web1</title></head><body><h1>Success! Web1 home page!</h1></body>
</html>

授权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
<VirtualHost *:80>
ServerName web1.com
ServerAlias www.web1.com
ServerAdmin webmaster@example.com
DocumentRoot /var/www/web1<Directory /var/www/web1/>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>ErrorLog /var/log/httpd/example.com-error.log
CustomLog /var/log/httpd/example.com-access.log combined
</VirtualHost>

#web2

[root@linuxcool ~]# vim /etc/httpd/conf.d/web2.conf
<VirtualHost *:80>
ServerName web2.com
ServerAlias www.web2.com
ServerAdmin webmaster@example.com
DocumentRoot /var/www/web2<Directory /var/www/web2/>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>ErrorLog /var/log/httpd/example.com-error.log
CustomLog /var/log/httpd/example.com-access.log combined
</VirtualHost>

重启httpd服务

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

验证httpd虚拟主机结果
http://www.web1.com

http://www.web2.com

Apache配置

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

<ifmodule mod_expires.c>ExpiresActive onExpiresBytype 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"
</ifmodule>

2、开启gzip压缩

<ifmodule mod_deflate.c>DeflateCompressionLevel 6AddOutputFilterByType DEFLATE text/htmlAddOutputFilterByType DEFLATE text/cssAddOutputFilterByType DEFLATE text/javascriptAddOutputFilterByType DEFLATE application/javascriptAddOutputFilterByType DEFLATE application/x-javascriptBrowserMatch ^Mozilla/4 gzip-only-text/htmlBrowserMatch ^Mozilla/4\.0[678] no-gzipBrowserMatch \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-varySetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-varySetEnvIfNoCase Request_URI .(?:pdf|doc)$ no-gzip dont-vary
</ifmodule>

3、配置/upload附件目录

#不代理upload路径
ProxyPass /upload !

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

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

RedirectMatch 404 ^/upload/$

5、禁用TRACE方法

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

TraceEnable off

6、设置首页重定向

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

7、设置proxy超时时间

Timeout 600
ProxyTimeout 600

Apache项目配置

程序目录:/usr/local/apache2

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

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

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

增加域名
脚本:/root/vhost.sh

root@ubuntu:~# /root/vhost.sh
Please 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

在CentOS 8上安装与配置Apache虚拟主机相关推荐

  1. 教你在CentOS 8上安装和配置Redmine项目管理系统

    Redmine Redmine是一个免费开源的项目管理和问题跟踪应用程序,它是跨平台和跨数据库的,建立在Ruby on Rails框架之上.文内含长段代码可复制可往左滑,希望对大家有帮助! 实验环境 ...

  2. 如何在CentOS 7上安装和配置MySQL Cluster

    翻译&转载:https://www.howtoforge.com/tutorial/how-to-install-and-configure-mysql-cluster-on-centos-7 ...

  3. 如何配置Apache虚拟主机?(基于IP、基于端口、基于域名)

    一.Apache虚拟机配置前的准备工作 1.下载yum源 2.安装yum包 3.安装httpd包 4.查看并关闭selinux 5.取消中心主机 cd /etc/httpd/conf vim http ...

  4. Linux下配置Apache虚拟主机(基于IP地址)

    Linux下配置Apache虚拟主机(基于IP地址) 一.虚拟主机 虚拟主机,又称虚拟服务器,是一种在单一主机或主机群上,实现多网域服务的方法,可以运行多个网站或服务的技术.虚拟主机之间完全独立,并可 ...

  5. Ubuntu系统下配置Apache虚拟主机

    本文已在本人博客https://www.nsxsg.com/archives/125首发 文章目录 Ubuntu系统下配置Apache虚拟主机 说明 配置文件 配置多个虚拟主机 Ubuntu系统下配置 ...

  6. 如何配置apache虚拟主机

    如何配置apache虚拟主机 实验目标:在apache实现基于域名的虚拟主机 实验用的XAMPP版本为1.7.7,内含apache版本为2.2.21 实验前准备: 1. 为了测试不同的域名,在Wind ...

  7. linux检测hashicorp,在Ubuntu/CentOS/Debian上安装和配置Hashicorp Vault服务器的方法

    本文介绍在Ubuntu 18.04/Debian 9/CentOS 7/Fedora上安装Vault服务器(Hashicorp Vault Server).配置Vault systemd服务.初始化V ...

  8. 在CentOS 7上安装并配置Python 3.6环境

    在纯净的 CentOS 系统上安装 Python 环境主要有两种办法. 一种是通过源码编译安装,另外一种就是安装已经打好的 RPM 包.依照个人习惯,我们先来看一下如何通过源码编译的方式安装 Pyth ...

  9. CentOS下配置apache虚拟主机

    1.apache虚拟主机配置: (1)基于域名的配置(同一个IP不同域名)方法:    ①添加域名到hosts文件中, 命令vim /etc/hosts 添加的内容: 192.168.142.140 ...

最新文章

  1. 2022-2028年中国钽酸锂单晶行业市场调查分析及投资发展潜力报告
  2. java最长类名_在java规范中类命名的字符长度是多少?
  3. 潜移默化学会WPF--绘图 学习(一)
  4. 皮一皮:据说这是英超第一轮之后的情况...
  5. ML之NB、LoR:基于NB和LoR算法对Kaggle IMDB影评数据集(国外类似豆瓣电影)情感分析进行分类
  6. 方案一TCP 完成聊天室的编写
  7. Linux下的tr编辑器命令详解
  8. Nginx-rtmp直播之业务流程分析--比较详细
  9. 容器中Java RAM的使用:不会丢失内存的5大技巧
  10. 前端学习(1981)vue之电商管理系统电商系统之完成可选项的添加操作
  11. 【面向对象】面向对象程序设计测试题6-Java中的对象交互强化测试题
  12. input和textarea的区别
  13. C# 打开指定文件夹下的excel
  14. 记录一些关于操作数据库(本地和linux服务器)常用的命令
  15. spring mvc 重新定向到一个新的Url
  16. 反编译那些事儿(二)—枚举的反编译
  17. NLP Lemmatisation(词性还原) 和 Stemming(词干提取) NLTK pos_tag word_tokenize
  18. Clouda开发随笔之block标签
  19. feed机制、fetch机制
  20. 电脑网络中看到不工作组计算机,win7系统看不到工作组计算机怎么办?win7系统看不到工作组计算机解决方法...

热门文章

  1. ICDAR发票识别冠军(文字检测Corner)
  2. 让你少走弯路,这里有一份机器学习高效入门指南
  3. 用TensorFlow训练一个目标检测器(手把手教学版)
  4. c语言中文本作图,C语言绘图问题
  5. kafka原理_Kafka 架构原理,也就这么回事
  6. 你应该关注的几个Eclipse超酷插件
  7. Cocos2dx使用 TexturePacker导出的.plist
  8. c语言从入门到精通_C语言基本概念(上)【C语言入门到精通】
  9. HandlerThread原理和实际应用
  10. APUE学习笔记-守护进程的创建