apache壓縮
㈠ 如何開啟gzip壓縮方法大全
IIS6.0啟用Gzip壓縮的方法:
1、新建Web服務擴展(如下圖)
dll路徑:「c:windowssystem32inetsrvgzip.dll」,然後啟用。
2、網站服務中開啟HTTP壓縮支持(如下圖)
臨時目錄需要給IIS用戶讀寫許可權。
3、修改IIS配置文件MetaBase.xml
文件路徑:「c:windowssystem32inetsrv」(請先備份至他處),打開後搜索「HcDynamicCompressionLevel」,並修改(確定已備份)「Compression/deflate」和「Compression/gzip」兩個片段的內容。下面的圖n和圖b所修改的內容用意是將js、css和php加入到壓縮的范疇,數字9代表壓縮等級。
(圖n)
(圖b)
4、重啟IIS服務使之生效
——————————————————分分割割—————————————————
Apache啟用Gzip壓縮的方法:
1、開啟模塊並添加配置項目
a、vi /etc/httpd/conf/httpd.conf
b、查找LoadMole (/LoadMole),加入「LoadMole deflate_mole moles/mod_deflate.so」這行
c、添加配置項目(下段內容)
復制代碼代碼如下:
<IfMole mod_deflate.c>
# 壓縮等級 9
DeflateCompressionLevel 9
# 壓縮類型 html、xml、php、css、js
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-javascript application/x-httpd-php
AddOutputFilter DEFLATE js css
</IfMole>
2、重啟apache使之生效
service httpd start
——————————————————分分割割—————————————————
檢測是否支持Gzip
END
注意事項
1. 在編輯MetaBase.xml前需要停止IIS,可以使用 net stop iisadmin
2. 修改完成後開啟iisadmin服務,並執行iisreset命令
關於SEO的測試
壓縮是否對SEO有影響,經測試,開啟後仍然可以被很好的收錄。
㈡ 如何在 apache 中開啟 gzip 壓縮服務
伺服器設置 gzip 壓縮是 web 開發里很普遍的做法。假設你要請求一個 100k 的文件,網路傳輸速度為 50k/s,需要 2s 才能得到數據,但是如果在伺服器設置了 gzip 壓縮,將服務端的文件壓縮到了 50k(實際上的壓縮率往往小於 50%),這時候只需 1s 就能得到數據,然後在客戶端解壓即可。
可以對比下同一個文件在開啟 gzip 前後的大小。
gzip 壓縮前:
那麼如何在服務端開啟 gzip 服務呢?這里以 apache 為例簡單介紹下。
打開 apache 的 "httpd.conf" 文件,比如我的是在 "C:wampinapacheApache2.2.21conf" 目錄下。找到以下這一行,將它前面的注釋(#)去掉:
很多參考文件都提到同時要對 LoadMole headers_mole moles/mod_headers.so 去掉注釋,說 "如果不開啟這個,那網站就不能正常顯示了" ,不過我在測試過程中沒有去掉也沒有問題。
接著再添上以下代碼:
這樣就能對所有文件進行 gzip 壓縮了。壓縮等級是個 1-9 之間的整數,取值范圍在 1(最低) 到 9(最高)之間,不建議設置太高,雖然有很高的壓縮率,但是佔用更多的CPU資源。(本地測試了下 1 和 9 壓縮率差不了多少...)
實際開發中我們並不需要對所有文件進行壓縮,比如我們無需對圖片文件進行 gzip 壓縮,因為圖片文件(一般為 jpg、png等格式)本身已經壓縮過了,再進行 gzip 壓縮可能會適得其反(詳見 圖片要啟用gzip壓縮嗎?絕對不要!,背景圖片千萬不要gzip壓縮,尤其是PNG),類似的還有 PDF 以及音樂文件。所以我們可以設置過濾指定文件或者對指定文件進行壓縮。
比如我們要對圖片等特殊文件不進行 gzip 壓縮處理:
或者指定文件格式進行壓縮:
修改好後,保存 httpd.conf 文件,記得重啟 apache,再刷新瀏覽器看請求,應該已經生效了!
㈢ 想在apache中配置文件中開啟圖片壓縮該如何設置
在網上很多網站會限制上傳圖片大小,10KB,20KB,還有普通話證書報名,教師資格證報名等等,都會限制圖片大小。但是我們隨便一個圖就幾M,如何壓縮圖片大小呢,有些人用這種方法:用PS打開圖片,降低分辨腔鎮沖率,減少長寬
圖片的體積過大也比較占內存,而且在上傳到空間或者微信朋友圈的時候都會有限制。所以這時候就需要將這些照片進行壓縮伍殲,將體積減小。今天給大家介紹一款專門壓縮照片體積的軟體。
1:將圖片壓縮軟體安裝到自己的電腦中,打開軟體就可以找到圖片壓縮,點擊圖片壓縮進入到壓縮的頁面。
㈣ java用apache的ZipEntry壓縮文件名為中文的word文件時,文件名亂碼
apache自帶的zip方法有缺陷,沒有做中文的判斷的,這個是它的一個已知bug。
解決辦法:用jdk的rt.jar裡面的方法實現就可以了。
可以參考下以下工具類:
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.Closeable;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
/**
*
* @author gdb
*/
public class ZipUtilAll {
public static final int DEFAULT_BUFSIZE = 1024 * 16;
/**
* 解壓Zip文件
*
* @param srcZipFile
* @param destDir
* @throws IOException
*/
public static void unZip(File srcZipFile, String destDir) throws IOException
{
ZipFile zipFile = new ZipFile(srcZipFile);
unZip(zipFile, destDir);
}
/**
* 解壓Zip文件
*
* @param srcZipFile
* @param destDir
* @throws IOException
*/
public static void unZip(String srcZipFile, String destDir) throws IOException
{
ZipFile zipFile = new ZipFile(srcZipFile);
unZip(zipFile, destDir);
}
/**
* 解壓Zip文件
*
* @param zipFile
* @param destDir
* @throws IOException
*/
public static void unZip(ZipFile zipFile, String destDir) throws IOException
{
Enumeration<? extends ZipEntry> entryEnum = zipFile.entries();
ZipEntry entry = null;
while (entryEnum.hasMoreElements()) {
entry = entryEnum.nextElement();
File destFile = new File(destDir + entry.getName());
if (entry.isDirectory()) {
destFile.mkdirs();
}
else {
destFile.getParentFile().mkdirs();
InputStream eis = zipFile.getInputStream(entry);
System.out.println(eis.read());
write(eis, destFile);
}
}
}
/**
* 將輸入流中的數據寫到指定文件
*
* @param inputStream
* @param destFile
*/
public static void write(InputStream inputStream, File destFile) throws IOException
{
BufferedInputStream bufIs = null;
BufferedOutputStream bufOs = null;
try {
bufIs = new BufferedInputStream(inputStream);
bufOs = new BufferedOutputStream(new FileOutputStream(destFile));
byte[] buf = new byte[DEFAULT_BUFSIZE];
int len = 0;
while ((len = bufIs.read(buf, 0, buf.length)) > 0) {
bufOs.write(buf, 0, len);
}
} catch (IOException ex) {
throw ex;
} finally {
close(bufOs, bufIs);
}
}
/**
* 安全關閉多個流
*
* @param streams
*/
public static void close(Closeable... streams)
{
try {
for (Closeable s : streams) {
if (s != null)
s.close();
}
} catch (IOException ioe) {
ioe.printStackTrace(System.err);
}
}
/**
* @param args
* @throws java.lang.Exception
*/
public static void main(String[] args) throws Exception
{
// unZip(new File(ZipDemo.class.getResource("D:/123/HKRT-B2B.zip").toURI()), "D:/123/");
unZip("D:/123/123.zip", "D:/123/");
// new File();
}
}