Giter Site home page Giter Site logo

litespeedtech / openlitespeed Goto Github PK

View Code? Open in Web Editor NEW
1.1K 42.0 187.0 34.26 MB

Our high-performance, lightweight, open source HTTP server

Home Page: https://openlitespeed.org

CMake 0.46% C 18.64% HTML 1.54% Shell 4.35% PHP 0.01% JavaScript 0.06% Perl 0.01% C++ 67.42% Makefile 6.41% Fortran 0.10% M4 0.47% Python 0.01% Go 0.54%
c-plus-plus webservers servers openlitespeed http2-server http3 quic

openlitespeed's Introduction

OpenLiteSpeed Web Server

Description

OpenLiteSpeed is a high-performance, lightweight, open source HTTP server developed and copyrighted by LiteSpeed Technologies. Users are free to download, use, distribute, and modify OpenLiteSpeed and its source code in accordance with the precepts of the GPLv3 license.

This is the official repository for OpenLiteSpeed's source code. It is maintained by LiteSpeed Technologies.

Documentation

Users can find all OpenLiteSpeed documentation on the OpenLiteSpeed site, but here are some quick links to important parts of the site:

Installation

Configuration

Road map

Release log

Get in Touch

OpenLiteSpeed has a Google Group. If you find a bug, want to request new features, or just want to talk about OpenLiteSpeed, this is the place to do it.

openlitespeed's People

Contributors

0cool-f avatar akshayagarwal avatar anna33625 avatar bizonix avatar c4tom avatar chefren avatar code-egg avatar davidlst avatar gruentee avatar gtsiam avatar gwanglst avatar istiak101 avatar kam821 avatar kazunito avatar kokers avatar kotoishiheart avatar laoxong avatar leggewie avatar litespeedtech avatar lsmichael avatar nguyentranchung avatar petk avatar samkohli avatar sawanoboly avatar toflar avatar vakartel avatar xvanko avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openlitespeed's Issues

Permission denied on OCSP cache in default RPM installation

OLS 1.3.10 failed to save OCSP response via permissions error:

stat("/usr/local/lsws//tmp/ocspcache/Rb0654bbe1894c320dd141a364fad649b.rsp", 0x7fff3725ed20) = -1 EACCES (Permission denied)
stat("/usr/local/lsws//tmp/ocspcache/Rb0654bbe1894c320dd141a364fad649b.rsp.tm", 0x7fff3725cd00) = -1 EACCES (Permission denied)
open("/usr/local/lsws//tmp/ocspcache/Rb0654bbe1894c320dd141a364fad649b.rsp.tm", O_RDWR|O_CREAT|O_TRUNC, 0600) = -1 EACCES (Permission denied)

The ocspcache directory should be owned by nobody to work properly in default installation.

Workaround:

chown nobody:nobody /usr/local/lsws/tmp/ocspcache

workers write to disk

workes constantly write to disk at 4Kb/s speed
what they write?
is this need to be persist across restarts?

Support for ECDSA and RSA Hybrid

Hello, maybe im wrong here, but i didnt find an appropiate Way to ask, does OpenLS support Hybrid mode for ECDSA and RSA, like Apache do?

(2 different Certs for the same Vhost, Server chooses between RSA and ECDSA based on Cipher Suits that it gets from the Client)

Best Regards

Every OLS worker produces its own LSAPI instances

I noticed that openlitespeed creates more lsphp instances than I configured:

  • AutoStart: Yes
  • Instances: 1
  • Environment: PHP_LSAPI_CHILDREN=35

I looked at src/extensions/localworker.cpp and found that every OLS worker has its own PidList and, for example, worker # 02 doesn't know anything about already started instance by worker # 01 and starts its own. This means that if you have a server with N CPU cores (and N OLS workers by default) you get N lsphp instances & N * PHP_LSAPI_CHILDREN lsphp workers on heavy load. On small load you get a lot of excess idled instances and this increase memory consumption and reduce speed (because OLS need to start unnecessary instances & every instance's group of lsphp workers have its own opcode cache).

Even if it is not a bug, it is not useful. May be it will better to share PidList between OLS workers to get number of instances user really need.

The workaround is to set Number of Workers: 1.

OLS how to enable HSTS

I added the

Header always set Strict-Transport-Security "max-age=15768000"

to the .htaccess it was not work ,or added to the admin panel -- rewrite also not work

Homebrew installation issue

As I referred into a pull request to Homebrew, OpenLitespeed compile itself well until version 1.4.0 as you added a check for admin_php, as I check on the build from Brew, the install.sh wouldn't uncompress the archive due to a bad format on OS X systems and chown aren't permitted without any root access.

Also, when installing via Homebrew, the software can't locate itself.
Please refer to : http://bot.brew.sh/job/Homebrew%20Pull%20Requests/13578/

configure: error with --without-zlib

./configure --without-zlib

results in:

configure: error: either specify a valid zlib installation with --with-zlib=DIR or disable zlib usage with --without-zlib

thx

cannot install on heroku with custom PCRE prefix

on heroku.com (popular PAAS) directory /usr/* is read-only so I install pcre in /app/* but when I run

`./configure``

pcre not recognized and I have to use --with-pcre

./configure --prefix=/app/vendor/openlitespeed --with-pcre=/app/vendor/pcre --with-libdir=lib

and here the error when run "make"

make[3]: Entering directory `/tmp/openlitespeed-1.2.8/src/util'
g++ -DHAVE_CONFIG_H -I. -I../../src -I../../src  -I/usr/include  -g -O2 -fstack-protector  -MT pcregex.o -MD -MP -M
F .deps/pcregex.Tpo -c -o pcregex.o pcregex.cpp
In file included from pcregex.cpp:19:
../../src/util/pcregex.h:24:18: error: pcre.h: No such file or directory
In file included from pcregex.cpp:19:
../../src/util/pcregex.h:53: error: ISO C++ forbids declaration of 'pcre' with no type
../../src/util/pcregex.h:53: error: expected ';' before '*' token
../../src/util/pcregex.h:54: error: ISO C++ forbids declaration of 'pcre_extra' with no type
../../src/util/pcregex.h:54: error: expected ';' before '*' token
../../src/util/pcregex.h: In member function 'int Pcregex::exec(const char*, int, int, int, int*, int) const':
../../src/util/pcregex.h:77: error: 'm_regex' was not declared in this scope
../../src/util/pcregex.h:77: error: 'm_extra' was not declared in this scope
../../src/util/pcregex.h:78: error: 'pcre_exec' was not declared in this scope
../../src/util/pcregex.h: In member function 'int Pcregex::exec(const char*, int, int, int, RegexResult*) const':
../../src/util/pcregex.h:83: error: 'm_regex' was not declared in this scope
../../src/util/pcregex.h:83: error: 'm_extra' was not declared in this scope
../../src/util/pcregex.h:84: error: 'pcre_exec' was not declared in this scope
pcregex.cpp: In constructor 'Pcregex::Pcregex()':
pcregex.cpp:64: error: class 'Pcregex' does not have any field named 'm_regex'
pcregex.cpp:65: error: class 'Pcregex' does not have any field named 'm_extra'
pcregex.cpp: In member function 'void Pcregex::release()':
pcregex.cpp:76: error: 'm_regex' was not declared in this scope
pcregex.cpp:78: error: 'm_extra' was not declared in this scope
pcregex.cpp:83: error: 'pcre_free' was not declared in this scope
pcregex.cpp:87: error: 'pcre_free' was not declared in this scope
pcregex.cpp: In member function 'int Pcregex::compile(const char*, int, int, int)':
pcregex.cpp:96: error: 'm_regex' was not declared in this scope
pcregex.cpp:98: error: 'm_regex' was not declared in this scope
pcregex.cpp:98: error: 'pcre_compile' was not declared in this scope
pcregex.cpp:101: error: 'm_extra' was not declared in this scope
pcregex.cpp:107: error: 'pcre_study' was not declared in this scope
pcregex.cpp:111: error: 'PCRE_EXTRA_MATCH_LIMIT' was not declared in this scope
pcregex.cpp:116: error: 'PCRE_EXTRA_MATCH_LIMIT_RECURSION' was not declared in this scope
pcregex.cpp:118: error: 'PCRE_INFO_CAPTURECOUNT' was not declared in this scope
pcregex.cpp:118: error: 'pcre_fullinfo' was not declared in this scope
make[3]: *** [pcregex.o] Error 1
make[3]: Leaving directory `/tmp/openlitespeed-1.2.8/src/util'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/tmp/openlitespeed-1.2.8/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/tmp/openlitespeed-1.2.8/src'
make: *** [all-recursive] Error 1

if you have time please signup free developer account on heroku and try to create openlitespeed buildpack.

thanks

ChaCha20/Poly1305 not supported

Hello. I configured the following cipher list in the listener:

EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5

But not offer the ciphers:

ECDHE-ECDSA-CHACHA20-POLY1305 (*)
ECDHE-RSA-CHACHA20-POLY1305
DHE-RSA-CHACHA20-POLY1305

  • WIth ECDSA certificate.

The cipher list works fine in NGINX.

Thanks. Best regards.

segfault in admin interface on CentOS 7

The public content seems to be serving OK, but I cannot get the admin UI to come up. I have installed on CentOS 7 with the RPM here:

http://rpms.litespeedtech.com/centos/7/x86_64/RPMS/openlitespeed-1.3.7-1.el7.centos.x86_64.rpm

I have disabled firewalld for testing purposes.

Every time I hit port 7080, I get this in error.log:

2015-02-06 10:59:07.931 [NOTICE] [AutoRestarter] child process with pid=17252 received signal=11, a core file is created!
2015-02-06 10:59:07.939 [NOTICE] [AutoRestarter] cleanup children processes and unix sockets belong to process 17252 !
2015-02-06 10:59:08.000 [NOTICE] [AutoRestarter] new child process with pid=17268 is forked!
2015-02-06 10:59:08.000 [DEBUG] [config] try to give up super user privilege!
2015-02-06 10:59:08.000 [NOTICE] [config] [child: 17268] Successfully change current user to nobody
2015-02-06 10:59:08.000 [NOTICE] [config] Child: 17268] Core dump is enabled.
2015-02-06 10:59:08.000 [NOTICE] [Child: 17268] Setup swapping space...
2015-02-06 10:59:08.001 [NOTICE] [Child: 17268] LiteSpeed/1.3.7 Open starts successfully!

and this in /var/log/messages:

Feb  6 10:57:59 doglion kernel: litespeed[16298]: segfault at 7fff41c57000 ip 00007f9fe24e252b sp 00007fff41c526d8 error 4 in libc-2.17.so[7f9fe2399000+1b6000]
Feb  6 10:57:59 doglion abrt-hook-ccpp: Saved core dump of pid 16298 (/usr/local/lsws/bin/openlitespeed) to /var/tmp/abrt/ccpp-2015-02-06-10:57:59-16298 (3837952 bytes)
Feb  6 10:57:59 doglion abrt-server: Package 'openlitespeed' isn't signed with proper key
Feb  6 10:57:59 doglion abrt-server: 'post-create' on '/var/tmp/abrt/ccpp-2015-02-06-10:57:59-16298' exited with 1
Feb  6 10:57:59 doglion abrt-server: Deleting problem directory '/var/tmp/abrt/ccpp-2015-02-06-10:57:59-16298'
Feb  6 10:57:59 doglion kernel: litespeed[16693]: segfault at 7fff41c57000 ip 00007f9fe24e252b sp 00007fff41c526d8 error 4 in libc-2.17.so[7f9fe2399000+1b6000]
Feb  6 10:58:00 doglion abrt-hook-ccpp: Not saving repeating crash in '/usr/local/lsws/bin/openlitespeed'
Feb  6 10:58:00 doglion abrt-hook-ccpp: Saved core dump of pid 16693 to core.16693 (3837952 bytes)
Feb  6 10:58:01 doglion systemd: Created slice user-995.slice.
Feb  6 10:58:01 doglion systemd: Starting Session 248 of user pcp.
Feb  6 10:58:01 doglion systemd: Started Session 248 of user pcp.
Feb  6 10:58:05 doglion kernel: litespeed[16701]: segfault at 7fff41c57000 ip 00007f9fe24e252b sp 00007fff41c526d8 error 4 in libc-2.17.so[7f9fe2399000+1b6000]
Feb  6 10:58:05 doglion abrt-hook-ccpp: Not saving repeating crash in '/usr/local/lsws/bin/openlitespeed'
Feb  6 10:58:05 doglion abrt-hook-ccpp: Saved core dump of pid 16701 to core.16701 (3837952 bytes)

please report pagespeed module version used with each OLS release

In light of security vulnerabilities that pagepseed sometimes get, it's important to keep it up to date. Would be useful if OLS releases always reported the pagespeed module version it is accompanied with.

one way i can find it :)

echo "$(/usr/local/lsws/bin/openlitespeed --version) with modpagespeed $(strings /usr/local/lsws/modules/modpagespeed.so | awk -F "/" '/\/home\/buildbot\/build\// {print $5}' | uniq)"
LiteSpeed/1.4.22 Open with modpagespeed 1.11.33.2

Wildcard dynamic domains

Unless I am missing something, litespeed does not support wildcard dynamic domains the way other servers do, that is creating a catchall domain configuration and then creating a new domain simply by making a copy of a directory of an existing domain and naming the new folder with the new domain's name. Is it possible? If not, please consider this as a feature request. Thanks.

Slowdown under load test with httpress

Hello !

I just cloned openlitespeed compiled/installed and also the "hellohandle", when testing with httpress (https://bitbucket.org/yarosla/httpress/wiki/Home) I got a strange slowdown under load test (see bellow) the same test with h2o (https://github.com/h2o/h2o) do not slowdown and is twice faster.

Tests done on a celeron with 2 threads ubuntu 14.04

openlitespeed:

httpress -t 2 -n 1000000 -c 4000 -k http://127.0.0.1:8088/hello.hh
50000 requests launched (1.473268 sec)
100000 requests launched (1.754996 sec)
150000 requests launched (1.749233 sec)
200000 requests launched (1.708033 sec)
250000 requests launched (1.724498 sec)
300000 requests launched (1.737429 sec)
350000 requests launched (1.739232 sec)
400000 requests launched (1.745648 sec)
450000 requests launched (1.739858 sec)
500000 requests launched (1.594058 sec)
550000 requests launched (1.588847 sec)
600000 requests launched (1.591003 sec)
650000 requests launched (1.715315 sec)  <<< (xxx sec) is the time between launched reports
700000 requests launched (8.763318 sec)  <<<< here it starts the slowdown
750000 requests launched (4.586747 sec)
800000 requests launched (4.940580 sec)
850000 requests launched (5.404554 sec)
900000 requests launched (3.960386 sec)
950000 requests launched (5.329415 sec)
1000000 requests launched (5.083174 sec)
thread 1: 62826 connect, 407310 requests, 398957 success, 7471 fail, 882 fail avg, 9176011 bytes, 48894741 overhead
thread 2: 44940 connect, 592690 requests, 592690 success, 0 fail, 0 fail avg, 13631870 bytes, 71939458 overhead

TOTALS:  107766 connect, 1000000 requests, 991647 success, 7471 fail, 882 fail avg, 4000 (3867) real concurrency
TRAFFIC: 23 avg bytes, 121 avg overhead, 22807881 bytes, 120834199 overhead
TIMING:  60.406 seconds, 16416 rps, 2322 kbps, 243.7 ms avg req time

h2o:

httpress -t 2 -n 1000000 -c 4000 -k http://127.0.0.1:8080/C/Domingo
50000 requests launched (0.752410 sec)
100000 requests launched (0.829837 sec)
150000 requests launched (0.880322 sec)
200000 requests launched (0.894680 sec)
250000 requests launched (0.876198 sec)
300000 requests launched (0.877460 sec)
350000 requests launched (0.892611 sec)
400000 requests launched (0.852188 sec)
450000 requests launched (0.858291 sec)
500000 requests launched (0.874117 sec)
550000 requests launched (0.870570 sec)
600000 requests launched (0.868575 sec)
650000 requests launched (0.868510 sec)
700000 requests launched (0.844178 sec)
750000 requests launched (0.891252 sec)
800000 requests launched (0.885401 sec)
850000 requests launched (0.897325 sec)
900000 requests launched (0.890025 sec)
950000 requests launched (0.893655 sec)
1000000 requests launched (0.876640 sec)
thread 1: 2000 connect, 518346 requests, 518346 success, 0 fail, 0 fail avg, 8293536 bytes, 78788592 overhead
thread 2: 2000 connect, 481654 requests, 481654 success, 0 fail, 0 fail avg, 7706464 bytes, 73211408 overhead

TOTALS:  4000 connect, 1000000 requests, 1000000 success, 0 fail, 0 fail avg, 4000 (4000) real concurrency
TRAFFIC: 16 avg bytes, 152 avg overhead, 16000000 bytes, 152000000 overhead
TIMING:  17.780 seconds, 56240 rps, 9227 kbps, 71.1 ms avg req time

Request Timeout

Hello

OLS 1.3.12

Found a problem, if in php file has the following elements:
BOM (Byte order mark)
set header 304 Not Modified
set header Last-Modified

For reproducing sufficiently (BOM in first symbol of first string, before <?):
๏ปฟ๏ปฟ<?php

$LastModified_unix = 1443157797;
$LastModified = gmdate("D, d M Y H:i:s \G\M\T", $LastModified_unix);
$IfModifiedSince = false;
if (isset($_ENV['HTTP_IF_MODIFIED_SINCE']))
$IfModifiedSince = strtotime(substr($_ENV['HTTP_IF_MODIFIED_SINCE'], 5));
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']))
$IfModifiedSince = strtotime(substr($_SERVER['HTTP_IF_MODIFIED_SINCE'], 5));
if ($IfModifiedSince && $IfModifiedSince >= $LastModified_unix) {
header($_SERVER['SERVER_PROTOCOL'] . ' 304 Not Modified');
exit;
}

header('Last-Modified: '. $LastModified);
?>

Now if to load a page and try to renew a page, we will get: Request Timeout

Thanks. Best regards.

centos5 compile error

make[3]: Leaving directory /root/openlitespeed-1.3.8/src/spdy' Making all in sslpp make[3]: Entering directory/root/openlitespeed-1.3.8/src/sslpp'
g++ -DHAVE_CONFIG_H -I. -I../../src -I../../src -I/usr/include -I/usr/local/include -g -O2 -fstack-protector -MT sslconnection.o -MD -MP -MF .deps/sslconnection.Tpo -c -o sslconnection.o sslconnection.cpp
sslconnection.cpp: In member function โ€˜int SSLConnection::setTlsExtHostName(const char_)โ€™:
sslconnection.cpp:394: error: โ€˜SSL_set_tlsext_host_nameโ€™ was not declared in this scope
make[3]: *_* [sslconnection.o] Error 1
make[3]: Leaving directory /root/openlitespeed-1.3.8/src/sslpp' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory/root/openlitespeed-1.3.8/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/root/openlitespeed-1.3.8/src'
make: *** [all-recursive] Error 1


  • I had Install dependencies like this:
yum install epel-release
yum install gcc gcc-c++ make autoconf glibc rcs 
yum install pcre-devel openssl-devel expat-devel geoip-devel zlib-devel
  • my system information

uname -a

cat /etc/redhat-release

CentOS release 5.10 (Final)

OLS 1.3.10 internally adds trailing slash for DHParam

For example, httpd_config.xml:

...
<DHParam>$SERVER_ROOT/conf/cert/dhparam.pem</DHParam>
...

In error_log:

...
2015-05-05 14:32:06.199 [ERROR] [config:server:listener:[2a00:1178:1:43::d]:443:ssl] Path for DH Parameter file is not accessible: /usr/local/lsws/conf/cert/dhparam.pem/
...

I wrote a patch to fix this issue. It just adds additional variable to store destination path for DHParam.

diff --git a/src/sslpp/sslcontext.cpp b/src/sslpp/sslcontext.cpp
index 98ca0b7..dd6635b 100644
--- a/src/sslpp/sslcontext.cpp
+++ b/src/sslpp/sslcontext.cpp
@@ -1016,6 +1016,7 @@ SSLContext *SSLContext::config(const XmlNode *pNode)
     char achKey [MAX_PATH_LEN];
     char achCAFile[MAX_PATH_LEN];
     char achCAPath[MAX_PATH_LEN];
+    char achDHParam[MAX_PATH_LEN];

     const char *pCertFile;
     const char *pKeyFile;
@@ -1103,7 +1104,7 @@ SSLContext *SSLContext::config(const XmlNode *pNode)
         const char *pDHParam = pNode->getChildValue("DHParam");
         if (pDHParam)
         {
-            if (ConfigCtx::getCurConfigCtx()->getValidFile(achCAPath, pDHParam,
+            if (ConfigCtx::getCurConfigCtx()->getValidFile(achDHParam, pDHParam,
                     "DH Parameter file") != 0)
             {
                 ConfigCtx::getCurConfigCtx()->log_warn("invalid path for DH paramter: %s, ignore and use built-in DH parameter!",
@@ -1111,7 +1112,7 @@ SSLContext *SSLContext::config(const XmlNode *pNode)

                 pDHParam = NULL;
             }
-            pDHParam = achCAPath;
+            pDHParam = achDHParam;
         }
         pSSL->initDH(pDHParam);
     }

Setting --with-user and --with-group does not work

Using OpenLiteSpeed 1.2.5

Configure command used:
./configure --enable-spdy --with-user lsws --with-group lsws

Build used:
make -j2

Install used:
make install

Error produced at install:
SSL host is [webadmin], use adminSSL
groupadd: group 'lsadm' already exists
useradd: user 'lsadm' already exists
usermod: group 'yes' does not exist
chown: invalid user: yes:yes' chgrp: invalid group:yes'
chown: invalid user: yes:yes' chown: invalid user:yes:yes'

After the error, lswsctl does not start, showing the below error:
[ERROR] Failed to start litespeed!
litespeed: no process found
[ERROR] Failed to start litespeed!

Configure warning unknown --is-lightweight option, missing script is too old or missing

With OpenLiteSpeed 1.4.26, the ./configure outputs the following warning at the beginning:

checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
/build/main/openlitespeed/src/openlitespeed-1.4.26/missing: Unknown '--is-lightweight' option
Try '/build/main/openlitespeed/src/openlitespeed-1.4.26/missing --help' for more information
configure: WARNING: 'missing' script is too old or missing
checking for a thread-safe mkdir -p... ./install-sh -c -d

The current missing shell script in the OpenLiteSpeed root folder is version 2012-01-06.18 which, from my testing, could be easily upgraded to the more recent version of 2013-10-28.13. It can be found on some systems in /usr/share/automake-1.15/missing or in /usr/share/libtool/build-aux/missing.

Saving a Realm is wiping out the vhost configuration settings (v1.4.24)

When I tried to add a Realm in a virtualhost, it wipes out the content of vhconf.conf file.

How to reproduce:

  1. login to the admin panel
  2. go to VirtualHost > Security
  3. click Add button on Realm List
  4. enter required data and click save button.
  5. click the tabs and see if the existing settings are gone.
  6. check the content of /conf/vhost/vhostname/vhconf.conf. It's blank now.

ClientInfo->Access reset when accessing already existing cache entry

Hi,

I was stress-testing OpenLitespeed and I realized that blocked IPs are not kept after new requests.
In this case I reviewed the code, and I saw that ClientInfo->Access is always reset to AC_ALLOW when accessing the existing client cache entry.

Here is the issue, when ClientInfo->Access is set to AC_BLOCK by the AntiDoS system, the reset is happening here :
https://github.com/litespeedtech/openlitespeed/blob/master/src/http/clientcache.cpp#L460

        pInfo = iter.second();

        //always reset existing cache entry to AC_ALLOW
        if (AccessControl::getAccessCtrl())
            pInfo->setAccess(AccessControl::getAccessCtrl()->hasAccess(pPeer));
        else
            pInfo->setAccess(AC_ALLOW); 

Bests regards,
LoadLow.

FollowSymlink behaviour

When migrating from lsws-4.2.5-std, FollowSymlink set to no complains about some homedir not having the right user, although the same settings worked just fine on -std. Setting it to "yes" fixes the issue. Built on ubuntu 12.04LTS.

Warning redirecting incorrect #include <sys/poll.h> to <poll.h>

Hello, when compiling on systems with musl libc (Alpine Linux) and similar there appears multiple warnings:

#warning redirecting incorrect #include <sys/poll.h> to <poll.h>

For example:

x86_64-alpine-linux-musl-g++ -DHAVE_CONFIG_H -I. -I../../src  -I../../openssl/include/ -I../../include -I../../src -Os -fomit-frame-pointer -I../../src -I../../include -I/usr/local/include -I/usr/local -I/usr -I/usr/pkg  -I/usr/include -I/usr/include  -Os -fomit-frame-pointer -D_GLIBCXX_USE_CXX11_ABI=0 -fstack-protector   -MT ediostream.o -MD -MP -MF .deps/ediostream.Tpo -c -o ediostream.o ediostream.cpp
In file included from ediostream.cpp:28:0:
/usr/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include <sys/poll.h> to <poll.h> [-Wcpp]
 #warning redirecting incorrect #include <sys/poll.h> to <poll.h>
  ^~~~~~~
mv -f .deps/epoll.Tpo .deps/epoll.Po

POSIX defines that poll.h should be included with #include <poll.h> but this probably breaks some other systems with older glibc and similar which require to have #include <sys/poll.h>.

Is there any option to simply change all the lines where sys/poll.h is used into #include <poll.h> and increase the minimum system requirements

or should they be checked with something like this:

#ifdef HAVE_POLL_H
#include <poll.h>
#elif defined(HAVE_SYS_POLL_H)
#include <sys/poll.h>
#endif

Thanks for any possible feedback about this. I might send pull request and check what can be done with this later on...

redis.so: undefined symbol: igbinary_serialize in Unknown on line 0

Trying your ols1clk.sh install got errors with php pecl redis, igbinary and memcached litespeedtech/ols1clk#5 (comment)

on CentOS 7.2 64bit with forked copy of ols1clk.sh https://github.com/centminmod/ols1clk/tree/centminmod but shouldn't matter as using default lsphp yum packages

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/lsws/lsphp56/lib64/php/modules/redis.so' - /usr/local/lsws/lsphp56/lib64/php/modules/redis.so: undefined symbol: igbinary_serialize in Unknown on line 0
PHP 5.6.24 (cli) (built: Jul 29 2016 15:22:18) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

Server hanging up (503)

2014-08-10 02:33:30.682 WARN    [AutoRestarter] forking too frequently, suspend for a while!
2014-08-10 02:33:49.000 NOTICE  [Child: 7105] Shut down successfully!
2014-08-10 02:33:49.000 NOTICE  [lsphp5] stop worker processes
2014-08-10 02:33:49.000 NOTICE  [AdminPHP] stop worker processes
2014-08-10 02:33:49.001 NOTICE  [AutoRestarter] cleanup children processes and unix sockets belong to process 7105 !
2014-08-10 02:33:49.101 NOTICE  [AutoRestarter] child process with pid=7105 exited with status=0!
2014-08-10 02:33:49.101 NOTICE  [PID:6105] Server Stopped!
2014-08-10 02:33:50.460 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:33:50.460 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:33:50.460 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:33:50.611 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:33:50.611 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:33:50.611 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:33:54.203 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:33:54.203 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:33:54.203 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:33:54.914 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:33:54.914 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:33:54.914 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:33:55.698 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:33:55.698 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:33:55.698 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:33:56.921 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:33:56.922 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:33:56.922 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:33:58.424 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:33:58.424 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:33:58.424 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:34:00.961 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:34:00.961 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:34:00.961 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:34:06.072 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:34:06.072 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:34:06.072 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:34:06.957 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:34:06.957 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:34:06.957 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:34:11.465 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:34:11.465 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:34:11.465 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:34:21.200 NOTICE  [AutoRestarter] new child process with pid=7565 is forked!
2014-08-10 02:34:21.200 NOTICE  [AutoRestarter] new child process with pid=7566 is forked!
2014-08-10 02:34:21.200 INFO    Stop listener 197.221.50.130:7080.
2014-08-10 02:34:21.200 DEBUG   [config] try to give up super user privilege!
2014-08-10 02:34:21.200 NOTICE  [config] [child: 7565] Successfully change current user to www-data
2014-08-10 02:34:21.200 NOTICE  [config] Child: 7565] Core dump is enabled.
2014-08-10 02:34:21.200 NOTICE  [Child: 7565] Setup swapping space...
2014-08-10 02:34:21.200 INFO    Stop listener xxx:7080.
2014-08-10 02:34:21.200 DEBUG   [config] try to give up super user privilege!
2014-08-10 02:34:21.200 NOTICE  [Child: 7565] LiteSpeed/1.4.0 Open starts successfully!
2014-08-10 02:34:21.200 NOTICE  [config] [child: 7566] Successfully change current user to www-data
2014-08-10 02:34:21.200 NOTICE  [config] Child: 7566] Core dump is enabled.
2014-08-10 02:34:21.201 NOTICE  [Child: 7566] Setup swapping space...
2014-08-10 02:34:21.201 NOTICE  [Child: 7566] LiteSpeed/1.4.0 Open starts successfully!
2014-08-10 02:34:21.967 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:34:21.967 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!
2014-08-10 02:34:21.967 INFO    [uds://tmp/lshttpd/lsphp.sock] Connection refused, restart!

Coredump: https://www.afri.cc/core

mmap never uses when sendfile is enabled

About "Use sendfile" option:

Specifies whether to use the sendfile() system call to serve static files. Static files can be served in four different ways: memory buffer cache, memory-mapped cache, plain read/write, and sendfile(). Files smaller than the Max Cached Small File Size are served from memory buffer cache. Files larger than the Max Cached Small File Size but smaller than the Max MMAP File Size will be served from memory-mapped cache. Files larger than the Max MMAP File Size will be served via plain read/write or sendfile(). Sendfile() is a "zero copy" system call that can greatly reduce CPU utilization when serving very large static files. Sendfile() requires an optimized network card kernel driver and thus may not be suitable for some small-vendor network adapters.

I have a openLiteSpeed server with options:

  • Max Cached Small File Size (bytes):4096
  • Total Small File Cache Size (bytes): 20M
  • Max MMAP File Size (bytes): 256K
  • Total MMAP Cache Size (bytes): 40M
  • Use sendfile(): Yes

When I try to download file with size 21K openLiteSpeed should use mmap. But it use sendfile:

read(21, "GET /wp-content/themes/fozzy/intro-experiment/css/style.css HTTP/1.0\r\nReferer: http://dev.fozzy.com/en/intro-experiment-prices\r\nUser-Agent: Wget/1.12 (linux-gnu)\r\nAccept: */*\r\nHost: dev.fozzy.com\r\nConnection: Keep-Alive\r\n\r\n", 2044) = 223
stat("/srv/www/dev/fozzy.com/wp-content/cache/supercache/dev.fozzy.com/wp-content/themes/fozzy/intro-experiment/css/style.css/index.html", 0x737dd8) = -1 ENOENT (No such file or directory)
stat("/srv/www/dev/fozzy.com/wp-content/themes/fozzy/intro-experiment/css/style.css", {st_mode=S_IFREG|0775, st_size=20956, ...}) = 0
stat("/srv/www/dev/fozzy.com/wp-content/themes/fozzy/intro-experiment/css/style.css", {st_mode=S_IFREG|0775, st_size=20956, ...}) = 0
stat("/srv/www/dev/fozzy.com/wp-content/themes/fozzy/intro-experiment/css/style.css", {st_mode=S_IFREG|0775, st_size=20956, ...}) = 0
readlink("/srv/www/dev/fozzy.com/wp-content", 0x7fff6c716e31, 4094) = -1 EINVAL (Invalid argument)
readlink("/srv/www/dev/fozzy.com/wp-content/themes", 0x7fff6c716e31, 4094) = -1 EINVAL (Invalid argument)
readlink("/srv/www/dev/fozzy.com/wp-content/themes/fozzy", 0x7fff6c716e31, 4094) = -1 EINVAL (Invalid argument)
readlink("/srv/www/dev/fozzy.com/wp-content/themes/fozzy/intro-experiment", 0x7fff6c716e31, 4094) = -1 EINVAL (Invalid argument)
readlink("/srv/www/dev/fozzy.com/wp-content/themes/fozzy/intro-experiment/css", 0x7fff6c716e31, 4094) = -1 EINVAL (Invalid argument)
readlink("/srv/www/dev/fozzy.com/wp-content/themes/fozzy/intro-experiment/css/style.css", 0x7fff6c716e31, 4094) = -1 EINVAL (Invalid argument)
open("/srv/www/dev/fozzy.com/wp-content/themes/fozzy/intro-experiment/css/style.css", O_RDONLY) = 22
fcntl(22, F_SETFD, FD_CLOEXEC) = 0
writev(21, [{"HTTP/1.0 200 OK\r\n", 17}, {"cache-control: public, max-age=604800\r\nexpires: Thu, 09 Apr 2015 09:51:37 GMT\r\netag: \"51dc-547f32c1-3f4b3\"\r\nlast-modified: Wed, 03 Dec 2014 15:56:49 GMT\r\ncontent-type: text/css\r\ncontent-length: 20956\r\naccept-ranges: bytes\r\ndate: Thu, 02 Apr 2015 09:51:37 GMT\r\nserver: LiteSpeed\r\nconnection: keep-alive\r\n", 303}, {"\r\n", 2}], 3) = 322
sendfile(21, 22, [0], 20956) = 20956

If I change "Use sendfile()" to "No" then openLiteSpeed starts to use mmap for the same file:

read(21, "GET /wp-content/themes/fozzy/intro-experiment/css/style.css HTTP/1.1\r\nUser-Agent: curl/7.41.0\r\nHost: dev.fozzy.com\r\nAccept: */*\r\n\r\n", 2044) = 1
stat("/srv/www/dev/fozzy.com/wp-content/cache/supercache/dev.fozzy.com/wp-content/themes/fozzy/intro-experiment/css/style.css/index.html", 0x737dd8) = -1 ENOENT (No such file or directory)
stat("/srv/www/dev/fozzy.com/wp-content/themes/fozzy/intro-experiment/css/style.css", {st_mode=S_IFREG|0775, st_size=20956, ...}) = 0
stat("/srv/www/dev/fozzy.com/wp-content/themes/fozzy/intro-experiment/css/style.css", {st_mode=S_IFREG|0775, st_size=20956, ...}) = 0
stat("/srv/www/dev/fozzy.com/wp-content/themes/fozzy/intro-experiment/css/style.css", {st_mode=S_IFREG|0775, st_size=20956, ...}) = 0
readlink("/srv/www/dev/fozzy.com/wp-content", 0x7fff413921d1, 4094) = -1 EINVAL (Invalid argument)
readlink("/srv/www/dev/fozzy.com/wp-content/themes", 0x7fff413921d1, 4094) = -1 EINVAL (Invalid argument)
readlink("/srv/www/dev/fozzy.com/wp-content/themes/fozzy", 0x7fff413921d1, 4094) = -1 EINVAL (Invalid argument)
readlink("/srv/www/dev/fozzy.com/wp-content/themes/fozzy/intro-experiment", 0x7fff413921d1, 4094) = -1 EINVAL (Invalid argument)
readlink("/srv/www/dev/fozzy.com/wp-content/themes/fozzy/intro-experiment/css", 0x7fff413921d1, 4094) = -1 EINVAL (Invalid argument)
readlink("/srv/www/dev/fozzy.com/wp-content/themes/fozzy/intro-experiment/css/style.css", 0x7fff413921d1, 4094) = -1 EINVAL (Invalid argument)
open("/srv/www/dev/fozzy.com/wp-content/themes/fozzy/intro-experiment/css/style.css", O_RDONLY) = 22
fcntl(22, F_SETFD, FD_CLOEXEC) = 0
mmap(NULL, 20956, PROT_READ, MAP_PRIVATE, 22, 0) = 0x7f2569701000
close(22)                 = 0
writev(21, [{"HTTP/1.1 200 OK\r\n", 17}, {"cache-control: public, max-age=604800\r\nexpires: Thu, 09 Apr 2015 12:24:37 GMT\r\netag: \"51dc-547f32c1-3f4b3\"\r\nlast-modified: Wed, 03 Dec 2014 15:56:49 GMT\r\ncontent-type: text/css\r\ncontent-length: 20956\r\naccept-ranges: bytes\r\ndate: Thu, 02 Apr 2015 12:24:37 GMT\r\nserver: LiteSpeed\r\n", 279}, {"\r\n", 2}, {"@charset \"utf-8\";\n\n@font-face {\n\t\tfont-family: 'Myriad Pro';\n\t\tsrc: url('../fonts/mp-regular-webfont.eot');\n\t\tsrc: url('../fonts/mp-regular-webfont.eot?#iefix') format('embedded-opentype'), url('../fonts/mp-regular-webfont.woff') format('woff'), url('../fonts/mp-regular-webfont.svg#MyriadProRegular') format('svg'), url('../fonts/mp-regular-webfont.ttf') format('truetype');\n\t\tfont-weight: normal;\n\t\tfont-style: normal;\n}\n\n@font-face {\n\t\tfont-family: 'Myriad Pro Cond';\n\t\tsrc: url('../fonts/myriadpro-cond-webfont.eot');\n\t\tsrc: url('../fonts/myriadpro-cond-webfont.eot?#iefix') format('embedded-opentype'), url('../fonts/myriadpro-cond-webfont.woff') format('woff'), url('../fonts/myriadpro-cond-webfont.ttf') format('truetype');\n\t\tfont-weight: normal;\n\t\tfont-style: normal;\n}\n\n@font-face {\n\t\tfont-family: 'Myriad Pro Cond';\n\t\tsrc: url('../fonts/MyriadPro-SemiboldCond.eot');\n\t\tsrc: url('../fonts/MyriadPro-SemiboldCond.eot?#iefix') format('embedded-opentype'), url('../fonts/MyriadPro-SemiboldCond.woff') format('woff'), url('../fonts/MyriadPro-SemiboldCond.ttf') format('truetype');\n\t\tfont-weight: 600;\n\t\tfont-style: normal;\n}\n\n@font-face {\n\t\tfont-family: 'Myriad Pro Cond';\n\t\tsrc: url('../fonts/MyriadPro-SemiboldCondIt.eot');\n\t\tsrc: url('../fonts/MyriadPro-SemiboldCondIt.eot?#iefix') format('embedded-opentype'), url('../fonts/MyriadPro-SemiboldCondIt.woff') format('woff'), url('../fonts/MyriadPro-SemiboldCondIt.ttf') format('truetype');\n\t\tfont-weight: 600;\n\t\tfont-style: italic;\n}\n\n@font-face {\n\t\tfont-family: 'Rouble';\n\t\tsrc: "..., 20956}], 4) = 14344
epoll_ctl(6, EPOLL_CTL_MOD, 21, {EPOLLIN|EPOLLOUT|EPOLLERR|EPOLLHUP, {u32=21, u64=21}}) = 0
epoll_wait(6, {}, 10, 100) = 0
epoll_wait(6, {{EPOLLOUT, {u32=21, u64=21}}}, 10, 100) = 1
writev(21, [{" none;\n\t\tmargin: 22px 0 68px 0;\n\t\tpadding: 0;\n}\n\n.menu2 > ul > li > ul > li {\n\t\tmargin: 22px 0 0 0;\n}\n\n.en .menu2 > ul > li > ul,\n.en
menu2 > ul > li > ul > li {\n\t\tmargin-top: 27px;\n}\n\n.en .menu2 > ul > li > ul {\n\t\tmargin-bottom: 78px;\n}\n\n.btn-hold {\n\t\tmargin: 60px 5px 0 5px;\n}\n\n.top-text .btn-hold {\n\t\tmargin-top: 56px;\n}\n\n.clouds-bg h3 {\n\t\tdisplay: none;\n}\n\n.clouds-bg .btn-hold {\n\t\tmargin-top: 66px;\n}\n\n.benefits .btn-hold {\n\t\tmargin-top: 63px;\n}\n\n.about .btn-hold {\n\t\tmargin-top: 59px;\n}\n\n.btn {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\ttext-decoration: none;\n\t\tcolor: #fff;\n\t\tvertical-align: top;\n}\n\n.btn .t {\n\t\tposition: relative;\n\t\tfont-family: \"Myriad Pro Cond\", \"Trebuchet MS\", Arial, Helvetica, sans-serif;\n\t\tfont-weight: 600;\n\t\tfont-style: italic;\n\t\tfont-size: 33px;\n\t\ttext-transform: uppercase;\n\t\tletter-spacing: 1px;\n\t\tdisplay: inline-block;\n\t\tpadding: 3px 41px 0 41px;\n\t\theight: 77px;\n\t\tline-height: 77px;\n\t\tdisplay: block;\n\t\ttext-align: left;\n}\n\n.top-text .btn,\n.top-text .btn .t {\n\t\tdisplay: inline-block;\n}\n\n.top-text .btn .t {\n\t\tpadding-left: 87px;\n\t\tpadding-right: 87px;\n\t\theight: 68px;\n\t\tline-height: 68px;\n}\n\n.btn .b {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tright: 0;\n\t\tbottom: 0;\n\t\t-moz-transform: skew(-10deg);\n\t\t-o-transform: skew(-10deg);\n\t\t-webkit-transform: skew(-10deg);\n\t\ttransform: skew(-10deg);\n}\n\n.btn:hover .b {\nfilter:progid:DXImageTransform    Microsoft.Alpha(opacity=90);\n\t\topacity: 0.9;\n}\n\n.top-text .btn .b {\n\t\tbackground: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHh"..., 6910}], 1)

So it looks like a bug: openLiteSpeed ignores option "Max MMAP File Size" and always uses sendfile when it enabled. This behavior reduces page loading speed when it has a lot of js-, css- & small images.

$ /usr/local/lsws/bin/litespeed --version
LiteSpeed/1.3.9 Open

Openlitespeed was stoped when add Mod LUA

I have installed Openlitespeed (OLS) on MAC & CentOS. When I added mod_lua into modules and restart OLS. they are the same error such as OLS was stopped.

OS: MacOS & CentOS
Screenshot:
screen shot 2017-09-15 at 11 12 10 pm
screen shot 2017-09-15 at 11 13 45 pm

When restart OLS I received error log.
Error log info:
2017-09-15 23:08:32.417 [INFO] [PlainConf] [httpServerConfig:] start parsing file /usr/local/lsws/conf/httpd_config.conf
2017-09-15 23:08:32.417 [INFO] [PlainConf] [httpServerConfig:] Failed to RCS checkin conf file /usr/local/lsws/conf/httpd_config.conf0, ret 32512, error(Invalid argument). Org command is ci -l -q -t-"/usr/local/lsws/conf/httpd_config.conf0" -mUpdate "/usr/local/lsws/conf/httpd_config.conf0" >/dev/null 2>&1.
2017-09-15 23:08:32.417 [NOTICE] Loading LiteSpeed/1.4.27 Open ...
2017-09-15 23:08:32.417 [NOTICE] Using [OpenSSL 1.0.2m-dev xx XXX xxxx]
2017-09-15 23:08:32.420 [NOTICE] [ADMIN] server socket: uds://usr/local/lsws/admin/tmp/admin.sock.7124
2017-09-15 23:08:32.420 [NOTICE] chroot is disabled.
2017-09-15 23:08:32.420 [INFO] old priority: 0, new priority: 0
2017-09-15 23:08:32.420 [INFO] [config:server:basics2] For better obscurity, server version number is hidden in the response header.
2017-09-15 23:08:32.425 [INFO] [PlainConf] Failed to RCS checkin conf file /usr/local/lsws/conf/mime.properties0, ret 32512, error(Bad file descriptor). Org command is ci -l -q -t-"/usr/local/lsws/conf/mime.properties0" -mUpdate "/usr/local/lsws/conf/mime.properties0" >/dev/null 2>&1.
2017-09-15 23:08:32.425 [NOTICE] [PID: 18889]: forked cgid: 18893
2017-09-15 23:08:32.425 [INFO] [PlainConf] [adminConfig:] start parsing file /usr/local/lsws/admin/conf/admin_config.conf
2017-09-15 23:08:32.430 [INFO] [PlainConf] [adminConfig:] Failed to RCS checkin conf file /usr/local/lsws/admin/conf/admin_config.conf0, ret 32512, error(Bad file descriptor). Org command is ci -l -q -t-"/usr/local/lsws/admin/conf/admin_config.conf0" -mUpdate "/usr/local/lsws/admin/conf/admin_config.conf0" >/dev/null 2>&1.
2017-09-15 23:08:32.431 [INFO] [Module: modcompress 1.1] has been initialized successfully
2017-09-15 23:08:32.431 [INFO] [Module: moddecompress 1.1] has been initialized successfully
2017-09-15 23:08:32.431 [INFO] [Module: cache 1.54] has been initialized successfully

cipher issues

Hello,
cipher tuning is broken on 1.2.5 built with libssl-dev 1.0.1-4ubuntu5.10 (12.04LTS), returning only RC4-SHA with most settings, something to do with sslcontext.cpp?
Same settings give propery results on LSWS standard 4.2.5.

NSPOSIXErrorDomain on Safari 9.0

Hello,

Litespeed is configured with SSL through HTTP/2, SPDY/2 and SPDY/3, but everytime I do a POST request, Safari shuts down the request with NSPOSIXErrorDomain, the cipher is starting with "ECDHE-RSA-AES128-GCM-SHA256".

TLS 1.1 / 1.2 are used, tried enabling TLS 1.0 and SSLv3 but no success right here.

Best regards.

503 error

Hello.

OLS 1.3.12

root 11541 S openlitespeed (lshttpd - main)
root 11542 S _ openlitespeed (lscgid)
user 11544 SN | _ lsphp
user 11545 SN | _ lsphp
nobody 11543 S _ openlitespeed (lshttpd - #1)

When 503 error occurs 'lshttpd' process under user 'nobody' tries to kill lsphp process and get:
getppid() = 11541
kill(11544, SIG_0) = -1 EPERM (Operation not permitted)
kill(11545, SIG_0) = -1 EPERM (Operation not permitted)

and so it goes until the lsws is restarted manually.

I suppose it has to do 'lscgid' under 'root' user? It's a bug?

Litespeed-repo and OpenLitespped do not support Oracle Enterprise Linux 7

Oracle Enterprise Linux is RHEL re-compiled version, and RHEL, CentOS perfect compatibility. Compared to CentOS updates faster.

But the Litespeed-repo and OpenLitespped binary packages are not supported on Oracle Enterprise Linux.

Retrieving http://rpms.litespeedtech.com/centos/litespeed-repo-1.1-1.el7.noarch.rpm
Error: Failed dependencies:
Centos-release> = 5 is needed by litespeed-repo-1.1-1.el7.centos.noarch

Hope the OLS team can increase support for Oracle Enterprise Linux, which does not require a lot of work or add a repo to maintain.

lswsctrl stop leave an openlitespeed process alive

Hello !
Doing tests with openlitespeed master under ubuntu 14.04 64bits when I call:

lswsctrl stop

The server stop reponding and almost all openlitespeed processes are removed except one, after several stop/start I have several openlitespeed processes.

I discovered it by accident when trying to update the openlitespeed binary after stopping the server and I was getting "text busy" error.

Cheers !

Custom 401 error page

Hello, is there any option to override the 401 error pages as well? It seems to work only for 404 errors.

I've placed 401.html custom error file in vhost document root and set the configuration for virtual host error page in the vconf.conf file:

errorpage 401 {
  url                     /401.html
}

Any ideas are welcome or if this is a confirmed bug. Thank you.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.