Apache的部署三之构建虚拟主机(基于IP、基于域名、基于端口号) 、访问控制 、支持的多种语言脚本编写

本文主要是介绍Apache的部署三之构建虚拟主机(基于IP、基于域名、基于端口号) 、访问控制 、支持的多种语言脚本编写,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 构建虚拟主机(全新实验环境)

(1)构建的目的

  • 如果每台Linux服务器上都为一个网站所用的话,那对于那种访问量少的网站就要承担较高的服务器租赁费而入不敷出了。所以apache就实现了一台服务器上可以建立多个虚拟主机的功能模块,从而达到多个网站分布在一个服务器上,节省硬件资源的目的。访问不同的网站(域名)时,目的地址都为同一台主机,但在客户端是察觉不到的,这就大大节约了小网站的发布成本。

  • 实质:编写多个发布目录,不同的(IP、PORT、域名)指向不同的发布内容。

(2)搭建方法

1、基于域名

#####建立发布目录
[root@server1 www]# mkdir -p virtual/westos.org/{linux,bbs,lee}    //没有新建目录是为了保持安全上下文一致,不用再去更改目录及文件的安全上下文
##.建立并编写发布文件:必须是默认发布文件index.html,否则还需要添加到主配置文件中指定发布文件
[root@server1 www]# echo "linux.westos.org" >> virtual/westos.org/linux/index.html
[root@server1 www]# echo "bbs.westos.org" >> virtual/westos.org/bbs/index.html
[root@server1 www]# echo "lee.westos.org" >> virtual/westos.org/lee/index.html
####编写子配置文件
[root@apache-server conf.d]# vim vhost.conf   //可以是任意名字,只要以.conf结尾,且放在/etc/httpd/conf.d/子目录下。

在这里插入图片描述
头部为<VirtualHost _default_:80> 下划线被遮住了。
还有一种编写方式为:<VirtualHost 172.25.254.209>:此种强制访问该目录下内容,覆盖一切。当有两个一样的时,以第一个为默认。

<VirtualHost_default_:80>DocumentRoot /var/www/htmlCustomLog logs/default.log combined
</VirtualHost>
以上是虚拟主机的基本信息
<VirtualHost *:80>ServerName news.westos.comDocumentRoot /var/www/vhost/newsCustomLog logs/news.log combined
</VirtualHost>
<Directory "/var/www/vhost/news">Require all granted
</Directory>
以上是news这个虚拟站点的基本信息和授权信息
<VirtualHost *:80>ServerName music.westos.comDocumentRoot /var/www/vhost/musicCustomLog logs/music.log combined
</VirtualHost>
<Directory "/var/www/vhost/music">Require all granted
</Directory>
以上是music这个虚拟站点的基本信息和授权信息
systemctl restart httpd重启才会生效
###在用浏览器访问的主机上做本地解析
[root@foundation34 Desktop]# vim /etc/hosts
###
172.25.254.134 www.westos.com news.westos.com music.westos.com
###重启服务
[root@apache-server conf.d]# systemctl restart httpd.service 

网页测试:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2、基于端口

我们可以让服务器开启多个服务端口后,然后让用户能够通过访问服务器的指定端口来找到想要的网站。

第一步:将端口号添加到selinux及firewalld策略中:

[root@server1 conf.d]# systemctl start firewalld
[root@server1 conf.d]# firewall-cmd --add-port=6666/tcp --permanent 
success
[root@server1 conf.d]# firewall-cmd --add-port=7777/tcp --permanent 
success
[root@server1 conf.d]# firewall-cmd --reload
success
[root@server1 conf.d]# semanage port -a -t http_port_t -p tcp 6666
[root@server1 conf.d]# semanage port -a -t http_port_t -p tcp 7777

第二步:创建访问目录,写入显示页内容:

[root@server1 virtual]# mkdir 6666
[root@server1 virtual]# mkdir 7777
[root@server1 virtual]# echo "the port is 6666" > 6666/index.html
[root@server1 virtual]# echo "the port is 7777" > 7777/index.html

第三步:更改配置文件的监听端口:

[root@server1 conf.d]# vim /etc/httpd/conf/httpd.conf 

在这里插入图片描述
第四步:写入子配置文件,重启服务
在这里插入图片描述

[root@server1 conf.d]# systemctl restart httpd

在这里插入图片描述

第五步:测试网页
在这里插入图片描述
在这里插入图片描述
3、基于IP
由于现在基于IP 的配置需求较少,需要请点击这里
在这里插入图片描述

2. apache的访问控制

(1).基于ip(主机)的访问控制

(1)设定白名单:
[root@apache-server conf.d]# pwd
/etc/httpd/conf.d
[root@apache-server conf.d]# vim a_default.conf 

在这里插入图片描述
在白名单34主机上测试:
在这里插入图片描述
在134主机上测试:
在这里插入图片描述

(2)设定黑名单:
[root@apache-server conf.d]# vim a_default.conf

在这里插入图片描述

[root@apache-server conf.d]# systemctl restart httpd

在34主机上测试:
在这里插入图片描述

其他主机234上测试:

在这里插入图片描述
(2)基于用户的访问控制

 ##1.创建用户并设定密码;c表示create;将生成的用户和密码放入.http_userlist文件中
[root@server1 conf.d]# htpasswd -cm .http_userlist admin
##此时便会生成.http_userlist文件
[root@server1 conf.d]# htpasswd -m .http_userlist lee   //第二次建立用户的时候,就不用-c创建文件这个参数了。否则会直接把原来文件的用户覆盖掉,重新建立。

在这里插入图片描述

##.指定用户认证信息
[root@apache-server conf.d]# vim /etc/httpd/conf/httpd.conf

在这里插入图片描述

##4.重启服务[root@apache-server conf.d]# systemctl restart httpd

网页测试:
在这里插入图片描述
在这里插入图片描述

3. apache支持的语言

  • apache的默认语言是html,但它支持html、php、jsp、perl等等
  • apache对发布目录下的文件不具有执行解释功能,当需要编译需要下载插件。
    (1)php语言
##1.用php语言编写发布文件
[root@apache-server html]# vim index.php

在这里插入图片描述

##2.安装php
[root@apache-server html]# yum install -y php  //下载解释插件
##3.重启服务
[root@apache-server conf.d]# systemctl restart httpd

在这里插入图片描述

(2)自定义cgi接口语言

第一种:

/var/www/cgi-bin目录下编写发布文件(脚本)
[root@apache-server conf.d]# cd /var/www/
[root@apache-server www]# ls
cgi-bin  html  westos.com
[root@apache-server www]# cd cgi-bin/

查看apache帮助手册:

在这里插入图片描述
在这里插入图片描述

1.用cgi语言编写发布文件;可在apache帮助手册查到语法格式
[root@apache-server cgi-bin]# vim index.cgi

在这里插入图片描述

 ##2.给脚本一个可执行权限
[root@apache-server cgi-bin]# chmod +x index.cgi 
##3.执行脚本
[root@apache-server cgi-bin]# ./index.cgi 

在这里插入图片描述

网页测试:

在这里插入图片描述
第二种:

/var/www/html/cgi目录中编写发布文件(脚本)
[root@apache-server cgi-bin]# cd /var/www/html
##1.创建目录
[root@apache-server html]# mkdir cgi 
[root@apache-server html]# ls
cgi  index.html  index.php  westos.html
[root@apache-server html]# cd cgi/
[root@apache-server cgi]# pwd
/var/www/html/cgi
##2.拷贝文件
[root@apache-server cgi]# cp /var/www/cgi-bin/index.cgi .
[root@apache-server cgi]# ll
total 4
-rwxr-xr-x. 1 root root 67 Dec  3 23:25 index.cgi

在这里插入图片描述
查看apache帮助手册:
在这里插入图片描述

##3.编写子配置文件
[root@apache-server conf.d]# vim /etc/httpd/conf/httpd.conf 

在这里插入图片描述

##4.重启服务
[root@apache-server conf.d]# systemctl restart httpd
##查看安全上下文
[root@apache-server cgi]# ls -Zd /var/www/html/cgi/
##5.修改安全上下文
[root@apache-server cgi]# semanage fcontext -a -t httpd_sys_script_exec_t '/var/www/html/cgi(/.*)?'

在这里插入图片描述

##6.刷新
[root@apache-server cgi]# restorecon -RvvF /var/www/html/cgi/

网页测试:
在这里插入图片描述(3)wsgi 接口语言
直接在/var/www/cgi-bin/目录下写编写发布文件

##.下载脚本
[root@apache-server cgi-bin]# ls
webapp.wsgi  westos
##查看脚本;此脚本是用python写的
[root@apache-server cgi-bin]# vim webapp.wsgi

在这里插入图片描述

##3.给脚本一个可执行权限
[root@apache-server cgi-bin]# chmod +x webapp.wsgi
[root@apache-server cgi-bin]# yum search wsgi

在这里插入图片描述

##4.安装wsgi插件
[root@apache-server cgi-bin]# yum install -y mod_wsgi.x86_64 
##5.编写子配置文件
[root@apache-server conf.d]# vim webapp.conf

在这里插入图片描述

##6.重启apache[root@apache-server conf.d]# systemctl restart httpd##7.本地解析
[root@foundation34 ~]# vim /etc/hosts

在这里插入图片描述
网页测试:
在这里插入图片描述

这篇关于Apache的部署三之构建虚拟主机(基于IP、基于域名、基于端口号) 、访问控制 、支持的多种语言脚本编写的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/632841

相关文章

闲置电脑也能活出第二春?鲁大师AiNAS让你动动手指就能轻松部署

对于大多数人而言,在这个“数据爆炸”的时代或多或少都遇到过存储告急的情况,这使得“存储焦虑”不再是个别现象,而将会是随着软件的不断臃肿而越来越普遍的情况。从不少手机厂商都开始将存储上限提升至1TB可以见得,我们似乎正处在互联网信息飞速增长的阶段,对于存储的需求也将会不断扩大。对于苹果用户而言,这一问题愈发严峻,毕竟512GB和1TB版本的iPhone可不是人人都消费得起的,因此成熟的外置存储方案开

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

Linux服务器Java启动脚本

Linux服务器Java启动脚本 1、初版2、优化版本3、常用脚本仓库 本文章介绍了如何在Linux服务器上执行Java并启动jar包, 通常我们会使用nohup直接启动,但是还是需要手动停止然后再次启动, 那如何更优雅的在服务器上启动jar包呢,让我们一起探讨一下吧。 1、初版 第一个版本是常用的做法,直接使用nohup后台启动jar包, 并将日志输出到当前文件夹n

maven 编译构建可以执行的jar包

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」👈,「stormsha的知识库」👈持续学习,不断总结,共同进步,为了踏实,做好当下事儿~ 专栏导航 Python系列: Python面试题合集,剑指大厂Git系列: Git操作技巧GO

如何编写Linux PCIe设备驱动器 之二

如何编写Linux PCIe设备驱动器 之二 功能(capability)集功能(capability)APIs通过pci_bus_read_config完成功能存取功能APIs参数pos常量值PCI功能结构 PCI功能IDMSI功能电源功率管理功能 功能(capability)集 功能(capability)APIs int pcie_capability_read_wo

嵌入式Openharmony系统构建与启动详解

大家好,今天主要给大家分享一下,如何构建Openharmony子系统以及系统的启动过程分解。 第一:OpenHarmony系统构建      首先熟悉一下,构建系统是一种自动化处理工具的集合,通过将源代码文件进行一系列处理,最终生成和用户可以使用的目标文件。这里的目标文件包括静态链接库文件、动态链接库文件、可执行文件、脚本文件、配置文件等。      我们在编写hellowor

在 Windows 上部署 gitblit

在 Windows 上部署 gitblit 在 Windows 上部署 gitblit 缘起gitblit 是什么安装JDK部署 gitblit 下载 gitblit 并解压配置登录注册为 windows 服务 修改 installService.cmd 文件运行 installService.cmd运行 gitblitw.exe查看 services.msc 缘起

Solr部署如何启动

Solr部署如何启动 Posted on 一月 10, 2013 in:  Solr入门 | 评论关闭 我刚接触solr,我要怎么启动,这是群里的朋友问得比较多的问题, solr最新版本下载地址: http://www.apache.org/dyn/closer.cgi/lucene/solr/ 1、准备环境 建立一个solr目录,把solr压缩包example目录下的内容复制