Articles of apache2

为什么当Apache不能通过Apache proxy的时候呢?

我在我的apache服务器上有一个SSL主机,在VirtualHost中有以下内容: <VirtualHost 217.147.92.100:443> ServerName server.com ServerAdmin [email protected] DocumentRoot /somepath/ ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /etc/something/fullchain.pem SSLCertificateKeyFile /etc/something/privkey.pem <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory /usr/lib/cgi-bin> SSLOptions +StdEnvVars </Directory> BrowserMatch "MSIE [2-6]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 # MSIE 7 and newer should be able to use keepalive BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown SSLProxyEngine […]

AWStats不再显示Referrers /关键字/关键字句

我和我的同事正在努力寻找AWStats的一个奇怪问题的解决scheme。 几个月前,我们把生产环境从CentOS移到Ubuntu 14.04。 从那以后,Referrers部分不再显示浏览器/外部页面访问,而Search关键字和search关键字部分是空的。 你有什么线索可能导致这个? 这里是我们目前的软件版本: Ubuntu 14.04内核3.13.0-108-generic Apache2:2.4.10 Perl:5.18.2 Awstats:6.6 build 1.887 Apache2日志configuration: LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent CustomLog /var/log/apache2/access.log combined Awstats日志configuration: LogFile="/var/log/apache2/access.log" LogFormat=1“LogType=W` LogSeparator=" " 从日志中提取: 109.239.235.240 – – [31/Aug/2017:12:52:19 […]

Amazon EC2 apache根目录丢失文件读取权限。 有任何想法吗?

发生了什么: 我开发了一个LAMP网站,客户要求我把它安装到他们的EC2实例,Amazon Linux AMI release 2017.03 通常我将它们放在我的Centos服务器或一些正常的虚拟主机提供程序中。 我在8月17日安装了这个站点,一切正常,每天大概有2000个访问者。 客户今天打电话,那个网站是closures的。 错误500。 我login并立即看到recursion的web根文件夹中的所有文件都丢失了全部r位。 所有其他权利,如w,x和粘性位不受影响。 我为用户和组织拼凑了一切,一切又开始了。 错误日志: [Wed Sep 06 16:01:01.734067 2017] [mpm_prefork:notice] [pid 14111] AH00171: Graceful restart requested, doing restart [Wed Sep 06 16:01:02.327167 2017] [auth_digest:notice] [pid 14111] AH01757: generating secret for digest authentication … [Wed Sep 06 16:01:02.329737 2017] [lbmethod_heartbeat:notice] [pid 14111] AH02282: No slotmem from […]

Tomcat8无法升级TLS版本

我有一个Tomcat8实例运行在Apache服务器后面,负责SSL卸载。 部署在Tomcat上的Java webapp需要连接到仅支持TLSv1.2的外部服务。 我添加了-Dhttps.protocols = TLSv1.2到Tomcat的setenv.sh。 但是我仍然看到Tomcat试图与TLSv1协商[2]作为支持最高的TLS版本,同时连接到外部服务。 所以,我最终得到错误[1],而连接。 我如何得到这个工作? 我需要更改Apache Web服务器上的任何configuration吗? PS:在我只有Tomcat8的本地机器上添加上面的标志(TLS升级到v1.2)。 [1] Caused by: javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated at sun.security.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:421) at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128) at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:572) at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180) at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294) at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:641) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:480) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:1066) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:1044) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:1035) [2] %% No cached client session *** ClientHello, TLSv1 …. …. ajp-nio-8009-exec-10, READ: TLSv1.2 […]

apache进程和pageloads / views / hits之间的关系

当我运行ps aux命令时,我看到/usr/sbin/apache2 -k start (在Ubuntu机器上)和/usr/sbin/httpd -k start (在Centos中)有很多条目。 我已经从某个地方看过,这些条目中的每一个都是一个apache进程,它是事先创build的,以便为将来的服务器请求做好准备。 所以,据我所知,这些apache进程中的每一个都是为http请求提供服务,并在作业完成后closures,其他进程将被创build以为将来的其他请求做好准备。 我不清楚的是,每个Apache进程将服务页面载入或命中? (由于每个页面载入可能有几十个命中)。 我在问这个问题,因为我看到了两种不同的Ubuntu和Centos行为。 我对Ubuntu更加熟悉,当我有很多命中不存在的页面时,我的Ubuntu机器从未遇到过高负载问题(当我说不存在的页面时,这意味着文件不存在于服务器中,不会被.htaccess文件重写成一个php文件) 但是,最近我必须pipe理一个Centos服务器。 我看到一些不好的机器人只是在1-2秒内将20-30次命中到不存在的页面上,每次发生的时候,平均负载都会很高,而且我也看到很多/usr/sbin/httpd -k start从ps aux命令/usr/sbin/httpd -k startinput。 所以我猜Centos会为每个命中使用一个httpd进程,而在ubuntu中,每个apache进程都可以用于多个命中。 这是正确的猜测吗? 如果这是正确的,我认为与Ubuntu相比,Centos是非常低效的。 任何人都可以澄清这些点,以便我可以看到我失踪? 非常感谢你! 更新1 : 我也看到了另一个区别:当我从ubuntu机器打开一个url时,一个/usr/bin/php5-cgi进程被创build,并且这个进程仍然在那里很长时间(小时),即使pageload在1- 2秒。 所以我想这个PHP进程是持有一些caching信息,以便它可以用于服务下一个页面请求(我没有看到一个新的/usr/bin/php5-cgi进程,当我继续浏览到另一个页面) 但在Centos机器上,当我访问一个页面,如果我很幸运,我可以看到一个/opt/cpanel/ea-php56/root/usr/bin/php-cgi进程,并且这个进程在1-2秒后立即消失 更新2 这里是/etc/apache2/apache2.conf(Ubuntu)的内容 # This is the main Apache server configuration file. It contains the # configuration directives that give the server its instructions. […]

重写规则失去了查询参数

我有一个运行apache2和php7的networking服务器。 在我的apacheconfiguration中,有如下的redirect规则: RewriteCond %{HTTP_HOST} !^www.* RewriteRule .* %{HTTP:X-Forwarded-Proto}://www.%{HTTP_HOST}%{REQUEST_URI} [QSA,R=301,L] 这应该执行http(s)://example.com/scpript?param1=x&param2=yredirect到http(s)://www.example.com/scpript?param1=x&param2=y 它基本上工作,只有一个例外:只有第一个getparameter passing给rewitten url,所以我的客户端实际上收到http(s)://www.example.com/scpript?param1=x作为redirect目标。 我很困惑,我怎么让系统通过完整的查询呢? 如果还试过 RewriteRule .* %{HTTP:X-Forwarded-Proto}://www.%{HTTP_HOST}%{REQUEST_URI}?%{QUERY_STRING} [QSA,R=301,L] 但是,这会将我redirect到http(s)://www.example.com/scpript?param1=x&param1=x 。 在重写开始之前,它看起来像是省略了其他参数。

WebDAV“添加networking位置”在Windows 10中无效

我已经使用Apache2在Ubuntu服务器上通过https(自签名)创build了一个WebDAV共享。 当我尝试将其添加为networking位置(在Windows 10上)时,它失败,说该文件夹无效。 我试图映射到一个驱动器使用net use p: https://example.com/webdav但它失败说System error 1790 has occurred. The network logon failed. System error 1790 has occurred. The network logon failed. 我的Apacheconfiguration是: Alias /webdav /var/www/webdav <Directory /var/www/webdav> DAV On AuthType Digest AuthName "webdav" AuthUserFile /etc/apache2/users.password Require valid-user RewriteEngine off Satisfy all Order allow,deny Allow from all ForceType application/octet-stream Options Indexes </Directory> Cyber​​duck可以使用https连接到驱动器。 […]

使用Google 2因素authentication可以密码保护apache目录吗?

我知道如何用htaccess密码保护apache目录。 是否可以使用Google 2因素authentication受保护的目录?

支持nginx反向代理的Apache + SVN服务器validation

我有一个运行在nginx反向代理之后的Apache2 / svn服务器。 基本authentication是由nginx完成的,所以基本上,反向代理背后的Apache2服务器不需要做任何authentication的事情。 我有一个在svn mod_authz_svn授权configuration中的用户的条目: [/] * = r test = rw 用户testing可以签出但不能提交。 我不知道如何提供authentication的用户从nginx到托pipesvn安装的apache2服务器。 我试过的: 在nginx反向代理中设置远程用户HTTP标头 proxy_set_header REMOTE_USER $remote_user; 转发授权标题 proxy_set_header Authorization $http_authorization; proxy_pass_header Authorization;

如何通过虚拟环境路由HTTPS URL

我在虚拟环境中设置安全路由时遇到问题。 对网站和REST API的所有HTTP请求都正常工作。 证书由我工作的公司提供,并且是我们域的通配证书。 我的问题是证书的位置,这是我无法访问。 我试图在许多地方configurationSSL,但它只能部分工作。 为了尝试路线,我使用邮差和一个普通的浏览器(Chrome)。 我可以成功访问网页,login,用JSON发送请求到REST API。 所有url都以http://开头。 当我做的完全一样,但与https:// ,浏览器显示该网站是不安全的。 邮递员也显示连接到URL时出错。 http://不会发生这种情况。 设置看起来像这样: 我的虚拟系统的设置 网关服务器作为多个虚拟机的入口。 我的应用程序运行在其中之一。 网关运行apache2以方便路由到它托pipe的所有虚拟机。 而且,它是所有虚拟环境中SSL相关事务的处理程序。 我正在开发基于Symfony框架的PHP Web应用程序。 为了实现与此应用程序的持续集成,我们在Docker实例中运行应用程序。 在Jenkins成功构build之后,脚本会启动一个新的Docker镜像。 Docker映像运行托pipe我的应用程序的Nginx服务器 。 我曾尝试在我的Nginxconfiguration和apache2configuration中configuration证书。 两者都没有成功的结果。 我发现通配符证书不适用于子子域。 因此,我认为my-app.development.mycompany.com将无法正常工作。 将URL更改为development.mycompany.com/my-app/失败,因为PHP应用程序在/my-app/ part中find了。 这导致应用程序的路由select问题,并阻止其他虚拟机的应用程序。 我想了解如何configurationapache2主机来处理SSL。 为了能够在未来在这个虚拟环境中开发更多的应用程序,我想设置这个,以便HTTPS覆盖所有的虚拟机。 为什么此设置适用于HTTP,但不适用于HTTPS? 入口点的虚拟主机configuration可以在下面find <VirtualHost *:444> ServerName development.mycompany.com SSLEngine on SSLCertificateFile /etc/apache2/ssl/certificate_bundle.crt SSLCertificateKeyFile /etc/apache2/ssl/certificate.key #RewriteEngine on ProxyPreserveHost On <Proxy *> Order Deny,Allow […]