hosts文件路径javascript
添加一个域名css
47.106.84.56 www.wxy.com www.test.comhtml
测试访问java
开启默认虚拟主机须要修改apache配置文件apache
vim /usr/local/apache2.4/conf/httpd.conf
vim
去掉Include conf/extra/httpd-vhosts.conf 注释#号windows
修改虚拟主机文件浏览器
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
缓存
修改内容:app
<VirtualHost *:80> DocumentRoot "/data/wwwroot/abc.com" ServerNameabc.com ServerAlias www.abc.com www.123.com ErrorLog "logs/abc.com-error_log" CustomLog "logs/abc.com-access_log" common </VirtualHost> <VirtualHost *:80> DocumentRoot "/data/wwwroot/111.com" ServerName 111.com ServerAlias www.example.com ErrorLog "logs/111.com-error_log" CustomLog "logs/111.com-access_log" common </VirtualHost>
建立对应的目录和文件
mkdir /data/wwwroot/
mkdir /data/wwwroot/abc.com
mkdir /data/wwwroot/111.com
touch /data/wwwroot/abc.com/index.html
echo "this is abc " > /data/wwwroot/abc.com/index.html
touch /data/wwwroot/111.com/index.html
echo "this is 111" > /data/wwwroot/111.com/index.html
测试
验证和从新加载配置文件
测试
curl -x 172.18.11.153:80 111.com
curl -x 172.18.11.153:80 abc.com
修改虚拟主机配置文件
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
针对111.com修改添加如下内容
<Directory /data/wwwroot/111.com> AllowOverride AuthConfig AuthName "111.com user auth" AuthType Basic AuthUserFile /data/.htpasswd require valid-user </Directory>
建立密码
/usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd test
-c参数建立 -m指定加密类型
测试
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
curl -x127.0.0.1:80 111.com
401状态码就是须要密码
curl命令-u参数能够输入帐号密码: curl -x 172.18.11.153:80 111.com -u test:123
test是用户名,123是密码
域名跳转相似于将网页从新指向另外一个网站,但区别是域名跳转会将域名自己从新指向网站,而不使用HTML或脚原本进行从新指向。当域名被设置为跳转至另外一网站,域名的地址将不会保留在浏览器的URL栏中,该栏显示的会是新页面的URL。若是您但愿保留该栏中的URL,则须要使用隐形跳转。
域名跳转文件配置
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
添加如下内容
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} !^111.com$ RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L] </IfModule>
和一个不存在的域名:333.com
开启rewrite模块是否开启
/usr/local/apache2.4/conf/httpd.conf
去掉注释#
测试
curl -x 172.18.11.153:80 3333.com
301:永久跳转,302:临时跳转,200:文件存在,404:文件不存在
日志路径
ll /usr/local/apache2.4/logs/
查看
修改日志格式
刚查看的日志信息包含:访问主机,用户,时间,访问的状态。咱们也能够自定义日志的格式
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
把以前的common,改成combined
再次查看日志内容
不少网站大多为静态网页,网页内部的图片、css文件等一样有其网址连接,若是不设置,这些无效的信息也将被存入访问日志中,会致使访问日志文件大小快速增长,占用大量存储空间。咱们能够经过设置不记录某些文件来减小无效信息,节省内存资源。
上传一张1.png到111.com目录
访问并查看日志
curl -x 172.18.11.153:80 111.com/1.png -I
查看有.png结尾的日志
修改虚拟主机文件
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
添加如下内容
SetEnvIf Request_URI ".*\.gif$" img SetEnvIf Request_URI ".*\.jpg$" img SetEnvIf Request_URI ".*\.png$" img SetEnvIf Request_URI ".*\.bmp$" img SetEnvIf Request_URI ".*\.swf$" img SetEnvIf Request_URI ".*\.js$" img SetEnvIf Request_URI ".*\.css$" img CustomLog "logs/111.com-access_log" combined env=!img
查看结果
修改完成后,从新加载,再次访问1.png,查看日志已经再也不记录了
若是日志太大,总有一天会把磁盘占满,因此有必要天天进行日志切割,并删除老的日志
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
修改一下内容
CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/111.com-access_%Y%m%d.log 86400" combined env=!img
/usr/local/apache2.4/bin/rotatelogs:apache自带的分割日志的工具
-l:按当前系统时间为基准进行切割(我国为CST),不然默认UTC
%Y%m%d表示年月日,这样会天天记录一个带日期的日志文件
86400(s)表示天天都进行切割,一天24小时等于86400秒
浏览器访问网站的图片时会把静态的文件缓存在本地电脑里,这样下次再访问时就不用去远程下载了。 可是缓存多久呢?若是网站图片更新了呢,那么应该访问新图片才是。因此这就涉及到静态文件缓存时长的问题了,也就是“缓存过时时间”。
修改httpd.conf文件
vim /usr/local/apache2.4/conf/httpd.conf
去掉注释#
LoadModule expires_module modules/mod_expires.so
虚拟主机文件配置
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
增长一下内容
<IfModule mod_expires.c> ExpiresActive on //打开该功能的开关 ExpiresByType image/gif "access plus 1 days" ExpiresByType image/jpeg "access plus 24 hours" ExpiresByType image/png "access plus 24 hours" ExpiresByType text/css "now plus 2 hour" ExpiresByType application/x-javascript "now plus 2 hours" ExpiresByType application/javascript "now plus 2 hours" ExpiresByType application/x-shockwave-flash "now plus 2 hours" ExpiresDefault "now plus 0 min" </IfModule>
测试
浏览器访问图片,F12查看图片的状态码为200
刷新如下查看变成了304