I just went to a box for myself, and just realized that my ram is closing in on it's limit.
We have 1gb of ram, yet we have around 50MB left.
We run 2 forums, with around 200 concurrent to 2000 on peaks. ( Currently it's 200 concurrent. )
Just hoping somebody could take a look at my httpd.conf and my my.cnf to see if I should tweak anything.
Ran top shift+m, and find that alot of apache connections is using 5mb per process:
Code: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3173 apache 15 0 73672 51m 3924 S 0.0 5.1 0:56.63 httpd 4790 apache 15 0 73676 51m 3912 S 0.0 5.1 0:13.36 httpd 4980 apache 15 0 73672 51m 3908 S 0.0 5.1 0:08.21 httpd 3172 apache 15 0 69844 48m 3940 S 0.0 4.8 0:45.93 httpd 5096 apache 15 0 69872 48m 3896 S 0.0 4.8 0:06.21 httpd 4394 apache 15 0 68544 46m 3912 S 8.2 4.6 0:20.24 httpd 4256 apache 15 0 68540 46m 3912 S 0.0 4.6 0:30.12 httpd 3729 mysql 15 0 130m 35m 4968 S 2.0 3.5 147:49.81 mysqld 4003 psaadm 15 0 48212 34m 23m S 0.0 3.5 0:27.61 httpsd 1489 apache 15 0 53056 31m 3928 S 0.0 3.2 1:10.80 httpd 1538 apache 15 0 52692 31m 3928 S 0.0 3.1 1:15.86 httpd 1452 apache 15 0 52636 31m 3932 S 0.0 3.1 1:24.45 httpd 2098 apache 15 0 52576 31m 3976 S 0.0 3.1 1:10.90 httpd 1450 apache 15 0 52556 31m 3940 S 0.0 3.1 1:24.80 httpd 1457 apache 15 0 52484 31m 3964 S 0.0 3.1 1:22.13 httpd 1718 apache 16 0 52444 31m 3964 R 30.7 3.1 1:27.99 httpd
httpd.cnf ( Please tell me if I have missed anything out. )
Code: # # Timeout: The number of seconds before receives and sends time out. # Timeout 60
# # KeepAlive: Whether or not to allow persistent connections (more than # one request per connection). Set to "Off" to deactivate. # KeepAlive Off
# # MaxKeepAliveRequests: The maximum number of requests to allow # during a persistent connection. Set to 0 to allow an unlimited amount. # We recommend you leave this number high, for maximum performance. # MaxKeepAliveRequests 100
# # KeepAliveTimeout: Number of seconds to wait for the next request from the # same client on the same connection. # KeepAliveTimeout 10
# prefork MPM # StartServers: number of server processes to start # MinSpareServers: minimum number of server processes which are kept spare # MaxSpareServers: maximum number of server processes which are kept spare # ServerLimit: maximum value for MaxClients for the lifetime of the server # MaxClients: maximum number of server processes allowed to start # MaxRequestsPerChild: maximum number of requests a server process serves <IfModule prefork.c> StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 256 MaxClients 256 MaxRequestsPerChild 2000 </IfModule>
# worker MPM # StartServers: initial number of server processes to start # MaxClients: maximum number of simultaneous client connections # MinSpareThreads: minimum number of worker threads which are kept spare # MaxSpareThreads: maximum number of worker threads which are kept spare # ThreadsPerChild: constant number of worker threads in each server process # MaxRequestsPerChild: maximum number of requests a server process serves <IfModule worker.c> StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 </IfModule>
Code: [mysqld] set-variable=local-infile=0 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # Default to using old password format for compatibility with mysql 3.x # clients (those using the mysqlclient10 compatibility package). old_passwords=1
When deploying new server/servergroup/cluster to your IT infrastructure, deployment (simplified) consist of following steps:
OS installation: to do it over network, boot server must be configured for this new server/servergroup/cluster,
configuration/package management: configuration server has to be aware of the newcomer(s),
monitoring and alerting: monitoring software must be reconfigured,
performance metrics: a tool for collecting data must be reconfigured.
There are many excellent software solutions for those particular jobs, say configuration management (Puppet, Chef, cfengine, bcfg2), monitoring hosts and services (Nagios, Zabbix, OpenNMS, Zenoss, etc) and performance metrics (Ganglia, etc). But each of these tools has to be configured independently or at least configuration has to be generated. What tools do you use to achieve this?
For example, when you have to deploy a new server, how do you create configs for, let's say, PXE boot server, Puppet, Nagios and Ganglia, at once?
I followed the following KB to allow country to be identified via GeoIP in AWStats: [URL] .... It works well on one of my domain, but I had to disable first the stats through PLESK Admin, then to reactivate it, so it would regenerate the conf file in /usr/local/psa/etc/awstats/* for a particulair domain. I then followed this KB to re-calculate all stats with country identification: [URL] .... It works as well.
But now: How can I regenerate all the conf file in /usr/local/psa/etc/awstats/* ? Is there any magic command?
On our production service, we've been getting numerous malformed POST requests to some of our CGI scripts that are showing up as 500 errors in our logs. They are malformed in the sense that the actual content length doesn't match the Content-Length specified in the request.
Here's the most trivial example I can come up with that reproduces the problem for us:
In addition to the 500 error in the access log, we see the corresponding error in the error log:
(70014)End of file found: Error reading request entity data
Based on the nature of the POST request and the error response, it does appear that Apache is doing the right thing here.
The POST never actually makes it as far as the script being targeted (/some_valid_alias in the above example); in other words, Apache returns 500 to the client, writes the error to the error log and never executes the script.
Is there a way to capture/avoid internal Apache errors like 70014, and return some other HTTP status besides 500 (like 403)? It's particularly annoying in our case, because our server sends us an email for all 500 errors.
So far, our best "defense" against these 500 errors is to disallow POST for these aliases, which normally just ignore the POST data anyway (when the request is not malformed):
Mostly it works fine but if there is a 404 then i get a 403 permission denied error instead of the error page. the folder that contains the error page does have a <directory> bit for it and i even tried adding it into the virtual host but i get the same result.
if the file does exist then it loads like normal
can anyone see any problems with my config or do i have to do something diff for 2.2.6?
I have kind of inherited this server from another person so I'm not totaly sure how it was set up. It is a:
red hat machine running 2.6.9-22.0.2.ELsmp kernel running apache 2.0.52(red hat)
at any rate this server mainly serves up images but also a few video encoded in flash(.swf files). Basically the issue at hand is there are a few domain names that all point to this server but only one domain name will let the .swf files stream correctly. All other domain names will wait for the whole thing to download before playing. I'm pretty new to apache 2, but I do know apache 1 pretty well. I'm not totally sure where to start with all this. The server is set up with no virtual hosting for each domain which I think could a problem.
I've been asked to put an Apache Reverse Proxy in place as per guidance from SAP - [URL] - but have come across an issue where the CSS file is not rewritten by the reverse proxy. The below is the Virtual Hosts entry from the test httpd.conf that i'm running to get it working. I'll be moving this to vhosts entries when it eventually works (optimism slowly vanishing! ).
Listen 443 <VirtualHost *:443> SSLEngine On SSLProxyEngine On ProxyRequests Off ProxyPreserveHost On SSLProxyCheckPeerCN off SSLProxyCheckPeerName off AllowEncodedSlashes On SSLCertificateFile /Apache24/conf/FILE.crt SSLCertificateKeyFile /Apache24/conf/KEYFILE.key SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown ServerName Gateway.External.co.uk ProxyPass / http://SAPGateway.Internal:8010/ nocanon ProxyPassReverse / http://SAPGateway.Internal:8010/ ErrorLog "C:/Apache24/logs/error.log" TransferLog "C:/Apache24/logs/access.log" </VirtualHost>
Each post I come across with a similar issue mentions the trailing '/' on the ProxyPass entries, unfortunately - for me - they're there!
i thought for moveing my apache 2.0 to 2.2 but iam in little bit confused for max client and keep alive setting in normal apache 2.0 we can see that in httpd.conf file but in apache 2.2 we can able to see that all,any one help me in finding these kind of setting and move my apache 2.2 without any issues
I run a Perl/CGI script from a Web page to download some files located in a Linux server. When I click from a Windows XP on the link of the file to download via this Web page (IE), a dialog box will be displayed to ask me to "Open" or "Save" the file (.txt, .doc, .xls,...) but for some extensions like ".dat" or ".asc", the dialog box ask me to save it only and I have not an "Open" button.
I tried to configure Apache to add these extensions as text/plain by adding these lines in http.conf:
AddType text/plain .asc .txt .dat
How can I add these extensions (.dat, .asc and other extensions) to Apache configuration to be able to open it with Textpad or Notepad?
I hope that the users will be able to open it with Notepad or TextPad without saving it. I know that we can add this type directly in the stations XP but I have a lot of users and I cannot manage that. I hope to perform it from the server. I think something is wrong or missing in my AddType, AddHandler or LoadModule?
I have put up a WAMP server that is based on Apache2.4.4. I am trying to utilize the rotatelogs.exe to rotate my access log every night. I have this working on IBM HTTP installations. IBM's HTTP is based on Apache 2.2. why the CustomLog command is not working? The command under my Virtual Hosts that I am using is:
I'm not sure if this is the right forum, or if anyone can suggest a message board where I might get support on this.
This is what I have. I have Apache and IIS both running on Windows 2k3.
Apache is running in reverse Proxy mode sending multiple domains/virtual hosts to IIS.
ProxyRequests Off <VirtualHost *:80> ProxyPreserveHost On ProxyPass / http://localhost:8080 ProxyPassReverse / [url] ServerName mydomain.com
</VirtualHost> Now, if I type in [url]everything works great and IIS (listening on 127.0.0.1:8080) serves the page. However, I am doing custom error trapping, so when I type in [url](and /mydirectory doesn't exist on IIS) I need to fire ASP code (via custom error messages/handling) on the IIS server and then present a data driven page.
However, Apache is returning A 502 error:
Code: Proxy Error The proxy server received an invalid response from an upstream server. The proxy server could not handle the request GET /mydirectory.
Reason: DNS lookup failure for: localhost:8080mydirectory Is there a way for me to setup Apache to pass all error checking to IIS while using it as a reverse proxy?