Http的轻微配置

目标:

  1. 建立DNS服务器,同时为linux.com, php.net, apache.org三个域提供解析;要求,每个域内的www主机均指向本机唯一的IP;
  2. 建立httpd服务器,分别为www.linux.com, www.php.net, www.apache.org 各提供一个虚拟主机,位置分别为/www/linux,/www/php,/www/apache;
  3. 每个虚拟主机的要使用各自的错误日志和访问日志,日志文件名称以虚拟主机名称打头;三个虚拟主机的日志文件都位于/www/logs目录中;
  4. www.linux.com虚拟主机仅允许来自172.16.0.0/16(除了172.16.100.0/24)的主机访问,且支持基于SSL的访问;
  5. www.php.net虚拟主机仅允许提供了帐号和密码的请求者访问;
  6. 通过http://www.apache/mail可以访问/web/mail目录中的网页,而且此目录允许执行CGI脚本(请测试通过)

我们开始吧!我的环境是redhat 5.8,已安装自带的bind97,bind97_lib,bind97_utils,httpd2.2.3,

1.建立DNS服务器。建立/etc/named.conf,并为之建立各自区域文件,启动named服务,测试,并把测试机(我用的是我的xp)的DNS改为刚建立的DNS的地址

   1:  /etc/named.conf :
   2:   
   3:  options {
   4:          directory "/var/named";
   5:  };
   6:  zone "linux.com" IN {
   7:          type master;
   8:          file "linux.php.apache";
   9:  };
  10:  zone "php.net" IN {
  11:          type master;
  12:          file "linux.php.apache";
  13:  };
  14:  zone "apache.org" IN {
  15:          type master;
  16:          file "linux.php.apache";
  17:  };
  18:   
  19:  /var/named/linux.php.apache
  20:   
  21:   
  22:  $TTL 86400
  23:  @               IN      SOA     ns      admin   (   
  24:                                          001 
  25:                                          2H  
  26:                                          5M  
  27:                                          7D  
  28:                                          2H )
  29:                  IN      NS      ns  
  30:  ns              IN      A       172.16.1.1
  31:  www             IN      A       172.16.1.1
 
 

2.修改/etc/httpd/conf/httpd.conf,注释主服务器区域的文档目录栏,取消基于域名的虚拟主机选项,然后建立虚拟机主机.新建几个目录,与日志文件,更改权限

   1:  #DocumentRoot "/var/www/html"      ##282行左右
   2:  NameVirtualHost *:80          ##973行左右取消注释
   3:  ##在最后建立三个虚拟主机
   4:  <VirtualHost *:80>
   5:          ServerName "www.linux.com"
   6:          DocumentRoot /www/linux
   7:          ErrorLog /www/logs/linux-error_log
   8:          CustomLog /www/logs/linux-access_log common
   9:  </VirtualHost>
  10:  <VirtualHost *:80>
  11:          ServerName "www.php.net"
  12:          DocumentRoot /www/php
  13:          ErrorLog /www/logs/php-error_log
  14:          CustomLog /www/logs/php-access_log common
  15:  </VirtualHost>
  16:  <VirtualHost *:80>
  17:          ServerName "www.apache.org"
  18:          DocumentRoot /www/apache
  19:          ErrorLog /www/logs/apache-error_log
  20:          CustomLog /www/logs/apache-access_log common
  21:  </VirtualHost>
  22:   
  23:  mkdir /www/{linux,php,apache/logs}; ##建立目录
  24:  touch /www/logs/{linux-error_log,linux-access_log,php-error_log,php-access_log,apache-access_log,apache-error_log};
  25:  echo "I am linux " >/www/linux/index.html;
  26:  echo "I am php " >/www/php/index.html;
  27:  echo "I am linux " >/www/apache/index.html;
  28:  chown apache:apache -R /www 

 

3.修改名字为www.linux.com虚拟主机的访问权限

   1:  <VirtualHost *:80>
   2:          ServerName "www.linux.com"
   3:          DocumentRoot /www/linux
   4:          ErrorLog /www/logs/linux-error_log
   5:          CustomLog /www/logs/linux-access_log common
   6:          <Directory "/www/linux">
   7:                  Order Allow,Deny
   8:                  Allow From 172.16.0.0/16
   9:                  Deny From 172.16.100.0/24
  10:          </Directory>
  11:  </VirtualHost>
4.为www.linux.com建立证书,方法见http://laoguang.blog.51cto.com/6013350/1035608
5.安装mod_ssl这个模块,基于ssl访问的https由它提供,修改它的配置文件/etc/httpd/conf.d/ssl.conf
   1:  yum -y install mod_ssl         ##已配好yum,自动安装
   2:   
   3:  /etc/httpd/conf.d/ssl.conf
   4:   
   5:  DocumentRoot "/www/linux"       ##86行加入这两行   
   6:  ServerName www.linux.com   
   7:  SSLCertificateFile /etc/httpd/conf.d/linux.crt        ##113行左右修改为SSL的证书的位置  (这是我建立证书的位置)   
   8:  SSLCertificateKeyFile /etc/httpd/conf.d/linux.key     ##120行左右修改为SSL的私钥的位置
6.为www.php.net 设定访问权限
   1:  <VirtualHost *:80>
   2:            ServerName "www.php.net"
   3:            DocumentRoot /www/php
   4:            ErrorLog /www/logs/php-error_log
   5:            CustomLog /www/logs/php-access_log common
   6:          <Directory /www/php>
   7:                  AllowOverride Authconfig
   8:                  options none
   9:                  Authtype basic
  10:                  Authname "Hi,I'm secreat"
  11:                  AuthUserFile /etc/httpd/conf.d/htpasswd
  12:                  Require valid-user
  13:          </Directory>
  14:    </VirtualHost>
 
 
   1:  htpasswd -c -m /etc/httpd/conf.d/htpasswd laoguang
   2:  New password: 
   3:  Re-type new password: 
 
   1:  <VirtualHost *:80>
   2:            ServerName "www.apache.org"
   3:            DocumentRoot /www/apache  
   4:            ErrorLog /www/logs/apache-error_log  
   5:            CustomLog /www/logs/apache-access_log common
   6:            alias /mail "/web/mail"
   7:            AddHandler cgi-script .cgi
   8:            <Directory /web/mail>
   9:                  Options execCGI
  10:            </Directory>
  11:    </VirtualHost>  
 
 
   1:  vim /www/apache/test.cgi
   2:   
   3:  #!/bin/bash
   4:  cat <<EOF
   5:  Content-Type: text/html
   6:   
   7:  <pre>
   8:  $(/bin/date)
   9:  my name is `id -nu`
  10:  my hostname $HOSTNAME
  11:  `/bin/date`
  12:  `echo $PATH`
  13:  </pre>
  14:  EOF
  15:   
  16:   
  17:  ##浏览器访问 www.apache.org/mail/test.cgi看是否能正常执行
 
 
 
 
 
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/548276.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ural 1627 Join(生成树计数)

http://acm.timus.ru/problem.aspx?space1&num1627 生成树计数的题&#xff0c;直接用Matrix-Tree定理就可以解决问题了。 代码如下&#xff1a; View Code 1 #include <cstdio>2 #include <cstring>3 #include <algorithm>4 5 using namespace std;6 …

repair filesystem 一般是什么引起的和该怎样解决

repair filesystem 一般是什么引起的和该怎样解决 linux下repair filesystem模式修复方法实践 第一种情况&#xff1a;非正常关机引起的磁盘分区问题不能正常进入系统 如果确定是由于上次非正常关机或者异常断电引起的&#xff0c;可以使用fsck /dev/hdaX后reboot进入&#xff…

Navicat for MySQL工具创建mysql数据库定时器

步骤1&#xff1a; 步骤二&#xff1a; 效果图:

centos安装virtualbox

1 检查系统内核版本[rootcentos ~]# uname -aLinux centos2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:35 EDT 2010 i686 i686 i386 GNU/Linux2 安装软件环境yum install gcc yum install kernel-devel yum install kernel-headers 注&#xff1a;这步执行后的版kernel-devel和kern…

带有emplace开头的STL为何优于其它插入函数

#include #include #include “my_string.h” int main() { std::vector<my_string>vec; //会执行构造函数&#xff0c;再执行move构造函数,如果没有move会自己生成默认的move构造函数 vec.push_back(“1111”); //c会执行构造&#xff0c;执行完毕 std::string str …

openssl rsa密钥

#include <boost/asio/ssl.hpp> #include #if defined(WINDOWS) #if (OPENSSL_VERSION_NUMBER > 0x10101000L) #pragma comment(lib,“libcrypto.lib”) #pragma comment(lib,“libssl.lib”) #else #pragma comment(lib,“libeay32.lib”) #pragma comment(lib,“ss…

Juniper基础系列之一---vlan的建立

VLAN是交换机最重要的一个功能。EX交换机关于VLAN配置的菜单有三层&#xff0c;首先是vlans菜单层次&#xff0c;在vlans&#xff08;通过edit vlans可以进入vlans菜单里面&#xff09;里面可以创建vlan&#xff0c;而创建vlan的时候可以指定名字和vlan id。 在EX端口下面&…

魔兽争霸3地图(WarIII Maps):三国猛兽传

魔兽争霸3地图&#xff08;WarIII Maps&#xff09;&#xff1a;三国猛兽传三国猛兽传三国时期&#xff0c;连年战乱&#xff0c;天降异象&#xff0c;所有战力无双的英雄&#xff0c;外表全都变成了凶悍的猛兽…………其貌虽毁&#xff0c;其心不改攻城略地&#xff0c;百战成…

Linux下Redis的安装、配置操作说明

Redis 是一个高性能的key-value数据库。 redis的出现&#xff0c;很大程度补偿了memcached这类keyvalue存储的不足&#xff0c;在部分场合可以对关系数据库起到很好的补充作用。它提供了Python&#xff0c;Ruby&#xff0c;Erlang&#xff0c;PHP客户端&#xff0c;使用很方便。…

提取ip和端口

#include int main() { std::string str “192.168.9:8086”; std::string buffer1; buffer1.resize(128); int port 0; sscanf(str.c_str(), “%[^:]:%d”, &buffer1[0],&port); //std::string str “https://192.168.9:8086/test”; //std::string buffer1; //b…

Oracle SQL语句执行步骤

Oracle中SQL语句执行过程中,Oracle内部解析原理如下: 1、当一用户第一次提交一个SQL表达式时,Oracle会将这SQL进行Hard parse,这过程有点像程序编译,检查语法、表名、字段名等相关信息&#xff08;如下图&#xff09;&#xff0c;这过程会花比较长的时间&#xff0c;因为它要分…

字节流及字节对齐

#include #pragma pack(push,4) struct MyStruct { unsigned char a;// unsigned int b; //到这里是&#xff0c;加起来等于unsigned int 字节的倍数 unsigned char Cbuffer[10];//char没有字节对齐 unsigned int d; }; #pragma pack() void EnCodePack(unsigned char*cSend…

Android平台各类恶意软件及病毒概览

原文请见:http://mobile.51cto.com/ahot-364267.htmAndroid平台中各类恶意软件及病毒概览<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />随着移动互联网的发展&#xff0c;作为当今最大的移动操作系统之一&#xff0c;Android已…

string封装

class String { public: String(const char*str NULL) { if (str NULL) { data_ new char[1]; data_[0] 0; //memset(data_, 0, sizeof(data_)); //数组越界&#xff0c;delete的时候&#xff0c;会影响内存回收变化&#xff0c;因此会导致程序崩溃 } else { data_ new ch…

vim高级技巧(split)_小花_新浪博客

vim高级技巧&#xff08;split&#xff09;_小花_新浪博客:res(ize) N 把当前窗口高度增加N个像素 :res(ize) -N 把当前窗口高度减少N个像素 :vertical res(ize) N 把当前窗口宽度增加N个像素 :vertical res(ize) -N 把当前窗口宽度减少N个像素等于是按下后,松开键盘,再按…

单链表反转和插入

#include struct node { int value -1; node* next_ptr nullptr; }; //创建结点 void create(int i, node** header_ptr) { node* current header_ptr; //第一个结点 if (current nullptr) { node ptr new node; ptr->value i; ptr->next_ptr nullptr; header…

liunx命令联系

1&#xff0c;liunx桌面和命令行之间的切换 init 3 init4 init5 2&#xff0c;liunx下用户的切换是su 用户 转载于:https://blog.51cto.com/lvjian118/1057319

测试boot库下I/O模型类型

#include #include #include <boost/asio.hpp> int main() { std::string output; #if defined(BOOST_ASIO_HAS_IOCP) output “iocp” ; #elif defined(BOOST_ASIO_HAS_EPOLL) output “epoll” ; #elif defined(BOOST_ASIO_HAS_KQUEUE) output “kqueue” ; #elif…

循环语句:For循环

Pascal中的for循环严格地建立在计数器基础上&#xff0c;循环每执行一次&#xff0c;计数器不是增加一个值就是减小一个值。 例子&#xff1a; vark,i: integer; beginK:0;for i:1 to 10 dok :ki;同样的for语句可以用正好相反的计数器来写&#xff1a; vark,i: integer; begink…

beast单元库的总结

1:凡是带有async_read 和async_write 开头都是阻塞的&#xff0c;因为在向socket底层读写缓冲区时&#xff0c;一定要读完指定的大小位置&#xff0c;因为底层写了一个for循环 2:如果要使用async_read_some开头的函数&#xff0c;一定要使用先读写包头&#xff0c;再读写包体的…