虚拟主机的配置

2023-11-13

三种虚拟主机的配置

开启apache服务,编写环境变量

[root@localhost ~]# vim /etc/profile.d/httpd.sh
export PATH=/usr/local/apache/bin:$PATH
[root@localhost ~]# source /etc/profile.d/httpd.sh 

这样的开启方式不会报错,如果没有编辑环境变量,就开启不了apache,系统就会给你推荐安装httpd,但是这样安装完之后,打开配置的网站就是默认的,即使编辑了,也还是会报错
所以就需要编辑环境变量。

[root@localhost profile.d]# apachectl start   // 开启apache
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
httpd (pid 471695) already running
[root@localhost profile.d]# ss -antl   //查看端口
State    Recv-Q   Send-Q       Local Address:Port       Peer Address:Port   Process   
LISTEN   0        128                0.0.0.0:111             0.0.0.0:*                
LISTEN   0        32           192.168.122.1:53              0.0.0.0:*                
LISTEN   0        128                0.0.0.0:22              0.0.0.0:*                
LISTEN   0        5                127.0.0.1:631             0.0.0.0:*                
LISTEN   0        128                   [::]:111                [::]:*                
LISTEN   0        128                      *:80                    *:*                
LISTEN   0        128                   [::]:22                 [::]:*                
LISTEN   0        5                    [::1]:631                [::]:*                

这里显示的就是apache开启

[root@localhost htdocs]# mkdir site{1,2,3}   //创建三个目录用来存放源码
[root@localhost htdocs]# ls
index.html  site1  site2  site3
[root@localhost htdocs]# echo 'site1' > site1/index.html
[root@localhost htdocs]# echo 'site2' > site2/index.html
[root@localhost htdocs]# echo 'site3' > site3/index.html
[root@localhost htdocs]# tree
.
├── index.html
├── site1
│   └── index.html
├── site2
│   └── index.html
└── site3
    └── index.html



[root@localhost htdocs]# ls
CSS3卡通圣诞树动画代码  index.html  site1  site2  site3
[root@localhost htdocs]# cd CSS3卡通圣诞树动画代码
[root@localhost CSS3卡通圣诞树动画代码]# ls
css  index.html   
[root@localhost CSS3卡通圣诞树动画代码]# mv * ../site1
mv:是否覆盖'../site1/index.html'? y
[root@localhost CSS3卡通圣诞树动画代码]# apachectl restart

把在源码之家下载的源码添加到创建的目录中。
[root@localhost httpd24]# ls   //这里的extra就是我要编辑的默认的配置文件
extra  httpd.conf  magic  mime.types  original

[root@localhost httpd24]# ls extra/
httpd-autoindex.conf  httpd-languages.conf           httpd-ssl.conf
httpd-dav.conf        httpd-manual.conf              httpd-userdir.conf
httpd-default.conf    httpd-mpm.conf                 httpd-vhosts.conf
httpd-info.conf       httpd-multilang-errordoc.conf  proxy-html.conf
[root@localhost httpd24]# vim extra/httpd-vhosts.conf   
[root@localhost httpd24]# cat extra/httpd-vhosts.conf 
相同的IP不同的端口
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/usr/local/apache/htdocs/site1"
    ServerAlias site1.example.com
    ErrorLog "logs/site1.example.com-error_log"
    CustomLog "logs/site1.example.com-access_log" common
</VirtualHost>

listen 81
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/usr/local/apache/htdocs/site2"
    ServerAlias site1.example.com
    ErrorLog "logs/site2.example.com-error_log"
    CustomLog "logs/site2.example.com-access_log" common
</VirtualHost>

在这里插入图片描述
这里显示81端口也可以访问到我上传的这个源码

这里在网卡的配置文件里面添加了一个IP

[root@localhost httpd24]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:b5:79:e9 brd ff:ff:ff:ff:ff:ff
    inet 192.168.98.66/24 brd 192.168.98.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 192.168.98.33/24 brd 192.168.98.255 scope global secondary noprefixroute ens33




不同IP相同端口
[root@localhost httpd24]# cat extra/httpd-vhosts.conf 

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/usr/local/apache/htdocs/site1"
    ServerAlias site1.example.com
    ErrorLog "logs/site1.example.com-error_log"
    CustomLog "logs/site1.example.com-access_log" common
</VirtualHost>

在这里插入图片描述

可以看出。把不同的IP去访问源码的时候,也是可以访问到的


//编辑最后一个虚拟主机

[root@localhost httpd24]# vim extra/httpd-vhosts.conf 
相同IP相同端口不同域名

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/usr/local/apache/htdocs/site1"
    ServerAlias site1.example.com
    ErrorLog "logs/site1.example.com-error_log"
    CustomLog "logs/site1.example.com-access_log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/usr/local/apache/htdocs/site2"
    ServerAlias site1.example.com
    ErrorLog "logs/site2.example.com-error_log"
    CustomLog "logs/site2.example.com-access_log" common
</VirtualHost>

配置这个虚拟主机时候要注意,需要在自己的电脑上的配置文件中增加如下配置在这里插入图片描述

然后尝试ping通这个网络在这里插入图片描述
这里显示可以ping通,,接下来,就可以用域名访问了
在这里插入图片描述

配置https

  • 生成证书
  • 配置httpd.conf,取消一下的注释

需要安装修改这个配置文件

#   General setup for the virtual host
DocumentRoot "/usr/local/apache/htdocs/site1"
ServerName www.example.com:443
ErrorLog "/usr/local/apache/logs/site1_error_log"
TransferLog "/usr/local/apache/logs/site1_access_log"

[root@localhost extra]# vim httpd-ssl.conf
SSLCertificateFile "/etc/httpd24/httpd.crt"
SSLCertificateKeyFile "/etc/httpd24/httpd.key"

[root@localhost extra]# vim ../httpd.conf 
LoadModule ssl_module modules/mod_ssl.so

需要把这一行的注释取消掉```

[root@localhost extra]# vim ../httpd.conf 
Include /etc/httpd24/extra/httpd-ssl.conf
[root@localhost extra]# apachectl -t
AH00526: Syntax error on line 92 of /etc/httpd24/extra/httpd-ssl.conf:
SSLSessionCache: 'shmcb' session cache not supported (known names: ). Maybe you need to load the appropriate socache module (mod_socache_shmcb?).
[root@localhost extra]# vim +92 /etc/httpd24/extra/httpd-ssl.conf
#SSLSessionCache        "shmcb:/usr/local/apache/logs/ssl_scache(512000)"
#SSLSessionCacheTimeout  300
会有这样的问题出现,只需要把上面两行加上注释就可以


[root@localhost ~]# mkdir /etc/pki/CA 
[root@localhost ~]# cd /etc/pki/CA
[root@localhost CA]# mkdir private
[root@localhost CA]# (umask 077;openssl genrsa -out private/cakey.pem 2048)
Generating RSA private key, 2048 bit long modulus (2 primes)
.....................................................+++++
.............+++++
e is 65537 (0x010001)



[root@localhost CA]# ls private/
cakey.pem 

在这里创建所需的目录,

[root@localhost CA]#  openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365 
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:HB
Locality Name (eg, city) [Default City]:WH
Organization Name (eg, company) [Default Company Ltd]:jxrt
Organizational Unit Name (eg, section) []:jxrt
Common Name (eg, your name or your server's hostname) []:site1.example.com
Email Address []:230023@qq.com

生成证书

[root@localhost CA]# mkdir certs newcerts crl
[root@localhost CA]# touch index.txt && echo 01 > serial
[root@localhost CA]# ls
cacert.pem  certs  crl  index.txt  newcerts  private  serial

创建这些目录,写了一下文件

[root@localhost opt]# (umask 077;openssl genrsa -out httpd.key 2048)
Generating RSA private key, 2048 bit long modulus (2 primes)
..............................................................................+++++
..................................................................+++++
e is 65537 (0x010001)

[root@localhost opt]# openssl req -new -key httpd.key -days 365 -out httpd.csr
Ignoring -days; not generating a certificate
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:HB
Locality Name (eg, city) [Default City]:WH
Organization Name (eg, company) [Default Company Ltd]:jxrt
Organizational Unit Name (eg, section) []:jxrt
Common Name (eg, your name or your server's hostname) []:site1.example.com
Email Address []:230023@qq.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

这里获取钥匙,信息,必须和上面保持一致

[root@localhost opt]# ls
httpd.csr  httpd.key
 
 [root@localhost opt]# ll
总用量 8
-rw-r--r--. 1 root root 1037 427 09:50 httpd.csr
-rw-------. 1 root root 1675 427 09:48 httpd.key

 可以看出现在已经生成了钥匙。
[root@localhost opt]# openssl ca -in httpd.csr -out httpd.crt -days 365

Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated




[root@localhost opt]# ls
httpd.crt  httpd.csr  httpd.key
[root@localhost opt]# mv httpd.crt httpd.key /etc/httpd24/

这时需要把opt下面的文件移动到/etc/下面去

[root@localhost httpd24]# ls
extra  httpd.conf  httpd.crt  httpd.key  magic  mime.types  original

[root@localhost httpd24]# apachectl restart
[root@localhost httpd24]# ss -antl
State    Recv-Q   Send-Q       Local Address:Port       Peer Address:Port   Process   
LISTEN   0        128                0.0.0.0:111             0.0.0.0:*                
LISTEN   0        128                0.0.0.0:22              0.0.0.0:*                
LISTEN   0        5                127.0.0.1:631             0.0.0.0:*                
LISTEN   0        128                   [::]:111                [::]:*                
LISTEN   0        128                      *:80                    *:*                
LISTEN   0        128                   [::]:22                 [::]:*                
LISTEN   0        5                    [::1]:631                [::]:*                
LISTEN   0        128                      *:443                   *:*                

配置完成后查看一下有没有443这个端口

配置完成后以https的方式去访问

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

虚拟主机的配置 的相关文章

  • 如何调用位于其他目录的Makefile?

    我正在尝试这样做 我想打电话给 make Makefile存在于其他目录中 abc可以使用位于不同目录中的 shell 脚本的路径 我该怎么做呢 由于 shell 脚本不允许我cd进入Makefile目录并执行make 我怎样才能编写she
  • 如何查明 Ubuntu 上安装了哪个版本的 GTK+?

    我需要确定 Ubuntu 上安装了哪个版本的 GTK 男人似乎不帮忙 这个建议 https stackoverflow com a 126145 会告诉您安装了哪个 2 0 的次要版本 不同的主要版本将具有不同的包名称 因为它们可以在系统上
  • gethostbyname() 或 getnameinfo() 如何在后台工作?

    How gethostbyname or getnameinfo 在后台工作 include
  • 在 LINUX 上使用 Python 连接到 OLAP 多维数据集

    我知道如何在 Windows 上使用 Python 连接到 MS OLAP 多维数据集 嗯 至少有一种方法 通常我使用 win32py 包并调用 COM 对象进行连接 import win32com client connection wi
  • 为 Qt 应用程序创建 Linux 安装

    我刚刚用 Qt Creator 制作了一个很棒的程序 我对自己很满意 如何将其从台式机移至笔记本电脑 那么 最好的方法是安装程序 对吗 对于 Ubuntu 这是一个 Debian 软件包 对吗 我怎么做 有人这样做过吗 他们可以分享 QT
  • Inotify linux 监视子目录

    是否可以以这种模式监视目录 storage data usernames Download gt storage data Download 我需要监视每个用户的下载文件夹中是否进行了更改 也许我需要创建所有路径的列表 将其放入数组中 并在
  • 如何不断刷新屏幕并实时更新[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想在linux上写一个C程序 不断刷新屏幕并实时更新 例如类似于top终端中的命令 谁能指出我正确的方向 为了保持它跨终端类型的可移
  • Linux shell 脚本:十六进制数字到二进制字符串

    我正在 shell 脚本中寻找一些简单的方法来将十六进制数字转换为 0 和 1 字符的序列 Example 5F gt 01011111 是否有任何命令或简单的方法来完成它 或者我应该为其编写一些开关 echo ibase 16 obase
  • 如何让“grep”从文件中读取模式?

    假设有一个很大的文本文件 我只想打印与某些模式不匹配的行 显然 我可以使用egrep v patter1 pattern2 pattern3 现在 如果所有这些模式都在一个文本文件中怎么办 最好的制作方法是什么egrep从文件中读取模式 g
  • Bash 方法的返回值总是模 256

    我有一个 bash 脚本方法 它返回输入值 然而 返回值始终是模 256 的值 我用 google 搜索了一段时间 发现this http www tldp org LDP abs html exitcodes html文章说它总是以 25
  • 适用于 KDE 和 Gnome 的 Gui [重复]

    这个问题在这里已经有答案了 我想为一个现在是 CLI 的应用程序编写一个 gui 它需要在 KDE 和 Gnome DE 中 看起来不错 充分利用用户的外观设置 如果我选择 Qt 或 GTK 我能够做到这一点吗 它们与两个 DE 集成良好吗
  • Docker:处理 tar 文件时出错(退出状态 1):设置枢轴目录时出错:不是目录

    我是 Docker 新手 不知道是什么原因导致此错误或如何诊断它 任何有关此问题的具体帮助或有关首先检查何处以诊断此类问题的提示将不胜感激 我的 Dockerfile FROM java 8 Install maven RUN apt ge
  • 归档文件系统或格式

    我正在寻找一种文件类型来存储已退役系统的档案 目前 我们主要使用 tar gz 但从 200GB tar gz 存档中查找并提取几个文件是很麻烦的 因为 tar gz 不支持任何类型的随机访问读取规定 在你明白之前 使用 FUSE 安装 t
  • arm-linux-gnueabi 编译器选项

    我在用 ARM Linux gnueabi gcc在 Linux 中为 ARM 处理器编译 C 程序 但是 我不确定它编译的默认 ARM 模式是什么 例如 对于 C 代码 test c unsigned int main return 0x
  • PHP 致命错误:未找到“MongoClient”类

    我有一个使用 Apache 的网站 代码如下 当我尝试访问它时 我在 error log 中收到错误 PHP Fatal Error Class MongoClient not found 以下是可能错误的设置 但我认为没有错误 php i
  • 嵌入式Linux poll()不断返回

    我有一个特别的问题 当我知道没有什么可读时 民意调查不断返回 因此设置如下 我有 2 个文件描述符 它们构成fd设置民意调查监视 一种用于引脚从高到低的变化 GPIO 另一个用于代理输入 代理输入出现问题 处理的顺序是 启动main函数 然
  • Locale.getDefault() 始终返回 en

    unix 机器上的服务器始终使用 en 作为默认区域设置 以下是区域设置输出 LANG en US LC CTYPE C LC NUMERIC C LC TIME C LC COLLATE C LC MONETARY C LC MESSAG
  • 修改linux下的路径

    虽然我认为我已经接近 Linux 专业人士 但显然我仍然是一个初学者 当我登录服务器时 我需要使用最新版本的R 统计软件 R 安装在 2 个地方 当我运行以下命令时 which R I get usr bin R 进而 R version
  • 是否可以在Linux上将C转换为asm而不链接libc?

    测试平台为Linux 32位 但也欢迎 Windows 32 位上的某些解决方案 这是一个c代码片段 int a 0 printf d n a 如果我使用 gcc 生成汇编代码 gcc S test c 然后我会得到 movl 0 28 e
  • Android:ANT 构建失败,并显示 google-play-services-lib:“解析为没有项目的 project.properties 文件的路径”

    我正在尝试使用 ANT 构建我的应用程序 但在包含 google play services lib 库项目后 我惨遭失败 Step 1 我在 project properties 文件中设置了对库项目的引用 android library

随机推荐

  • python程序调优:替换pandas包的Series与DataFrame构造与计算

    在实际部署的时候 使用dataframe的计算效率明显低于numpy 因此在程序中大量运行时避免使用pandas Series与pandas DataFrame及频繁的构造 避免 替换的方法如下 使用numpy ndarry替换pandas
  • 刷题之旅第39站,CTFshow 红包题目8

    感谢ctf show平台提供题目 下载压缩包 看到了两个文件 使用010editor 打开mima png 在末尾处发现 kobe code 这里附上 Admin师傅提供的kobe code对照图 对应着解出来了压缩包密码 OAEBEYTK
  • 单目标跟踪Siam

    一 关于单目标跟踪 本人不了解传统的相关滤波法 所有想法总结仅仅建立在深度学习的基础上 对于单目标跟踪而言一般的解释都是在第一帧给出待跟踪的目标 在后续帧中 tracker能够自动找到目标并用bbox标出 关于SOT single obje
  • 2022年哪些前端技术点会火

    转载于 2022年哪些前端技术点会火 扫地盲僧 原创不易 文章质量很高 个人留存 希望大家支持原作者 2022 年什么会火 什么该学 本文正在参与 聊聊 2022 技术趋势 征文活动 前段时间我发布了一篇关于 2022年前端行业技术发展趋势
  • Caffe (2) SyncedMemory内存管理机制

    在Caffe中 blob是对于上层空间的数据管理存储对象 对于上层来说的话 大部分时候是直接取blob对象的指针来用 如果不考虑GPU的情况下 实际上很简单 就是返回指针就行 但是问题是通常的数据是在GPU和CPU上同时存在 需要两个数据在
  • PLSQL新建用户

    一 打开PLSQL 一般默认用户名 system 密码 二 右侧列表找到Users 右键新建 三 创建用户 名称 口令自定义 剩下的按图 四 角色权限创建connect resource dba 点击应用 五 重新用新账号和口令登陆PLSQ
  • redis的Cacheable注解介绍

    1 引入依赖
  • Webpack 5 新特性

    Webpack 5 在2020年10月正式发布 更新的内容比较多 我们从头梳理下本次更新的核心内容 文章目录 一 构建优化 1 Tree Shaking 删除无用代码 2 合并模块 concatenateModules 3 副作用 side
  • 制度汇编格式怎么生成目录_怎么用word制作标书?大神般操作经验在这里

    怎么用word制作标书 word制作标书是每一个制作标书的制标员 如何用我们常用的办公软件来制作标书呢 除了将必要的材料编写入里面 还需要注意格式 字体等固定排版问题 如果你还是一枚制作标书的新人 请一起来和保标招标网小编学习怎么用word
  • python常用内置库时间,日期与JSON转换

    日期与时间 datetime是Python处理日期和时间的标准库 from datetime import datetime if name main cur date datetime now print cur date print c
  • jenkins使用root账号

    1 修改配置文件 编辑配置文件 vim etc sysconfig jenkins 修改 JENKINS USER JENKINS USER root 2 修改相关文件夹为root权限 chown R root root var lib j
  • 数据仓库-数据分层理论详解

    主题 Subject 是在较高层次上将企业信息系统中的数据进行综合 归类和分析利用的一个抽象概念 每一个主题基本对应一个宏观的分析领域 在逻辑意义上 它是对应企业中某一宏观分析领域所涉及的分析对象 例如 销售分析 就是一个分析领域 因此这个
  • 蓝桥杯2017届C++B组省赛真题 分巧克力

    儿童节那天有K位小朋友到小明家做客 小明拿出了珍藏的巧克力招待小朋友们 小明一共有N块巧克力 其中第i块是Hi x Wi的方格组成的长方形 为了公平起见 小明需要从这 N 块巧克力中切出K块巧克力分给小朋友们 切出的巧克力需要满足 1 形状
  • 1、常用DOS命令大全

    一 DOS DiskOperatingSystem 磁盘操作系统 特点 单任务 单用户系统 使用命令行方式 控制计算机 二 DOS命令行的组成 1 DOS命令行中的基本概念 当前驱动器 当前盘 当前目录 相对路径 绝对路径 2 DOS命令的
  • 基于点云的3D障碍物检测

    基于点云的3D障碍物检测 主要有以下步骤 点云数据的处理 基于点云的障碍物分割 障碍物边框构建 点云到图像平面的投影 点云数据的处理 KITTI数据集 KITTI数据集有四个相机 主要使用第三个相机 序号为02 拍摄的图片 标定参数和标签文
  • I/O管理及监控命令

    一 磁盘原理 简单理解 1 盘片以每分钟数千转到上万转的速度在高速旋转 15K 10K 7 5K 5 2K RPM 2 磁头就能对盘片上的指定位置进行数据的读写操作 3 磁头磁化磁盘记录数据 4 从外到里存储 外快内慢 5 以扇区为单位存储
  • python-selenium-动作链拖拽;cookies处理

    1 动作链拖拽 导入动作链需要的包 from selenium webdriver import ActionChains 具体步骤 1 创建动作链对象 并绑定给浏览器 action ActionChains driver 2 点击并长按指
  • 停止IIS服务

    1 第一步 停止 World Wide Web Publishing Service 这个是W3C服务 2 第二部 停止 IIS Admin Service 这个IIS元数据管理服务 转载于 https www cnblogs com xi
  • 非接触IC卡中typeA卡和typeB卡的区别--总结,二者的调制方式和编码方式不同

    1 非接触式IC卡的国际规范ISO IEC14443的由来 在非接触式IC卡的发展过程中 这些问题逐渐被解决并形成通用的标准 体现在现在的射频IC卡的设计上 国际标准化组织 ISO 和国际电子技术委员会 IEC 为期制定了相应的非接触式IC
  • 虚拟主机的配置

    三种虚拟主机的配置 开启apache服务 编写环境变量 root localhost vim etc profile d httpd sh export PATH usr local apache bin PATH root localho