Apache服务器VirtualHost常用配置

Apache服务器中的VirtualHost用来定义虚拟主机,我们可以在一个VirtualHost中定义一个项目(网站),也可以使用反向代理的方式定义多个项目(即一个域名之下多个子项目)。以下总结Apache服务器VirtualHost常用配置。

1.常规配置

<VirtualHost *:80>
        DocumentRoot "/var/www/html"
        ServerName www.jkdev.cn
</VirtualHost>
  • DocumentRoot:网站目录
  • ServerName:网站域名

2.常用附加配置

<VirtualHost *:80>
       DocumentRoot "/var/www/html"
       ServerName localhost
       <Directory "/var/www/html">
           Options Indexes FollowSymLinks
           AllowOverride All
           Require all granted
           ErrorDocument 404 https://www.jkdev.cn/404.html
       </Directory>
</VirtualHost>
  • Directory节点:定义目录属性
  • Options Indexes FollowSymLinks:开启目录访问,显示目录结构,并允许在此目录中使用符号连接
  • AllowOverride All:允许定义.htaccess文件
  • AllowOverride None:忽略.htaccess文件
  • Require all granted:允许所有请求
  • ErrorDocument 404 https://www.jkdev.cn/404.html:路径匹配时跳转的404界面

3.开启HTTPS

<VirtualHost _default_:443>
	DocumentRoot "/var/www/html"
	ServerName hook.jkdev.cn
	SSLEngine on
	SSLCertificateFile /etc/ssl/2_hook.jkdev.cn.crt
  SSLCertificateKeyFile /etc/ssl/3_hook.jkdev.cn.key
  SSLCertificateChainFile /etc/ssl/1_root_bundle.crt
	<Directory "/var/www/html">
		Options Indexes FollowSymLinks
		AllowOverride All
		Require all granted
		ErrorDocument 404 https://www.jkdev.cn/404.html
	</Directory>
</VirtualHost>
  • SSLEngine on:开启SSL
  • SSLCertificateFile:指定证书公钥文件
  • SSLCertificateKeyFile:指定证书私钥文件
  • SSLCertificateChainFile:指定证书链文件

4.反向代理(端口转发)

<VirtualHost _default_:443>
	ServerName api.jkdev.cn
	SSLEngine on
	SSLCertificateFile /etc/ssl/api/2_api.jkdev.cn.crt
  SSLCertificateKeyFile /etc/ssl/3_api.jkdev.cn.key
  SSLCertificateChainFile /etc/ssl/1_root_bundle.crt
	
	ProxyPreserveHost On
  ProxyRequests Off	

	ProxyPass /v2 http://localhost:92/
	ProxyPass /v1 http://localhost:91/
	ProxyPass / http://localhost:90/
		
	ProxyPassReverse /v2 http://localhost:92/
	ProxyPassReverse /v1 http://localhost:91/
	ProxyPassReverse / http://localhost:90/
	
</VirtualHost>
  • ProxyPreserveHost On:开启反向代理
  • ProxyRequests Off:关闭正向代理
  • ProxyPass:设置反向代理路径
  • ProxyPassReverse:使Apache自动处理反向代理中的从定向响应,一般和ProxyPass一起用

5.http从定向到https

<VirtualHost *:80>
    ServerName jkdev.cn
    #redirect
    RewriteEngine on
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule ^(.*)?$ https://%{SERVER_NAME}$1 [L,R]
</VirtualHost>
  • RewriteEngine on:开启从定向功能
  • RewriteCond %{SERVER_PORT} !^443 :从定向条件,端口不是 443 时重定向 , 为 开头, :从定向条件,端口不是443时重定向,^为开头, :从定向条件,端口不是443时重定向开头,为结束
  • RewriteRule:重定向规则,L:表明当前规则是最后一条规则,停止分析以后规则的重写;R:强制外部重定向
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极客开发者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值