apache虚拟主机试用3天配置

1 Apache虚拟主机的实现方式有3种。
基于IP的虚拟主机
基于端口的虚拟主机
基于域名的虚拟主机
2.1 启用虚拟主机的准备工作
2.1.1安装httpd
[root@mail httpd]# yum install httpd -y
2.1.2禁用默认的主机模式
[root@mail httpd]# vim /etc/httpd/conf/httpd.conf
注释下面这行内容
#DocumentRoot "/var/www/html"
2.2基于IP的虚拟主机配置
2.2.1为主机添加多个IP
[root@localhost conf.d]# ip addr show dev eth0
#查看原有IP2: eth0: &BROADCAST,MULTICAST,UP,LOWER_UP& mtu 1500 qdisc pfifo_fast state UP qlen 1000&&& link/ether 00:0c:29:77:77:7d brd ff:ff:ff:ff:ff:ff&&& inet 192.168.137.200/24 brd 192.168.137.255 scope global eth0&&& inet6 fe80::20c:29ff:fe77:777d/64 scope link &&&&&& valid_lft forever preferred_lft forever[root@localhost conf.d]# ip addr add 192.168.137.201/24 dev eth0
#添加一个IP[root@localhost conf.d]# ip addr show dev eth0
#查看添加后的IP信息, 此时有2个IP地址了。 200,2012: eth0: &BROADCAST,MULTICAST,UP,LOWER_UP& mtu 1500 qdisc pfifo_fast state UP qlen 1000&&& link/ether 00:0c:29:77:77:7d brd ff:ff:ff:ff:ff:ff&&& inet 192.168.137.200/24 brd 192.168.137.255 scope global eth0&&& inet 192.168.137.201/24 scope global secondary eth0&&& inet6 fe80::20c:29ff:fe77:777d/64 scope link &&&&&& valid_lft forever preferred_lft forever
2.2.2添加虚拟主机配置文件
[root@mail conf.d]# cd /etc/httpd/conf.d/
#进入配置目录
[root@mail conf.d]# vim virtualhost.conf
#创建一个配置文件, 编辑内容如下
[root@mail conf.d]# cat virtualhost.conf
#查看并检查配置文件
&VirtualHost 192.168.137.200:80&
DocumentRoot "/var/www/test200"
ServerName
www.test200.com
&/VirtualHost&
&VirtualHost 192.168.137.201:80&
DocumentRoot "/var/www/test201"
ServerName
www.test201.com
&/VirtualHost&
[root@mail conf.d]# cd /var/www
[root@mail www]# mkdir test200 test201
[root@mail www]# echo test200 &&./test200/index.html #创建IP为200的主页
[root@mail www]# echo test201 &&./test201/index.html #创建IP为200的主页
[root@localhost www]#& service httpd restartStopping httpd:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& [& OK& ]Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& [& OK& ]我们这里使用elinks进行测试, 当然用浏览器测试是一样的
[root@localhost conf]# elinks -source 192.168.137.200
[root@localhost conf]# elinks -source 192.168.137.201
2.3基于端口的虚拟主机配置
2.3.1在主配置文件添加监听端口
[root@localhost conf]# vim /etc/httpd/conf/httpd.conf
在原有行Listen 80行的基础上, 在添加一行
Listen 8080
2.3.2添加8080的端口虚拟配置
[root@localhost conf.d]# cat virtualhost.conf
&VirtualHost 192.168.137.200:80&
DocumentRoot "/var/www/test200"
ServerName
www.test200.com
&/VirtualHost&
&VirtualHost 192.168.137.201:80&
DocumentRoot "/var/www/test201"
ServerName
www.test201.com
&/VirtualHost&
#下面的内容是在上面的配置的基础上添加的。
&VirtualHost 192.168.137.201:8080&
DocumentRoot "/var/www/test201-8080"
ServerName
www.test201-8080.com
&/VirtualHost&
[root@localhost conf.d]# cd /var/www/
[root@localhost www]# mkdir test201-8080
[root@localhost www]# echo "test201-8080" &&./test201-8080/index.html
[root@localhost www]#
service httpd restart
Stopping httpd:
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
[root@localhost conf]# elinks -source 192.168.137.201:80
[root@localhost conf]# elinks -source 192.168.137.201
[root@localhost conf]# elinks -source 192.168.137.201:8080
test201-8080
2.4基于域名的虚拟主机配置
2.4.1 添加域名的虚拟主机配置
[root@localhost conf.d]# vim virtualhost.conf
#编辑虚拟主机配置文件
[root@localhost conf.d]# cat virtualhost.conf
#内容如下, 红色部分是在上面的基础上添加的
NameVirtualHost 192.168.137.200:80
&VirtualHost 192.168.137.200:80&
DocumentRoot "/var/www/test200"
ServerName
www.test200.com
&/VirtualHost&
&VirtualHost 192.168.137.200:80&
DocumentRoot "/var/www/test200net"
ServerName
www.test200.net
&/VirtualHost&
&VirtualHost 192.168.137.201:80&
DocumentRoot "/var/www/test201"
ServerName
www.test201.com
&/VirtualHost&
&VirtualHost 192.168.137.201:8080&
DocumentRoot "/var/www/test2018080"
ServerName
www.test2018080.com
&/VirtualHost&
[root@localhost conf.d]# !ser
service httpd restart
Stopping httpd:
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
[root@localhost conf.d]# cd /var/www
[root@localhost www]# mkdir test200net
[root@localhost www]# echo "test200net" &&./test200net/index.html
2.4.2 测试
2.4.2.1 添加域名解析
这里我们没有提供dns去解析,简单的使用hosts文件区解析就可以了。
[root@localhost www]# vim /etc/hosts
编辑hosts文件, 添加两行
[root@localhost www]# cat /etc/hosts
localhost localhost.localdomain localhost4 localhost4.localdomain4
localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.137.200 www.test200.com
192.168.137.200 www.test200.net
接下来就可以测试了
[root@localhost www]# elinks -source http://www.test200.com
#测试.com域
[root@localhost www]# elinks -source http://www.test200.net
#测试.net域
test200net
阅读(...) 评论()
(function(){
$("#div_digg > div.buryit").remove();
$("#ad_t2").remove();apache设置虚拟主机的步骤
作者:新网
你知道apache如何设置虚拟主机吗?很多人的回答也许是否定的。apaches设置虚拟主机的步骤其实并不难,大家一学就可以学会。下面小编就带大家了解一下关于apache虚拟主机以及apache设置虚拟主机的步骤。
&你知道apache如何设置吗?很多人的回答也许是否定的。apaches设置虚拟主机的步骤其实并不难,大家一学就可以学会。下面小编就带大家了解一下关于apache虚拟主机以及apache设置虚拟主机的步骤。
apache的?Apache的虚拟主机是在同一个服务器上运行的多个网站,而且这些网站都可以跟独立的绑定。而且在访问域名的时候,Apache会打开相应域名里的东西,所以配置Apache的虚拟主机,只需要修改配置文件就可以了。那么,apache如何设置虚拟主机?接下来将给大家详细说说它的步骤,如果你不知道的话也可以接着看下去。
配置apache虚拟主机步骤如下:首先要找到配置虚拟主机的配置文件,如果你使用的是WAMP所搭建的环境,那么你必须通过一系列的程序去掉前面的&#&号,这样的话,Apache启动以后也会去加载以前的配置文件,这样做的好处是保持了Apache的完整性。所以,你可以在配置文件里去配置虚拟主机。
还可以打开httpd-vhosts.conf这个文件,如果没有这个文件的话,可以去制造一个,或者直接去httpd.conf里设置虚拟主机。选择两段设置虚拟主机的代码,然后复制其中的一段,接着再粘帖到文件的最下方,最后再根据自己的意愿去修改这段代码,这样也可以设置虚拟主机。不过要注意的是,第一个虚拟主机是系统默认的,所以自己要收藏好,配置虚拟主机的话,就要选择第二段代码。上面这点非常重要,希望大家一定要牢牢记住。
以上内容只是apache设置虚拟主机的一部分,如果大家知道其他设置虚拟主机的方法也可以分享给我们,毕竟好的东西要分享才是正确的做法。
免责声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,也不承认相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,可以点击上方修改按钮,也欢迎发送邮件至:进行举报,并提供相关证据,工作人员会在5个工作日内联系您,一经查实,本站将立刻删除涉嫌侵权内容。Apache 配置https虚拟主机
纯手工打造每一篇开源资讯与技术干货,数十万程序员和Linuxer已经关注。
一、安装带ssl的Apache2.2.21
1、安装apache之前需要先检查openssl是否安装完毕,yum list "*openssl*",如果没有用yum安装下即可
2、apache安装,网上文档很多,以下是专门针对ssl的编译参数
# cd /usr/local/src/tarbag
# wget http://labs.renren.com/apache-mirror//httpd/httpd-2.2.21.tar.gz
# tar xzvf httpd-2.2.21.tar.gz -C ../software
# cd ../software/httpd-2.2.21
# ./configure --prefix=/usr/local/apache --enable-so --enable-ssl --enable-rewrite --enable-headers --with-mpm=worker --enable-expires --enable-suexec --with-suexec-docroot=/data/www --enable-mods-shared=all
# make && make install
# rm -rf /etc/init.d/httpd
# cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
# sed -i '2c#chkconfig: 35 85 15' /etc/init.d/httpd
# sed -i '3c#deion: apache' /etc/init.d/httpd
# chmod x /etc/init.d/httpd
# chkconfig --add httpd
# chkconfig httpd on
# rm -rf /sbin/apachectl
# ln -s /usr/local/apache/bin/apachectl /sbin
二、生成证书
1、生成证书存放目录
安装好apache后,第一时间生成证书,在生成证书之前先准备生成一个证书存放的目录
# cd /usr/local/apache/conf
# mkdir ssl.key
# cd ssl.key/
2、分3步生成服务器签名的证书
首先要生成服务器端的私钥(key文件)
# openssl genrsa -des3 -out server.key 1024
运行时会提示输入密码,此密码用于加密key文件,去除key文件口令的命令:
.......................
.................................................
Enter pass phrase for server.key:
Verifying - Enter pass phrase for server.key:
生成Certificate Signing Request(CSR),生成的csr文件交给CA签名后形成服务端自己的证书.屏幕上将有提示,依照其指示一步一步输入要求的个人信息即可.
# openssl req -new -key server.key -out server.csr
看到如下提示,并按照提示输入相关信息即可生成密钥
Enter pass phrase for server.key:
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) [GB]:CN
State or Province Name (full name) [Berkshire]:FJ
Locality Name (eg, city) [Newbury]:FZ
Organization Name (eg, company) [My Company Ltd]:company
Organizational Unit Name (eg, section) []:company
Common Name (eg, your name or your server's hostname) []:ty
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:company
An optional company name []:company
如果要生成客户端证书,那么对客户端也作同样的命令生成key及csr文件:
openssl genrsa -des3 -out client.key 1024
openssl req -new -key client.key -out client.csr -config openssl.cnf
这里就不做演示了,有兴趣的朋友可以去尝试下。
CSR文件必须有CA的签名才可形成证书.可将此文件发送到verisign等地方由它验证.自己生成
# openssl req -new -key server.key -out server.csr
看到如下提示,输入密码,即可完成
Signature ok
subject=/C=CN/ST=FJ/L=FZ/O=poppace/OU=poppace/CN=ty/emailAddress=
Getting Private key
Enter pass phrase for server.key:
为了安全起见要将证书相关文件的访问权限降到最低
# chmod 400 *
证书生成完毕,接下来可以配置apache了。
三、配置apache
1、在httpd.conf中打开vhosts和ssl的配置文件
# vi /usr/local/apache/conf/httpd.conf
打开vhosts配置,跳转到447行和459行,取消掉Include conf/extra/httpd-vhosts.conf和Include conf/extra/httpd-ssl.conf之前的注释
2、配置vhosts
# vi /usr/local/apache/conf/extra/httpd-vhosts.conf
特别需要注意443段的配置,可在httpd-ssl.conf中找到相关说明
NameVirtualHost *:80
NameVirtualHost *:443
&VirtualHost *:80&
DocumentRoot "/data/www/"
ServerName 192.168.1.201
&Directory /data/www/&
Order allow,deny
Allow from all
Options -Indexes FollowSymLinks
AllowOverride All
&/Directory&
&/VirtualHost&
&VirtualHost *:443&
DocumentRoot "/data/www/"
ServerName 192.168.1.201:443
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4 RSA: HIGH: MEDIUM: LOW: SSLv2: EXP: eNULL
SSLCertificateFile "/usr/local/apache/conf/ssl.key/server.cert"
SSLCertificateKeyFile "/usr/local/apache/conf/ssl.key/server.key"
&FilesMatch ".(cgi|shtml|phtml|php)$"&
SSLOptions StdEnvVars
&/FilesMatch&
&Directory /data/www/&
Order allow,deny
Allow from all
Options -Indexes FollowSymLinks
AllowOverride All
&/Directory&
BrowserMatch ".*MSIE.*"
nokeepalive ssl-unclean-shutdown
downgrade-1.0 force-response-1.0
&/VirtualHost&
3、修改httpd-ssl.conf的相关配置
# vi /usr/local/apache/conf/extra/httpd-ssl.conf
搜索SSLCertificateFile
并将:(99行)SSLCertificateFile "/usr/local/apache/conf/server.crt"
改为:SSLCertificateFile "/usr/local/apache/conf/ssl.key/server.cert"
搜索SSLCertificateKeyFile
并将:(107行)SSLCertificateKeyFile "/usr/local/apache/conf/server.key"
改为:SSLCertificateKeyFile "/usr/local/apache/conf/ssl.key/server.key"
4、重启apache
# service httpd start
Apache/2.2.21 mod_ssl/2.2.21 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide the pass phrases.
Server www.example.com:443 (RSA)
Enter pass phrase:
OK: Pass Phrase Dialog successful.
现在用浏览器访问下https://192.168.1.201,即大告大功。
原文来自:
本文地址: 编辑:冯振华,审核员:逄增宝
让您学习到的每一节课都有所收获
《Linux就该这么学》是由资深运维专家刘遄及全国多名红帽架构师(RHCA)基于最新RHEL7系统共同编写的高质量Linux技术自学教程,极其适合用于Linux技术入门教程或讲课辅助教材。
? 刘遄老师QQ:5604241 微信:gnu_chuan
? 学员助教QQ:5604674
?Linux技术交流A群(满):560843
? Linux技术交流B群:340829
? Linux技术交流C群:463590
? Linux技术交流D群:915246(新群,火热加群中……)
? 官方站点:www.linuxprobe.com
? 电脑在线阅读效果更佳:
http://www.linuxprobe.com/chapter-00.html
按住图片3秒,即可自动关注。
点击左下角查看更多热门技术
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
今日搜狐热点一个有梦想的人运气不会太差
Apache虚拟主机配置
、虚拟主机定义
①在Apache文件配置的项目文件夹,我这里是D:\www下创建项目,文件夹名字叫做demo
②编辑httpd-vhost.conf,在Apache安装路径下,我这里是D:\Program Files\Apache\Apache24\conf\extra在httpd-vhost.conf文件中添加:
&VirtualHost*:80&
DocumentRoot "D:/www/demo"
ServerName demo
&Directory
"D:/www/demo"&
AllowOverride All
Require local
&/Directory&
&/VirtualHost&含义是,虚拟机使用的是80端口,并且虚拟机的名称叫做demo,即在浏览器的地址栏输入即可。
、把新域名加到HOSTS文件中
①host文件所在位置C:\Windows\System32\drivers\etc
在文件hosts中添加
127.0.0.1 demo
::1 demo其中127.0.0.1代表IPV4地址,而::1代表IPV6地址。然后保存这个文件(再次提醒需要管理员权限)。
②用管理员权限打开Windows命令行终端,cmd,分别运行下面两行代码
net stopdnscache
net startdnscache、取消掉Apache中关于虚拟主机定义的注释
①httpd.conf文件位于D:\ProgramFiles\Apache\Apache24\conf目录(511行),打开文件之后,找到这两行代码:
#Virtual hosts
#Include conf/extra/httpd-vhosts.conf
把 #Includeconf/extra/httpd-vhosts.conf 前的 # 取消。然后保存文件,重启Apache。
②在demo文件夹下创建一个php文件,命名为test.php. test.php文件中放入以下内容:
echo 'test demo';
没有更多推荐了,在window下,Apache的配置文件是httpd.conf,但在Linux下安装了Apache后发现其配置并不像window下那么简单,Linux下Apache将各个设置项分在了不同的配置文件中,想想也是有很大的理由的,这样子可以使用户在开发过程中自由的搭配其不同的功能模块,更好的提高效率,不过,如果不事先了解Apache,可能在配置时蒙圈。
Ubuntu中Apache的配置文件是//etc/apache2/apache2.conf。Apache在启动时会找到这个文件并自动读取该文件中的配置信息,而其他配置文件则是通过include指令包含进来的,在apache2.conf 中可以看到这些引入行。当然,也可以将所有的配置全放在apache2.conf或者httpd.conf或者其他文件中,Apache这样划分是一种比较好的习惯。
在Ubuntu中Web文档的根目录是在/var/www中,怎么知道的呢?在/etc/apache2/sites-enabled/000-default中有这样一段内容
NameVirtualHost *
&VirtualHost *&
ServerAdmin webmaster@localhost
DocumentRoot /var/www/
这是设置虚拟机的,当然,如果觉得没有用的,也可以将apache2.conf里的Include /etc/apache2/sites-enabled/一行注释掉,并在htttpd.conf中的DocumentRoot设置成某个项目的目录,这样可以方便开发。
在/etc/apache2目录下,发现了sites-enabled目录,然而还有一个sites-available目录,那么这两个目录到底有什么作用呢?其实,sites-available这个目录包含Apache虚拟主机的配置文件。虚拟主机允许Apache配置多个站点并为每个站点配置不同的参数。而sites-enabled目录的作用是持有/etc/apache2/sites-available目录下文件的链接。当Apache重启后,该目录中包含的站点将会被激活。如果apache上配置了多个虚拟机,每个虚拟机的配置文件都放在sites-available下,那么对于虚拟主机的停用,启动就是非常方便了,操作某个虚拟主机就不用动配置文件了
-----------------------------------------------------------------------------------------------我是美丽的分割线~~----------------------------------------------------------------------------------------------------
在/etc/apache2下还用类似于sites-enabled和sites-available两个目录的mods-available和mods-enabled两个目录,那么这两个目录有何作用呢?其实类似于sites-enabled和sites-available,mods-available这个目录包含模块和模块配置文件,不是所有的模块都有配置文件。比如当apt-get install php5安装了php模块,在这两个目录中就有了php5.load、php5.conf和指向这两个文件的链接。这对于apache开启停用某个模块是非常方便的
在/etc/apache2目录下,还有一个文件ports.conf,这个文件配置Apache监听的端口,如果觉得嫌弃它多余,可以先把apache2.conf中的Include /etc/apache2/ports.conf一行去掉,在httpd.conf里设置Apache端口。
在Ubuntu缺省安装的目录有与其他相比有一点不同。在ubuntu中module和 virtual host的配置都有两个目录,一个是available,一个是enabled,available目录是存放有效的内容,但不起作用,只有用ln 连到enabled过去才可以起作用。这样子对于开发以及调试都很方便。
----------------------------------------------------------------------------------------------我是美丽的分割线~~~---------------------------------------------------------------------------------------------------
什么是虚拟主机(Virtual Hosting)
所谓虚拟主机,就是把一台运行在互联网上的服务器划分成多个“虚拟”的服务器,每一个虚拟主机都具有独立的域名和完整的Internet服务器(支持WWW、FTP、E-mail等)功能。再简单的说,就是同一台服务器可以同时处理超过一个域名(domain)。假设www.example1.com和www.example2.com两个域名都指向同一个服务器,而web服务器又支持虚拟主机,那么www.example1.com和www.example2.com可以访问到同一服务器上不同的web空间。
在Apache2中,有效的站点信息都存放在/etc/apache2/sites-available/用户名(文件) 里面。 我们可以添加格式如下的信息来增加一个有效的虚拟空间,将/etc/apache2/sites-available/000-default.conf里的大部分东西拷贝过来就行了(比较老的ubuntu版本可能叫做default),命名成自己想命的名字,记得改DocumentRoot作为默认目录,在Directory中设置路径,注意端口号不要与其他的虚拟主机重复:
&VirtualHost *自定义端口&
# 在ServerName后加上你的网站名称
ServerName www.linyupark.com
# 如果你想多个网站名称都取得相同的网站,可以加在ServerAlias后加上其他网站别名。
# 别名间以空格隔开。
ServerAlias ftp.linyupark.com mail.linyupark.com
# 在ServerAdmin后加上网站管理员的电邮地址,方便别人有问题是可以联络网站管理员。
ServerAdmin
# 在DocumentRoot后加上存放网站内容的目录路径(用户的个人目录)
DocumentRoot /home/linyupark/public_html
&Directory /home/linyupark/public_html&
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
&/Directory&
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
&Directory "/usr/lib/cgi-bin"&
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Allow from all
&/Directory&
ErrorLog /home/linyupark/public_html/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /home/linyupark/public_html/access.log combined
ServerSignature On
&/VirtualHost&
如果你的服务器有多个IP,而不同的IP又有着不一样的虚拟用户的话,可以修改成:
&VirtualHost IP地址[:端口]&
&/VirtualHost& 
一般情况下,我们只需要做两部操作:1,添加“ServerName www.example.com”, 2,修改“DocumentRoot &/var/www”为自己定义的目录。
1,现在我们配置的内容只是有效虚拟主机,要是真正的发挥作用得放在/etc/apache2/sites-enabled 文件夹下面,需要通过ln建立关联:
sudo ln -s /etc/apache2/sites-available/example.conf
/etc/apache2/sites-enabled/example.conf 
&2,修改/etc/hosts文件,加入当前主机的IP地址和需要设置的虚拟主机名,如:127.0.0.1 www.jiaoxue.com :
shanlei-Lenovo-ideapad-110-15ISK
www.jiaoxue.com
# The following lines are desirable for IPv6 capable hosts
ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
检查语法没有错误,如果没有错误,重启Apache:
sudo /etc/init.d/apache2 restart
service apache2 restart
----------------------------------------------------------------------完结----------------------------------------------------------------------  
阅读(...) 评论()

我要回帖

更多关于 apache怎么模拟网址 的文章

 

随机推荐