Author |
|
XenonKilla
Joined: 06 Apr 2012 Posts: 8
|
Posted: Sun 24 Jan '16 1:52 Post subject: Apache mod_deflate specific file extensions only |
|
|
I'm trying to enable mod_deflate on my server but I want to enable it for specific file extensions only. I keep seeing all kinds of ways to enable deflate using MIME types etc, but I'm looking for a way to do it by file extension. i.e. .js, .css, .html, .php
I came across this somewhere but I'm unable to verify if it's correct or not.
<IfModule mod_deflate.c>
<filesMatch "\.(js|css|html|php)$">
SetOutputFilter DEFLATE
</filesMatch>
</IfModule>
Can anyone verify or perhaps give me a better solution?
I'm running Apache 2.4.18 on Windows Server 2012 R2 |
|
Back to top |
|
James Blond Moderator
Joined: 19 Jan 2006 Posts: 7371 Location: Germany, Next to Hamburg
|
Posted: Mon 25 Jan '16 16:35 Post subject: |
|
|
Is the deflate module loaded?
Try on the command line
|
|
Back to top |
|
XenonKilla
Joined: 06 Apr 2012 Posts: 8
|
Posted: Tue 26 Jan '16 7:36 Post subject: |
|
|
I think you misunderstood my question, I know how to enable the deflate module, what I'm fuzzy on is whether or not this is the CORRECT way to enable deflate for specific file extensions. The module is enabled and so far the syntax I posted appears to be working correctly, I just want to make sure that this is the most correct and efficient way to go about doing this. |
|
Back to top |
|
jraute
Joined: 13 Sep 2013 Posts: 188 Location: Rheinland, Germany
|
Posted: Tue 26 Jan '16 10:00 Post subject: |
|
|
Looks good.
The only alternative would be to use Code: |
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain text/html text/xml
AddOutputFilterByType DEFLATE text/css text/javascript
AddOutputFilterByType DEFLATE application/xml application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript application/x-javascript
</IfModule>
|
|
|
Back to top |
|
mmarino
Joined: 08 Jun 2018 Posts: 4 Location: USA, Cleveland
|
Posted: Fri 08 Jun '18 19:22 Post subject: deflate non-standard file extensions |
|
|
I am using Apache 2.4.2 on Windows Server 2012 R2 and I am new to Apache.
I trying to configure Apache to use mod_deflate to compress specific, non-standard file extensions (mnt & rep). In your forum I found an example syntax as follows:
<IfModule mod_deflate.c>
<filesMatch "\.(js|css|html|php)$">
SetOutputFilter DEFLATE
</filesMatch>
</IfModule>
I replaced (js|css|html|php) with (mnt|rep), but I'm not seeing any difference in how long my test files are taking to download. I don't see anything in the logs that shows whether or not compression is actually active during the download. Is my syntax correct and are there logs, other than the error & access logs to review? |
|
Back to top |
|
James Blond Moderator
Joined: 19 Jan 2006 Posts: 7371 Location: Germany, Next to Hamburg
|
Posted: Mon 11 Jun '18 9:41 Post subject: |
|
|
What are those files? Text based? binary? Does apache know the content type? |
|
Back to top |
|
mmarino
Joined: 08 Jun 2018 Posts: 4 Location: USA, Cleveland
|
Posted: Mon 11 Jun '18 13:49 Post subject: |
|
|
They are text based and included a combination of pipe delimited data and some sql commands, but all text based.
When you say does apache know the content type, are you saying I should possibly use these commands instead?
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/mnt text/rep
</IfModule> |
|
Back to top |
|
James Blond Moderator
Joined: 19 Jan 2006 Posts: 7371 Location: Germany, Next to Hamburg
|
Posted: Wed 13 Jun '18 11:32 Post subject: |
|
|
Maybe you also have to add your files to conf/mime.types so apache knows thats these are text based files. |
|
Back to top |
|
mmarino
Joined: 08 Jun 2018 Posts: 4 Location: USA, Cleveland
|
Posted: Wed 13 Jun '18 15:35 Post subject: |
|
|
I am not having an issue downloading the files, just compressing the files. Do you think a mime.types change would still be needed? I don't have Internet Information Services (IIS) Manager on my Windows server, which is what is recommended to add mime.types. Can the mime.types file be edited manually, if I stop and start the Apache service?
I did not get confirmation on whether the changes I made to the httpd.conf seem correct or if there are additional changes I should try.
Does the mod_deflate compression work for any Apache downloading or is it for website downloading only? |
|
Back to top |
|
James Blond Moderator
Joined: 19 Jan 2006 Posts: 7371 Location: Germany, Next to Hamburg
|
Posted: Wed 13 Jun '18 16:07 Post subject: |
|
|
mmarino wrote: | Can the mime.types file be edited manually, if I stop and start the Apache service?
|
You can edit the file while apache is running and then restart apache. No need to stop it.
mmarino wrote: |
Does the mod_deflate compression work for any Apache downloading or is it for website downloading only? |
Apache can compress any file that is send to the server. For the server there is no difference if you view a file in a browser or "download it". For the server every request is sending data to the client.
mod_deflate can compress the data stream of most files before sending it to the client. mod_deflate uses zlib to do so. Often binary files can compressed aby further. That is why I asked if your files are text based |
|
Back to top |
|
mmarino
Joined: 08 Jun 2018 Posts: 4 Location: USA, Cleveland
|
Posted: Wed 13 Jun '18 16:26 Post subject: |
|
|
Tried to edit the mime.types file, but it says it is being used by another program, whether I stop or don't stop Apache. If the files are downloading, but just not compressing, do you still think they might need added to the mime.types? |
|
Back to top |
|