目录

  • http 高级配置 虚拟主机,https 编译安装

    • http 重定向 https

      • HSTS
      • HSTS preload list
    • http 自带的工具程序
    • httpd的压力测试工具
    • 实现状态页
    • 反向代理功能
    • 虚拟主机
      • 配置格式
      • 基于IP的虚拟主机配置
      • 基于端口的虚拟主机配置
      • 基于FQDN(主机头)的虚拟主机
    • 搭建Https
      • 创建CA服务器
      • 为服务器申请证书
      • web服务器安装ssl 模块

http 高级配置 虚拟主机,https 编译安装

http 重定向 https

将http请求转发至https的URL,防止客户在访问网站的时候,使用http协议头,而不使用https。造成不安全的连接。但是这个方法存在一个问题,因为他的连接步骤是这个样子的。而且他不存在记录一说,用户每次使用http来访问,他都会重定向一次。

重定向
Redirect [status] URL-path URL

status状态:
Permanent:Returns a permanent redirect status (301) indicating thatthe resource has moved permanently
Temp:Returns a temporary redirect status (302). This is the default

配置示例:

vim /etc/httpd/conf.d/redirect.conf
Redirect temp / https://www.magedu.com/

HSTS

HSTS:HTTP Strict Transport Security
服务器端配置支持HSTS后,会在给浏览器返回的HTTP首部中携带HSTS字段。浏览器获取到该信息后,会将所有HTTP访问请求在内部做307跳转到HTTPS。而无需任何网络过程。这样的话,只有第一次访问,才会是使用http协议,后面都自动默认https协议

实现HSTS示例:

vim /etc/httpd/conf.d/redirect.conf
Header always set Strict-Transport-Security "max-age=31536000"
RewriteEngine on
RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=302]

HSTS preload list

是Chrome浏览器中的HSTS预载入列表,在该列表中的网站,使用Chrome浏览器访问时,会自动转换成HTTPS。Firefox、Safari、Edge浏览器也会采用这个列表。当你的网址加入该列表后,使用浏览器访问该网站,只会使用https协议。

http 自带的工具程序

htpasswd:basic认证基于文件实现时,用到的账号密码文件生成工具
apachectl:httpd自带的服务控制脚本,支持start和stop
rotatelogs:日志滚动工具
access.log -->
access.log, access.1.log -->
access.log, acccess.1.log, access.2.log

httpd的压力测试工具

httpd的压力测试工具

  • ab, webbench, http_load, seige
  • Jmeter 开源
  • Loadrunner 商业,有相关认证
  • tcpcopy:网易,复制生产环境中的真实请求,并将之保存

ab [OPTIONS] URL,来自httpd-tools包

  • -n:总请求数
  • -c:模拟的并行数
  • -k:以持久连接模式测试
  • ulimit –n # 调整能打开的文件数

实现状态页

#vim /etc/httpd/conf.d/test.conf
<Location "/status">SetHandler server-statusRequire all granted
</Location>

反向代理功能

启用反向代理

  • ProxyPass "/" "http://www.example.com/"
  • ProxyPassReverse "/" "http://www.example.com/"

特定URL反向代理

  • ProxyPass "/images" "http://www.example.com/"
  • ProxyPassReverse "/images" http://www.example.com/

示例:

<VirtualHost *>
ServerName www.magedu.com
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>

虚拟主机

在一个物理服务上,搭建多个web站点,根据用户的访问。返回不同的站点

站点标识: socket

  • IP相同,但端口不同
  • IP不同,但端口均为默认端口
  • FQDN不同: 请求报文中首部 Host: www.magedu.com

有三种实现方案:

  • 基于ip:为每个虚拟主机准备至少一个ip地址
  • 基于port:为每个虚拟主机使用至少一个独立的port
  • 基于FQDN:为每个虚拟主机使用至少一个FQDN

注意:一般虚拟机不要与main主机混用;因此,要使用虚拟主机,一般先禁用main主机
禁用方法:注释中心主机的DocumentRoot指令即可

配置格式

<VirtualHost IP:PORT>ServerName FQDNDocumentRoot “/path"
</VirtualHost>
建议:上述配置存放在独立的配置文件中,不要写在http.conf中,方便管理其它可用指令:
ServerAlias:虚拟主机的别名;可多次使用
ErrorLog: 错误日志
CustomLog:访问日志
<Directory “/path"> </Directory>
Alias

基于IP的虚拟主机配置

#给网卡添加多个地址
ip a add 192.168.30.11/24 dev eth0
ip a add 192.168.30.22/24 dev eth0
ip a add 192.168.30.33/24 dev eth0<VirtualHost 192.168.30.11>#虚拟主机的别名;可多次使用,目前是不起作用的ServerName www.a.com#指定根目录DocumentRoot "/data/website1"#错误日志ErrorLog "logs/a.com-error_log"#访问日志TransferLog "logs/a.com-access_log"
</VirtualHost><VirtualHost 192.168.30.22>#虚拟主机的别名;可多次使用,目前是不起作用的ServerName www.b.com#指定根目录DocumentRoot "/data/website2"#错误日志ErrorLog "logs/b.com-error_log"#访问日志TransferLog "logs/b.com-access_log"
</VirtualHost><VirtualHost 192.168.30.33>#虚拟主机的别名;可多次使用,目前是不起作用的ServerName www.c.com#指定根目录DocumentRoot "/data/website3"#错误日志ErrorLog "logs/c.com-error_log"#访问日志TransferLog "logs/c.com-access_log"
</VirtualHost>

基于端口的虚拟主机配置

vim /etc/http/conf.d/vhost.confmkdir /data/website{1,2,3} -pvecho www.a.com > /data/website1/index.html
echo www.b.com > /data/website2/index.html
echo www.c.com > /data/website3/index.html多个网站就要使用多个不同的端口绑定listen 81
listen 82
listen 83创建虚拟主机
#要绑定的IP和端口号
<VirtualHost *:81>#虚拟主机的别名;可多次使用,目前是不起作用的ServerName www.a.com#指定根目录DocumentRoot "/data/website1"#错误日志ErrorLog "logs/a.com-error_log"#访问日志TransferLog "logs/a.com-access_log"
</VirtualHost>#要分权限,配合虚拟主机目录使用
<Directory "/data">Require all granted
</Directory>将上述配置修改三份,对应上面的创建目录
建议:上述配置存放在独立的配置文件中,如果是在centos7 分配虚拟主机,一定要给目录权限!!!否则无法访问!!!一定要给目录权限!!!否则无法访问!!!

基于FQDN(主机头)的虚拟主机

靠主机头的HOST地址来区分,根据不同的主机头,来返回不同的网站
根据虚拟主机中定义的ServerName


<VirtualHost *:80>#这就是指定的访问主机头ServerName www.a.com#指定根目录DocumentRoot "/data/website1"#错误日志ErrorLog "logs/a.com-error_log"#访问日志TransferLog "logs/a.com-access_log"
</VirtualHost><VirtualHost *:80>#这就是指定的访问主机头ServerName www.b.com#指定根目录DocumentRoot "/data/website2"#错误日志ErrorLog "logs/b.com-error_log"#访问日志TransferLog "logs/b.com-access_log"
</VirtualHost><VirtualHost *:80>#这就是指定的访问主机头ServerName www.c.com#指定根目录DocumentRoot "/data/website3"#错误日志ErrorLog "logs/c.com-error_log"#访问日志TransferLog "logs/c.com-access_log"
</VirtualHost>

centos 6 上实现的时候有一点差别,如果要实现基于名称(主机头)的虚拟主机,要加上NameVirtualHost 这一行,否则无法实现。
centos 6 上实现的时候有一点差别,如果要实现基于名称(主机头)的虚拟主机,要加上NameVirtualHost 这一行,否则无法实现。
centos 6 上实现的时候有一点差别,如果要实现基于名称(主机头)的虚拟主机,要加上NameVirtualHost 这一行,否则无法实现。

这样就表示客户端 访问www.a.com就返回 a.com,访问b.com就返回b.com,访问c.com就返回c.com
在浏览器敲网址的时候,比如www.a.com ,他不仅仅是DNS解析,还会向服务器发送 HOST : www.a.com 的标记
如果是按网络地址(IP地址)来访问,那么是返回虚拟主机中的第一个,第一个就属于默认网站。

搭建Https

https = http + ssl

创建CA服务器

cd /etc/pki/CA#生成CA私钥(umask 077; openssl genrsa -out pirvate/cakey.pem 2048) #创建自签名证书
openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650echo 01 > serial
touch index.txt

为服务器申请证书


cd /etc/httpd/
mkdir certs
cd certs#生成私钥
(umask 077;openssl genrsa -out httpd.key 2048)#生成证书签署请求
openssl req -new -key httpd.key -out httpd.csr -days 3655 #签名
openssl ca -in httpd.csr -out httpd.crt -days 3655

web服务器安装ssl 模块

yum install mod_ssl 安装后会在/etc/pki/tls 下生成该包的一个私钥,一个自签名证书。
所以如果不自己搭建CA,是可以直接使用的配置mod_ssl配置文件 ,在安装这个模块后,这个文件会自己生成
vim /etc/httpd/conf.d/ssl.conf #修改成我们自己的CA#指定证书
SSLCertificateFile /etc/httpd/conf.d/ssl/httpd.crt
#指定私钥
SSLCertificateKeyFile /etc/httpd/conf.d/ssl/httpd.key
#指定CA的路径 默认该行是注释状态的
SSLCACertificateFile /etc/httpd/conf.d/ssl/cacert.pem重启服务
service httpd restart注意:ssl会话只能基于IP创建,这意味着如果服务器仅有一个IP,那么仅为一个虚拟主机提供https服务

转载于:https://www.cnblogs.com/ddz-linux/p/10699410.html

http 高级配置 虚拟主机,https 编译安装相关推荐

  1. 配置虚拟主机和https

    配置虚拟主机和 文章目录 配置虚拟主机和 httpd常用配置 配置虚拟主机 配置https httpd常用配置 切换使用MPM(编辑/etc/httpd/conf.modules.d/00-mpm.c ...

  2. Linux下安装Apache和配置虚拟主机

    安装apache 1.安装:(httpd是Apache在centos中的名字) yum install httpd 2.启动: service httpd start 3.网页访问80端口:172.2 ...

  3. Linux 配置LNMP服务器 并配置虚拟主机

    2019独角兽企业重金招聘Python工程师标准>>> 一.停止甚至删除系统上现有的web服务器软件 为了防止出现意外情况,建议先卸载现有的所有web服务器资源,如apache.my ...

  4. 宝塔服务器搞成虚拟主机,宝塔面板怎么配置虚拟主机

    宝塔面板怎么配置虚拟主机?宝塔面板是不能配置虚拟主机的,宝塔面板是一款服务器运维管理面板,如果是云服务器的话可以借助宝塔来管理维护,而虚拟主机不能,其实也不需要. 虚拟主机是从服务器中划分出来,仅带有 ...

  5. javaweb学习总结十七(web应用组织结构、web.xml作用以及配置虚拟主机搭建网站)

    一:web应用组织结构 1:web应用组成结构 2:安装web组成机构手动创建一个web应用程序目录 a:在webapps下创建目录web b:在web目录下创建html.jsp.css.js.WEB ...

  6. 整合apache和JBoss,配置虚拟主机

    大致步骤: 一.安装apache 二.安装JDK,作为JBOSS的运行环境 三.安装JBOSS 四.安装及配置mod_jk,用以apache和JBOSS之间的通信 五.配置虚拟主机,把动态资源交给JB ...

  7. 初次使用Apache、ip地址、防火墙、域名、DNS、hosts文件、端口、URL介绍、Apache配置文件、配置虚拟主机、请求响应、http协议、

    Apache提供web服务: 启动Apache,让其客户端可以使用你机器上安装的Apache提供的web服务,访问你机器上的网站.这种情况下你的计算机就是服务器,别人的机器就是客户端. 注意:确保配置 ...

  8. nginx 配置虚拟主机

    文章转载自:http://www.ttlsa.com/html/1571.html 上篇说道我们的nginx是安装在/usr/local/nginx/ cd conf 我们现在把所有的虚拟主机放在一个 ...

  9. 正向代理和反向代理的区别Nginx配置虚拟主机流程(后续更新)

    目录 目标 安装Nginx 配置虚拟主机 准备 方法一 方法二(推荐) 验证虚拟主机 正向代理和反向代理的区别 区别&案例 正向代理和反向代理流程 目标 熟练在Linux安装单机Nginx: ...

  10. windows下apache配置虚拟主机的两个方法

    windows下apache配置虚拟主机方法一: 对httpd.conf进行设置: 1.注释以下三行 #ServerAdmin #ServerName #DocumentRoot 2.去掉mod_pr ...

最新文章

  1. 医院管理系统的新机遇
  2. 自定义YUM软件仓库----FTP网络YUM源-----网络YUM源的配置
  3. The Elder HDU - 5956
  4. 程序员都很老实?你错了,其实程序员真实的样子是这样的
  5. 显示连接失败_技术丨外接显示器障碍的诊断方法
  6. Android用户界面 UI组件--TextView及其子类(二) Button,selector选择器,sharp属性
  7. java开源对象池,java 对象池 - 差不多先生的个人空间 - OSCHINA - 中文开源技术交流社区...
  8. seata xid是什么_Spring Cloud Alibaba分布式事务解决框架Seata概念入门篇
  9. ISO9001和ISO27001质量管理体系(详解)
  10. 使用arcpy遇到的那些坑(二)
  11. mdoublem matlab,imhist以及matlab图像矩阵的数据类型
  12. Jmeter怎么连接数据库
  13. js逆向-1 模拟登陆微信公众号平台
  14. 计算机常用英语词汇 短语,四级英语常用词汇短语
  15. filecoin-存储证明子系统(rust-fil-proofs)[翻译]
  16. cisco路由器基本实验之四 动态路由之IGRP协议的配置(Boson NetSim)
  17. 瑞红淘宝商城旗舰店开张 正式进军B2C市场
  18. HMI-33-【运动模式】补上油量表和水温表
  19. 市面上主流编辑器介绍(2021/05/20)
  20. 计算机属性高级是灰色的,Win10文件夹属性隐藏选项为灰色不可勾选怎么办?

热门文章

  1. 描述数据库表关系之间的ER图(1对1,1对多,多对1,多对多等关系)
  2. bootstrap导航栏.nav与.navbar区别
  3. java找不到符号 符号:类Xxx 位置xxx的解决方案
  4. MATLAB句柄和saveas用法
  5. 用python孵一颗彩蛋,今日份来自程序员的浪漫
  6. 微信小程序获取用户绑定手机号码完整版
  7. 利用stm32读取思岚A1雷达数据
  8. 欧姆龙 Omorm FINS通讯实例C#
  9. 「How The Economic Machine Works」《经济机器是如何运转的》中文字幕
  10. 90后最流行的英文名