Articles of apache 2.4

如何使用Apache为不同的主机名提供同一站点的2个版本

我期待为用户提供testing新function的testing版。 我使用Symfony框架运行我的网站。 目前我有以下工作configuration: mysite.com: <VirtualHost *:80> DocumentRoot /var/www/html/mysite/current/web ServerName mysite.com ServerAlias www.mysite.com <Directory "/var/www/html/mysite/current/web"> AllowOverride None Order Allow,Deny Allow from All <IfModule mod_rewrite.c> Options -MultiViews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ app.php [QSA,L] </IfModule> </Directory> </VirtualHost> 我尝试使用以下configuration为我的网站提供testing版本: <VirtualHost *:80> DocumentRoot /var/www/html/mysite_beta/current/web ServerName beta.mysite.com <Directory /var/www/html/mysite_beta/current/web> AllowOverride None Require all granted Allow from All <IfModule […]

Apache SSL握手缓慢

我正在运行在Ubuntu 16.04.1 LTS下运行的Apache 2.4.18服务器,只安装了PHP 7和Exim 4。 在清晨,SSL握手非常快,大约200毫秒,但随着时间的推移它增加了(约1小时后),8秒左右。 如果我重新启动Apache,SSL会再次变快,但过了一段时间后又会变慢,返回到8秒,有时会达到30秒。 我configuration了Apache ssh.conf(etc / apache2 / mods-enabled)如下: SSLRandomSeed startup builtin SSLRandomSeed startup file:/dev/urandom 512 SSLRandomSeed connect builtin SSLRandomSeed connect file:/dev/urandom 512 AddType application/x-x509-ca-cert .crt AddType application/x-pkcs7-crl .crl SSLPassPhraseDialog exec:/usr/share/apache2/ask-for-passphrase SSLSessionCache shmcb:${APACHE_RUN_DIR}/ssl_scache(512000) SSLSessionCacheTimeout 300 SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS SSLHonorCipherOrder on SSLProtocol all -SSLv3 SSLCompression off SSLSessionTickets off SSLUseStapling on SSLStaplingResponderTimeout 5 […]

让我们encryptionArch Linux上的Apache 2.4.23产生“无法连接”的错误

我有一个完全更新的运行Apache 2.4.23的Arch Linux服务器。 在过去,我已经成功地使用StartSSL在我的Apache Web服务器上启用HTTPS。 但是现在我想切换到Let's Encrypt。 使用certbot standalone,我已经产生了这些文件: /etc/letsencrypt/live/[my domain]/cert.pem /etc/letsencrypt/live/[my domain]/chain.pem /etc/letsencrypt/live/[my domain]/fullchain.pem /etc/letsencrypt/live/[my domain]/privkey.pem 这里是我的Apache SSL指令: SSLEngine on SSLCertificateKeyFile /etc/letsencrypt/live/[my domain]/privkey.pem SSLCertificateFile /etc/letsencrypt/live/[my domain]/cert.pem SSLCertificateChainFile /etc/letsencrypt/live/[my domain]/chain.pem # HSTS (mod_headers is required) (15768000 seconds = 6 months) Header always set Strict-Transport-Security "max-age=15768000" SSLProtocol +TLSv1.2 我仔细检查了[我的域名]是否正确,并重新启动Apache没有产生任何错误,但试图到达我的服务器,现在我的networking浏览器给我“无法连接”错误。 我错过了什么吗? 谢谢!

通过SSL使用Apache时,POST请求随机丢弃

我遇到的问题与这个问题差不多 。 不过,我使用的是Apache 2.4.6的CentOS 7。 我的网站是在WordPress的。 有时当我或其他用户提交表单时,浏览器会说服务器意外地断开了连接。 我在Google上已经找不到这个了。 在浏览器端,我听说删除cookie和其他网站数据有帮助,但我想知道如何防止这个问题的其他用户。 这也在SSL上。 这是我的SSLconfiguration: <VirtualHost _default_:443> DocumentRoot "/var/www/html" ServerName cocreationcoaching.org:443 ErrorLog logs/ssl_error_log TransferLog logs/ssl_access_log LogLevel warn SSLEngine on SSLProtocol all -SSLv2 -SSLv3 SSLHonorCipherOrder on SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH Header always set Strict-Transport-Security "max-age=63072000; preload" Header always set X-Frame-Options DENY Header always set X-Content-Type-Options nosniff SSLCompression off SSLUseStapling on SSLCertificateFile /root/cocreationcoaching.org.crt […]

在Apache反向代理中使用AddOutputFilterByType时ERR_INCOMPLETE_CHUNKED_ENCODING

我试图在Apache2反向代理背后使用Docker来build立一个Shopware站点。 由于Shopware软件出于某种原因将其后端主机“ http://127.0.0.1:18084 ”放入发送给浏览器的JavaScript中,我试图用mod_substitute将其replace为外部主机名: ProxyPass / http://127.0.0.1:18084/ ProxyPassReverse / http://127.0.0.1:18084/ <Location /> AddOutputFilterByType SUBSTITUTE text/html application/javascript Substitute "s!127.0.0.1:18084!my.real.domain.de!in" </Location> 这是行得通的,即主机名被replace。 但是,有些JavaScript文件是使用分块编码发送的,这会导致浏览器出现问题(从JS控制台输出): GET http://my.real.domain.de/engine/Library/ExtJs/ext-all.js?201611281529 net::ERR_INCOMPLETE_CHUNKED_ENCODING 我的第一个想法是replace与块长度混乱,但是当我删除Substitute线时也会出现这个问题。 只是有一个AddOutputFilterByType行的内容types的application/javascript导致的问题。 反向代理Apache是​​2.4.7版本,后端apache是​​2.4.18。 我做错了什么,或者这是一个Apache的问题? (有一些Apache的反向代理搞乱了2.2中的最后一个,空的块,但我认为这应该是现在修复) 更新: ezra_s指出,我应该确保浏览器caching不会发挥到这一点。 我使用curl检查: 在主机conf中没有AddOutputFilterByType和没有Substitute行,JS文件被完全传输(大约1259k字节)。 只需启用AddOutputFilterByType行,就可以得到以下输出: here:~ tos$ curl http://my.real.domain.de/engine/Library/ExtJs/ext-all.js?201611281529 /* This file is part of Ext JS 4.1 Copyright (c) 2011-2012 Sencha Inc Contact: http://www.sencha.com/contact GNU […]

是否有一个Apache环境variables可以有多长时间的限制?

是否有类似的LimitRequestFieldsize应用长度限制的环境variables? 换句话说,一个环境variables的值是可以任意设定的,否则会被限制在一定的限度? 如果没有,是否有设置太长的环境variables的实际问题? 谢谢!

为什么Ubuntu的默认PHP 7.0.13几乎是ppa的两倍:ondrej / php PHP 7.0.15?

所以我的意图是真正的基准如何我们目前的应用程序生成的报告在php5,php7和php7-fpm。 我使用Ubuntu 16.04在DigitalOcean上启动了一个2gb实例,并安装了apache2和php7。 testing运行约9秒,并生成一个报告10次(ab -k -c 2 -n 10)。 然后我安装了ppa:ondrej / php并升级并再次运行(仍然在php7.0上,但现在从ppa)。 16秒的结果有点令人惊讶。 我切换到php5.6,它运行了18秒。 然后我清除了ppa,并从ubuntu的repo中恢复了php7,并在大约10秒钟内再次运行。 那为什么这么慢?

Nginx的根前缀与其他子文件夹?

我花了很多小时,看似简单的configuration,但我不知道正确的configuration:( 我有2个不同的应用程序,我必须服务2个不同的url。 这个应用程序下的所有东西都需要抓住所有的index.php。 示例:(公用URL =>服务path(应用程序)) https://example.com/ => /var/public/index.php https://example.com/xy => /var/public/index.php https://example.com/xy/zw => /var/public/index.php 但! https://example.com/api/v2 => /api/public/index.php https://example.com/api/v2/xy => /api/public/index.php https://example.com/api/v2/xy/test => /api/public/index.php 我也有Apache的反向代理configuration:(仅用于重写/ API / V2到/ api /公共,所以只有nginx / api /公共URI显示 – 反向代理需要,我只有1个公共IP,但许多网站) <VirtualHost *:443> ServerName xxx.com <Proxy *> Order deny,allow Allow from all </Proxy> SSLEngine On SSLCertificateFile /etc/apache2/cert/xxx.com.pem SSLCertificateKeyFile /etc/apache2/cert/xxx.com.key SSLCertificateChainFile /etc/apache2/cert/yyyy.pem […]

Nginx的Http安全链接模块不工作

我正在使用nginx secure_link来防止video从热链接。 如果主服务器密钥匹配远程服务器密钥。 video将能够访问/观看。 否则,如果用户访问链接直接没有MD5链接video返回403。 。 。 md5键匹配主键和远程键。 而服务器的时间是一样的。 。 。 主服务器(Apache)像这样生成链接。 http://remote_example.com/videos/myvideo.mp4?st=E_Jb6MScgyMqjUo3eNQGkA&e=1485757614 。 。 远程服务器nginxconfiguration。 “mypassword”与主服务器设置相同。 使用VestaCP面板的远程服务器。 location ^~ /videos/ { alias /home/admin/web/example.com/public_html/videos; secure_link $arg_st,$arg_e; secure_link_md5 mypassword$uri$arg_e; if ($secure_link = "") { return 403; # invalid hash or direct link } if ($secure_link = "0") { return 410; # link expired } mp4; gzip […]

Apache与mod_wsgi – 如何拒绝请求,如果所有线程都忙?

我们有一个运行Apache的服务器,其中一个虚拟主机使用mod_wsgi来根据请求运行繁重的任务。 服务器可以一次处理X个请求,每个请求将运行约10分钟。 如果所有线程都处于忙碌状态,我不希望让新客户端等待,如果没有线程空闲,我想让服务器立即以503状态响应。 我试图使用各种超时来实现这一点,但它不能按需要工作。 这是我试过的(只有一个线程),但它使新的客户端等待1800秒,然后以504状态响应。 WSGIDaemonProcess xxx user=xxx group=xxx processes=1 threads=1 connect-timeout=10 queue-timeout=10 deadlock-timeout=2000 socket-timeout=1800 listen-backlog=0 我怎样才能使服务器只接受与WSGI守护进程的线程一样多的连接? (服务器运行Apache 14.04和mod_wsgi 4.5)