通过apache,和nginx模块去除html中的空格和tab
最近一个项目中,合作方要求去除html中的空格,不想改代码,所以百度了一下通过apache,和nginx模块去除html中的空格和tab的方案,下面记录下来:
一、nginx
nginx可以通过mod_strip模块来实现该功能
1. mod_strip安装:
# cd /usr/local/src/
# wget http://wiki.nginx.org/images/6/63/Mod_strip-0.1.tar.gz
# tar -xzvf Mod_strip-0.1.tar.gz
# cd nginx-1.4.2 //提前解压好的nginx
# ./configure --prefix=/usr/local/nginx-1.4.2 --add-module=../mod_strip
# make
# make install
2. mod_strip简单用法:
location / {
strip on;
}
strip指令:
语法: strip on|off
默认: off
可用配置段: main, http, server, location
所有响应给用户的MIME类型为text/html将会使用该模块
二、apache
apche可以通过mod_pagespeed http://www.modpagespeed.com/ 来实现,我的服务器是ubuntu
1、下载mode_pagespeed
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-beta_current_i386.deb
2、安装
dpkg -i mod-pagespeed*
执行完毕后会提示重启
3、修改配置文件
/etc/apache2/mods-available/pagespeed.conf,下面我着重介绍一下ModPagespeedEnableFilters这个是启用的过滤器,collapse_whitespace,remove_comments分别为替换空白字符和删除注释,其它参数请见mod_pagespeed官网
- <IfModule pagespeed_module>
- # Turn on mod_pagespeed. To completely disable mod_pagespeed, you
- # can set this to "off".
- ModPagespeed on
- # We want VHosts to inherit global configuration.
- # If this is not included, they'll be independent (except for inherently
- # global options), at least for backwards compatibility.
- ModPagespeedInheritVHostConfig on
- # Direct Apache to send all HTML output to the mod_pagespeed
- # output handler.
- AddOutputFilterByType MOD_PAGESPEED_OUTPUT_FILTER text/html
- AddOutputFilterByType MOD_PAGESPEED_OUTPUT_FILTER application/javascript
- AddOutputFilterByType MOD_PAGESPEED_OUTPUT_FILTER text/css
- # If you want mod_pagespeed process XHTML as well, please uncomment this
- # line.
- #AddOutputFilterByType MOD_PAGESPEED_OUTPUT_FILTER application/xhtml+xml
- # The ModPagespeedFileCachePath directory must exist and be writable
- # by the apache user (as specified by the User directive).
- ModPagespeedFileCachePath "/var/cache/mod_pagespeed/"
- # LogDir is needed to store various logs, including the statistics log
- # required for the console.
- ModPagespeedLogDir "/var/log/pagespeed"
- # The locations of SSL Certificates is distribution-dependent.
- ModPagespeedSslCertDirectory "/etc/ssl/certs"
- # If you want, you can use one or more memcached servers as the store for
- # the mod_pagespeed cache.
- # ModPagespeedMemcachedServers localhost:11211
- # A portion of the cache can be kept in memory only, to reduce load on disk
- # (or memcached) from many small files.
- # ModPagespeedCreateSharedMemoryMetadataCache "/var/cache/mod_pagespeed/" 51200
- # Override the mod_pagespeed 'rewrite level'. The default level
- # "CoreFilters" uses a set of rewrite filters that are generally
- # safe for most web pages. Most sites should not need to change
- # this value and can instead fine-tune the configuration using the
- # ModPagespeedDisableFilters and ModPagespeedEnableFilters
- # directives, below. Valid values for ModPagespeedRewriteLevel are
- # PassThrough, CoreFilters and TestingCoreFilters.
- #
- # ModPagespeedRewriteLevel PassThrough
- # Explicitly disables specific filters. This is useful in
- # conjuction with ModPagespeedRewriteLevel. For instance, if one
- # of the filters in the CoreFilters needs to be disabled for a
- # site, that filter can be added to
- # ModPagespeedDisableFilters. This directive contains a
- # comma-separated list of filter names, and can be repeated.
- #
- #ModPagespeedDisableFilters remove_comments,collapse_whitespace
- # Explicitly enables specific filters. This is useful in
- # conjuction with ModPagespeedRewriteLevel. For instance, filters
- # not included in the CoreFilters may be enabled using this
- # directive. This directive contains a comma-separated list of
- # filter names, and can be repeated.
- #
- #ModPagespeedEnableFilters rewrite_javascript,rewrite_css
- ModPagespeedEnableFilters collapse_whitespace,elide_attributes,remove_comments
- # Explicitly forbids the enabling of specific filters using either query
- # parameters or request headers. This is useful, for example, when we do
- # not want the filter to run for performance or security reasons. This
- # directive contains a comma-separated list of filter names, and can be
- # repeated.
- #
- # ModPagespeedForbidFilters rewrite_images
- # How long mod_pagespeed will wait to return an optimized resource
- # (per flush window) on first request before giving up and returning the
- # original (unoptimized) resource. After this deadline is exceeded the
- # original resource is returned and the optimization is pushed to the
- # background to be completed for future requests. Increasing this value will
- # increase page latency, but might reduce load time (for instance on a
- # bandwidth-constrained link where it's worth waiting for image
- # compression to complete). If the value is less than or equal to zero
- # mod_pagespeed will wait indefinitely for the rewrite to complete before
- # returning.
- #
- # ModPagespeedRewriteDeadlinePerFlushMs 10
- # ModPagespeedDomain
- # authorizes rewriting of JS, CSS, and Image files found in this
- # domain. By default only resources with the same origin as the
- # HTML file are rewritten. For example:
- #
- # ModPagespeedDomain cdn.myhost.com
- #
- # This will allow resources found on http://cdn.myhost.com to be
- # rewritten in addition to those in the same domain as the HTML.
- #
- # Other domain-related directives (like ModPagespeedMapRewriteDomain
- # and ModPagespeedMapOriginDomain) can also authorize domains.
- #
- # Wildcards (* and ?) are allowed in the domain specification. Be
- # careful when using them as if you rewrite domains that do not
- # send you traffic, then the site receiving the traffic will not
- # know how to serve the rewritten content.
- # Other defaults (cache sizes and thresholds):
- #
- # ModPagespeedFileCacheSizeKb 102400
- # ModPagespeedFileCacheCleanIntervalMs 3600000
- # ModPagespeedLRUCacheKbPerProcess 1024
- # ModPagespeedLRUCacheByteLimit 16384
- # ModPagespeedCssFlattenMaxBytes 2048
- # ModPagespeedCssInlineMaxBytes 2048
- # ModPagespeedCssImageInlineMaxBytes 0
- # ModPagespeedImageInlineMaxBytes 3072
- # ModPagespeedJsInlineMaxBytes 2048
- # ModPagespeedCssOutlineMinBytes 3000
- # ModPagespeedJsOutlineMinBytes 3000
- # ModPagespeedMaxCombinedCssBytes -1
- # ModPagespeedMaxCombinedJsBytes 92160
- # Limit the number of inodes in the file cache. Set to 0 for no limit.
- # The default value if this paramater is not specified is 0 (no limit).
- ModPagespeedFileCacheInodeLimit 500000
- # Bound the number of images that can be rewritten at any one time; this
- # avoids overloading the CPU. Set this to 0 to remove the bound.
- #
- # ModPagespeedImageMaxRewritesAtOnce 8
- # You can also customize the number of threads per Apache process
- # mod_pagespeed will use to do resource optimization. Plain
- # "rewrite threads" are used to do short, latency-sensitive work,
- # while "expensive rewrite threads" are used for actual optimization
- # work that's more computationally expensive. If you live these unset,
- # or use values <= 0 the defaults will be used, which is 1 for both
- # values when using non-threaded MPMs (e.g. prefork) and 4 for both
- # on threaded MPMs (e.g. worker and event). These settings can only
- # be changed globally, and not per virtual host.
- #
- # ModPagespeedNumRewriteThreads 4
- # ModPagespeedNumExpensiveRewriteThreads 4
- # Randomly drop rewrites (*) to increase the chance of optimizing
- # frequently fetched resources and decrease the chance of optimizing
- # infrequently fetched resources. This can reduce CPU load. The default
- # value of this parameter is 0 (no drops). 90 means that a resourced
- # fetched once has a 10% probability of being optimized while a resource
- # that is fetched 50 times has a 99.65% probability of being optimized.
- #
- # (*) Currently only CSS files and images are randomly dropped. Images
- # within CSS files are not randomly dropped.
- #
- # ModPagespeedRewriteRandomDropPercentage 90
- # Many filters modify the URLs of resources in HTML files. This is typically
- # harmless but pages whose Javascript expects to read or modify the original
- # URLs may break. The following parameters prevent filters from modifying
- # URLs of their respective types.
- #
- # ModPagespeedJsPreserveURLs on
- # ModPagespeedImagePreserveURLs on
- # ModPagespeedCssPreserveURLs on
- # Settings for image optimization:
- #
- # Lossy image recompression quality (0 to 100, -1 just strips metadata):
- # ModPagespeedImageRecompressionQuality 85
- #
- # Jpeg recompression quality (0 to 100, -1 uses ImageRecompressionQuality):
- # ModPagespeedJpegRecompressionQuality -1
- # ModPagespeedJpegRecompressionQualityForSmallScreens 70
- #
- # WebP recompression quality (0 to 100, -1 uses ImageRecompressionQuality):
- # ModPagespeedImageWebpRecompressionQuality 80
- # ModPagespeedImageWebpRecompressionQualityForSmallScreens 70
- #
- # Timeout for conversions to WebP format, in
- # milliseconds. Negative values mean no timeout is applied. The
- # default value is -1:
- # ModPagespeedImageWebpTimeoutMs 5000
- #
- # Percent of original image size below which optimized images are retained:
- # ModPagespeedImageLimitOptimizedPercent 100
- #
- # Percent of original image area below which image resizing will be
- # attempted:
- # ModPagespeedImageLimitResizeAreaPercent 100
- # Settings for inline preview images
- #
- # Setting this to n restricts preview images to the first n images found on
- # the page. The default of -1 means preview images can appear anywhere on
- # the page (if those images appear above the fold).
- # ModPagespeedMaxInlinedPreviewImagesIndex -1
- # Sets the minimum size in bytes of any image for which a low quality image
- # is generated.
- # ModPagespeedMinImageSizeLowResolutionBytes 3072
- # The maximum URL size is generally limited to about 2k characters
- # due to IE: See http://support.microsoft.com/kb/208427/EN-US.
- # Apache servers by default impose a further limitation of about
- # 250 characters per URL segment (text between slashes).
- # mod_pagespeed circumvents this limitation, but if you employ
- # proxy servers in your path you may need to re-impose it by
- # overriding the setting here. The default setting is 1024
- # characters.
- #
- # ModPagespeedMaxSegmentLength 250
- # Uncomment this if you want to prevent mod_pagespeed from combining files
- # (e.g. CSS files) across paths
- #
- # ModPagespeedCombineAcrossPaths off
- # Renaming JavaScript URLs can sometimes break them. With this
- # option enabled, mod_pagespeed uses a simple heuristic to decide
- # not to rename JavaScript that it thinks is introspective.
- #
- # You can uncomment this to let mod_pagespeed rename all JS files.
- #
- # ModPagespeedAvoidRenamingIntrospectiveJavascript off
- # Certain common JavaScript libraries are available from Google, which acts
- # as a CDN and allows you to benefit from browser caching if a new visitor
- # to your site previously visited another site that makes use of the same
- # libraries as you do. Enable the following filter to turn on this feature.
- #
- # ModPagespeedEnableFilters canonicalize_javascript_libraries
- # The following line configures a library that is recognized by
- # canonicalize_javascript_libraries. This will have no effect unless you
- # enable this filter (generally by uncommenting the last line in the
- # previous stanza). The format is:
- # ModPagespeedLibrary bytes md5 canonical_url
- # Where bytes and md5 are with respect to the *minified* JS; use
- # js_minify --print_size_and_hash to obtain this data.
- # Note that we can register multiple hashes for the same canonical url;
- # we do this if there are versions available that have already been minified
- # with more sophisticated tools.
- #
- # Additional library configuration can be found in
- # pagespeed_libraries.conf included in the distribution. You should add
- # new entries here, though, so that file can be automatically upgraded.
- # ModPagespeedLibrary 43 1o978_K0_LNE5_ystNklf http://www.modpagespeed.com/rewrite_javascript.js
- # Explicitly tell mod_pagespeed to load some resources from disk.
- # This will speed up load time and update frequency.
- #
- # This should only be used for static resources which do not need
- # specific headers set or other processing by Apache.
- #
- # Both URL and filesystem path should specify directories and
- # filesystem path must be absolute (for now).
- #
- # ModPagespeedLoadFromFile "http://example.com/static/" "/var/www/static/"
- # Enables server-side instrumentation and statistics. If this rewriter is
- # enabled, then each rewritten HTML page will have instrumentation javacript
- # added that sends latency beacons to /mod_pagespeed_beacon. These
- # statistics can be accessed at /mod_pagespeed_statistics. You must also
- # enable the mod_pagespeed_statistics and mod_pagespeed_beacon handlers
- # below.
- #
- # ModPagespeedEnableFilters add_instrumentation
- # The add_instrumentation filter sends a beacon after the page onload
- # handler is called. The user might navigate to a new URL before this. If
- # you enable the following directive, the beacon is sent as part of an
- # onbeforeunload handler, for pages where navigation happens before the
- # onload event.
- #
- # ModPagespeedReportUnloadTime on
- # Uncomment the following line so that ModPagespeed will not cache or
- # rewrite resources with Vary: in the header, e.g. Vary: User-Agent.
- # Note that ModPagespeed always respects Vary: headers on html content.
- # ModPagespeedRespectVary on
- # Uncomment the following line if you want to disable statistics entirely.
- #
- # ModPagespeedStatistics off
- # This page lets you view statistics about the mod_pagespeed module.
- <Location /mod_pagespeed_statistics>
- Order allow,deny
- # You may insert other "Allow from" lines to add hosts you want to
- # allow to look at generated statistics. Another possibility is
- # to comment out the "Order" and "Allow" options from the config
- # file, to allow any client that can reach your server to examine
- # statistics. This might be appropriate in an experimental setup or
- # if the Apache server is protected by a reverse proxy that will
- # filter URLs in some fashion.
- Allow from localhost
- Allow from 127.0.0.1
- SetHandler mod_pagespeed_statistics
- </Location>
- # Enable logging of mod_pagespeed statistics, needed for the console.
- ModPagespeedStatisticsLogging on
- <Location /pagespeed_console>
- Order allow,deny
- Allow from localhost
- Allow from 127.0.0.1
- SetHandler pagespeed_console
- </Location>
- # Page /mod_pagespeed_message lets you view the latest messages from
- # mod_pagespeed, regardless of log-level in your httpd.conf
- # ModPagespeedMessageBufferSize is the maximum number of bytes you would
- # like to dump to your /mod_pagespeed_message page at one time,
- # its default value is 100k bytes.
- # Set it to 0 if you want to disable this feature.
- ModPagespeedMessageBufferSize 100000
- <Location /mod_pagespeed_message>
- Order allow,deny
- Allow from localhost
- Allow from 127.0.0.1
- SetHandler mod_pagespeed_message
- </Location>
- </IfModule>
通过apache,和nginx模块去除html中的空格和tab的更多相关文章
- Python去除文件中的空格、Tab键和回车
def stripFile(oldFile, newFile): '''remove the space or Tab or enter in a file, and output a new fil ...
- php如何清除html格式并去除文字中的空格然后截取文字
PHP如何清除html格式并去除文字中的空格然后截取文字,详细分享一下处理方法(顺便对PHP清除HTML字符串的函数做了一个小结): htmlspecialchars 将特殊字元转成 HTML格式语法 ...
- Linux shell去除字符串中所有空格
Linux shell去除字符串中所有空格 echo $VAR | sed 's/ //g'
- IOS NSCharacterSet 去除NSString中的空格
去除 username中的空格,table newline,nextline 代码如下: NSCharacterSet *whitespace = [NSCharacterSet whitespac ...
- NSCharacterSet 去除NSString中的空格
转自:http://blog.sina.com.cn/s/blog_5421851501014xif.html 去除 username中的空格,table newline,nextline 代码如下: ...
- java 去html标签,去除字符串中的空格,回车,换行符,制表符
public static String getonerow(String allLine,String myfind) { Pattern ...
- Python编写“去除字符串中所有空格”
#利用迭代操作,实现一个trim()函数,去除字符串中所有空格 def trim(str): newstr = '' for ch in str: #遍历每一个字符串 if ch!=' ': news ...
- JS 去除字符串中的空格
1. 去掉字符串前后所有空格: 代码如下: function Trim(str) { return str.replace(/(^\s*)|(\s*$)/g, ""); } 说明: ...
- javascript去除字符串中的空格
使用JavaScript去除字符串的空格,可以有两种方法,一种是使用replace()方法将空格(空白符)替换为空串,一种就是使用trim()方法去除字符串两端的空白字符. replace()方法 r ...
随机推荐
- POJ 1815 Friendship(字典序最小的最小割)
Friendship Time Limit: 2000MS Memory Limit: 20000K Total Submissions: 10744 Accepted: 2984 Descr ...
- 自制wifi信号放大器
自制wifi信号放大器 只要家里安装了一台无线路由器,在家里的任何地方都可以使用带上网功能的电子产品上网,但是由于距离的问题,WiFi信号有强弱之分,离无线路由器稍微远点,信号就有所降低,上网速度受影 ...
- 设置pycharm的python版本
http://blog.csdn.net/github_35160620/article/details/52486986
- vue使用stylus
在package.json中添加 stylus-loader "css-loader": "^0.28.0", "stylus-loader&quo ...
- layer相关
关闭窗口 var index = parent.layer.getFrameIndex(window.name);parent.layer.close(index);
- 第一个nodejs爬虫:爬取豆瓣电影图片
第一个nodejs爬虫:爬取豆瓣电影图片存入本地: 首先在命令行下 npm install request cheerio express -save; 代码: var http = require( ...
- JS 中如何输出空格
在写JS代码的时候,大家可以会发现这样现象: document.write(" 1 2 3 "); 结果: 无论在输出的内容中什么位置有多少个空格,显示的结果好像只有一个空格. 这 ...
- cmp 指令
(lldb) disassemble -n comp2 untitled6`comp2: 0x10d065f40 <+>: pushq %rbp 0x10d065f41 <+> ...
- 【HDOJ5527】Too Rich(贪心,构造)
题意:给定10种面额的货币和它们的数量上限,问构造出恰好总额为P的最小张数,无解输出-1 T=2e4,p<=1e9,c[i]<=1e5 思路:From https://blog.csdn. ...
- vue-cli脚手架每行注释
.babelrc文件 { // 此项指明,转码的规则 "presets": [ // env项是借助插件babel-preset-env,下面这个配置说的是babel对es6,es ...