LAMP架构应用实战—Apache服务基于端口虚拟主机配置
时间:2022-07-25
本文章向大家介绍LAMP架构应用实战—Apache服务基于端口虚拟主机配置,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
LAMP架构应用实战—Apache服务
基于端口虚拟主机配置
前面介绍了基于域名、IP的虚拟主机配置,实际生产环境中使用最多的还是基于域名的虚拟主机,今天介绍的基于端口的虚拟主机也不常用,但用的最多的场景就是:公司内网(如网站后台页面、其它发布类的页面)
基于端口的虚拟配置非常简单
默认情况http默认监听的是80端口,所以配置基于端口的虚拟主机,就是增加相应的监听端口
一:配置之前备份配置文件
[root@Centos extra]# cp httpd-vhosts.conf httpd-vhosts.conf.$(date +%F)
[root@Centos extra]# ls
httpd-autoindex.conf httpd-info.conf httpd-mpm.conf httpd-userdir.conf httpd-dav.conf httpd-languages.conf httpd-multilang-errordoc.conf
httpd-vhosts.conf httpd-vhosts.conf.2016-09-09
httpd-default.conf httpd-manual.conf httpd-ssl.conf proxy-html.conf
二:配置站点目录(方便测试不同端口)
[root@Centos extra]# mkdir -p /data/www/blog/
[root@Centos extra]# echo "welcome to the server of blogs">>/data/www/blog/index.html
[root@Centos extra]# cat /data/www/blog/index.html
welcome to the server of blogs
三:配置虚拟主机配置文件
1、配置前还需要到主配置文件中增加目录控制权限
[root@Centos extra]# vi ../httpd.conf
<Directory "/data/www/bbs">
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
增加如下配置
<Directory "/data/www/blog">
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
实际生产环境中还是使用规范路径比较好,也可以将配置修改成如下
[root@Centos extra]# vi ../httpd.conf
<Directory "/data/www">
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
对上一级目录统一授权
2、主配置文件增加监听端口
[root@Centos extra]# vi ../httpd.conf
#
# This is the main Apache HTTP server configuration file. It contains the
# configuration directives that give the server its instructions.
# See <URL:http://httpd.apache.org/docs/2.4/> for detailed information.
............................其中一些配置部分省略
#
#Listen 12.34.56.78:80
Listen 80
Listen 8888
Listen 9999
3、配置虚拟主机配置文件
[root@Centos extra]# vi httpd-vhosts.conf
# Virtual Hosts
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost 192.168.1.20:8888>
ServerAdmin admini@abc.com
DocumentRoot "/data/www/bbs"
ServerName 192.168.1.20
ServerAlias abc.com
ErrorLog "logs/bbs-error_log"
CustomLog "logs/bbs-access_log" common
</VirtualHost>
<VirtualHost 192.168.1.2:9999>
ServerAdmin admini@abc.com
DocumentRoot "/data/www/blog"
ServerName 192.168.1.2
ServerAlias abc.com
ErrorLog "logs/bbs-error_log"
CustomLog "logs/bbs-access_log" common
</VirtualHost>
4、检查配置、重启服务
[root@Centos extra]# ../../bin/apachectl -t
Syntax OK
[root@Centos extra]# ../../bin/apachectl graceful
[root@Centos extra]# ps -ef |grep http
root 23901019:42 ? 00:00:00 /application/apache2.4.23/bin/httpd -k graceful
daemon 2725 2390 0 20:33 ? 00:00:00 /application/apache2.4.23/bin/httpd -k graceful
daemon 2726 2390 0 20:33 ? 00:00:00 /application/apache2.4.23/bin/httpd -k graceful
daemon 2727 2390 0 20:33 ? 00:00:00 /application/apache2.4.23/bin/httpd -k graceful
root 2835 1934 0 20:39 pts/1 00:00:00 grep http
[root@Centos extra]# netstat -lnt |grep 8888
tcp 0 0 :::8888 :::* LISTEN
[root@Centos extra]# netstat -lnt |grep 9999
tcp 0 0 :::9999 :::* LISTEN
四:测试配置
[root@Centos extra]# cat /data/www/bbs/index.html
welcome to bbs.abc.com
192.168.1.20:80 this server is the server of bbs stie
[root@Centos extra]# cat /data/www/blog/index.html
welcome to the server of blogs
本地浏览器测试
经过测试,访问正常,表明配置正确
五:主机别名的应用
修改下刚刚的虚拟主机配置
#port bash ip
<VirtualHost 192.168.1.20:8888>
ServerAdmin admini@abc.com
DocumentRoot "/data/www/bbs"
ServerName 192.168.1.20
ServerAlias abc.com
ErrorLog "logs/bbs-error_log"
CustomLog "logs/bbs-access_log" common
</VirtualHost>
#port bash name
<VirtualHost *:9999>
ServerAdmin admini@abc.com
DocumentRoot "/data/www/blog"
ServerName blog.abc.com
ServerAlias blog1.com
ErrorLog "logs/bbs-error_log"
CustomLog "logs/bbs-access_log" common
[root@Centos extra]# ../../bin/apachectl -t
Syntax OK
[root@Centos extra]# ../../bin/apachectl graceful
表明别名配置也是正确的
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 七日Python之路--第五天(之找点乐子)
- 超性感的React Hooks(七)useReducer
- 七日Python之路--第四天(之Django官方文档)
- 六、setTimeout与循环闭包经典面试题详解
- 七日Python之路--第四天
- 七、this
- 七日Python之路--第四天(之多线程)
- 超性感的React Hooks(八)useContext
- 七日Python之路--第三天(之不安分 wxPython)
- 七日Python之路--第三天
- 超性感的React Hooks(九)useContext实践
- 七日Python之路--第三天(之初试Django 2-2)
- 超性感的React Hooks(十)useRef
- 七日Python之路--第三天(之初试Django 2-1)
- 超性感的React Hooks(十一)useCallback、useMemo