博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux-LAMP虚拟主机配置
阅读量:5037 次
发布时间:2019-06-12

本文共 4096 字,大约阅读时间需要 13 分钟。

1、配置用户认证

AllowOverride AuthConfig AuthName "自定义的" AuthType Basic AuthUserFile /data/.htpasswd require valid-user

1) AuthName命令:指定认证区域名称。区域名称是在提示要求认证的对话框中显示给用户的。

2) AuthType命令:指定认证类型。在HTTP1.0中,只有一种认证类型:basic。在HTTP1.1中有几种认证类型,如:MD5。
3) AuthUserFile命令:指定一个包含用户名和密码的文本文件,每行一对。
4) AuthGroupFile命令:指定包含用户组清单和这些组的成员清单的文本文件。组的成员之间用空格分开,如:
     managers:user1 user2
5) require命令:指定哪些用户或组才能被授权访问。如:
     require user user1 user2(只有用户user1和user2可以访问)
     requires groups managers (只有组managers中成员可以访问)
     require valid-user (在AuthUserFile指定的文件中任何用户都可以访问)

cd /data/discuz/passwd

htpasswd -c /data/.htpasswd user1

htpasswd  /data/.htpasswd user2

apachectl graceful

2、默认虚拟主机

如果在现有的web服务器上增加虚拟主机,必须也为现存的主机建造一个<VirtualHost>定义块。其中ServerName和DocumentRoot所包含的内容应该与全局的保持一致,且要放在配置文件的最前面,扮演默认主机的角色。

DocumentRoot "/data/default" ServerName www.default.com

3.域名301跳转

Rewirte主要的功能就是实现URL的跳转,它的正则表达式是基于Perl语言。可基 于服务器级的(httpd.conf)和目录级的 (.htaccess)两种方式。如果要想用到rewrite模块,必须先安装或加载rewrite模块。方法有两种一种是编译apache的时候就直接 安装rewrite模块,别一种是编译apache时以DSO模式安装apache,然后再利用源码和apxs来安装rewrite模块

RewriteEngine on RewriteCond %{HTTP_HOST} ^www.nyan.com$ [OR]      RewriteCond %{HTTP_HOST} ^www.domain2.com$ RewriteRule ^(/.*)$ http://www.test.com/$1 [R=301,L]

 4.日志切割

at /usr/local/apache/conf/httpd.conf

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

LogFormat "%h %l %u %t \"%r\" %>s %b" common

ErrorLog "logs/dummy-host.example.com-error_log"

CustomLog "logs/dummy-host.example.com-access_log" common

==>

ErrorLog "logs/test.com-error_log"

CustomLog "| /usr/local/apache/bin/rotatelogs /usr/local/apache/logs/test.com-access_log_%Y_%m_%d 86400" combined

5.不记录指定文件

ErrorLog "logs/test.com-error_log"    SetEnvIf Request_URI ".*\.gif$" image-request    SetEnvIf Request_URI ".*\.jpg$" image-request    SetEnvIf Request_URI ".*\.png$" image-request    SetEnvIf Request_URI ".*\.bmp$" image-request    SetEnvIf Request_URI ".*\.swf$" image-request    SetEnvIf Request_URI ".*\.js$" image-request    SetEnvIf Request_URI ".*\.css$" image-request   CustomLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/test.com-access_%Y%m%d_log 86400" combined env=!image-request

6.配置静态缓存

默认缓存时间是10天,css缓存时间是14天

# mod_expires ExpiresActive on ExpiresDefault A864000 ExpiresBytype text/css “access plus 14 days ExpiresByType text/javascript “access plus 14 days ” ExpiresByType application/x-javascript “access plus 14 days ” ExpiresByType application/x-shockwave-flash “access plus 14 days ” ExpiresByType image/* “access plus 14 days ” ExpiresByType text/html “access plus 14 days ”
ExpiresDefault A864000

 7.配置防盗链

SetEnvIfNoCase Referer "^http://.*\.test\.com" local_ref

SetEnvIfNoCase Referer ".*\.nyan\.com" local_ref

<filesmatch "\.(txt|doc|png|jpeg|js|css|zip|gif|rar|mp3)">

  Order Allow,Deny

  Allow from env=local_ref

</filesmatch>

SetEnvIfNoCase Referer "^http://.*\.test\.com" local_refSetEnvIfNoCase Referer ".*\.nyan\.com" local_ref
Order Allow,Deny Allow from env=local_ref

8.访问控制

curl -x192.168.1.106:80 -I http://www.test.com/forum.php

curl -x192.168.178.128:80 -I http://www.test.com/forum.php

curl -x127.0.0.1:80 -I http://www.test.com/forum.php

AllowOverride None //禁止读取.htaccess配置文件的内容

AllowOverride None Options None Order Allow,Deny Allow from all Deny from 127.0.0.1 192.168.178.128

 9.禁止解析PHP

php_admin_flag engine off
Order Deny,Allow Deny from all ALlow from 127.0.0.1

10.禁止指定user_agent

RewriteEngine on RewriteCond %{HTTP_HOST} ^www.nyan.com$ RewriteRule ^(/.*)$ http://www.test.com/$1 [R=301,L] RewriteCond %{HTTP_USER_AGENT} ".*curl.*" [NC,OR] RewriteCond %{HTTP_USER_AGENT} ".*chrom*" [NC] RewriteRule .* - [F]

[NC,OR]不区分大小写

转载于:https://www.cnblogs.com/Nyan-Workflow-FC/p/5731508.html

你可能感兴趣的文章
tpframe免费开源框架又一重大更新
查看>>
一.go语言 struct json相互转换
查看>>
什么是架构设计
查看>>
程序员学习能力提升三要素
查看>>
PHP 微信错误状态返回码说明
查看>>
【4.1】Python中的序列分类
查看>>
ubuntu 移动文件
查看>>
Easy Mock
查看>>
看看 Delphi XE2 为 VCL 提供的 14 种样式
查看>>
Python内置函数(29)——help
查看>>
机器学习系列-tensorflow-01-急切执行API
查看>>
SqlServer 遍历修改字段长度
查看>>
Eclipse快捷键:同时显示两个一模一样的代码窗口
查看>>
《架构之美》阅读笔记05
查看>>
《大道至简》读后感——论沟通的重要性
查看>>
JDBC基础篇(MYSQL)——使用statement执行DQL语句(select)
查看>>
关于React中props与state的一知半解
查看>>
java中Hashtable和HashMap的区别(转)
查看>>
关闭数据库
查看>>
webStrom智能提示忽略首字母大小写问题
查看>>