Articles of apache 2.4

nginx的proxy_pass,腐败的PDF文件时传回?

我有一个非常恼人的问题,而PDF的我试图从网站下载得到腐败。 他们生成的很好(我可以看到,如果我通过SFTP从他们被放置在临时文件夹下载)。 location ~ \.cgi$ { #try_files $uri =404; gzip off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $host; proxy_pass http://127.0.0.1:8181; } Perl代码非常简单(我不会打扰把PDF生成代码,以及工作正常); my $filepath = qq|/home/fatpeter/web/site.com/cgi-bin/hotels/admin/tmp_pdf/| . CORE::time() . q|.pdf|; $pdf->to_file($filepath); $file_name =~ s/\-/_/sig; my $size = -s $filepath; my $file = \do { local *FH; *FH }; open $file, "<$filepath" or die […]

一个Apache虚拟站点不能正常工作

我现在处于完全的失落状态,并没有得到任何研究和研究。 我使用DigitalOcean并拥有运行Apache Web服务器的Ubuntu 14.04 Droplet。 我有大约15个虚拟主机。 其中一人突然停止了回应。 我得到了一个@请求的URL /test.htm在这个服务器错误中找不到。 我可以将现有的虚拟主机切换到与非工作的主机相同的目录,并且完美地工作 – 所以这不是权限问题。 我删除了不工作的主机,并重新创build它。 不起作用。 我的.conf文件看起来都一样(减去明显的URL和目录)。 错误日志中没有显示任何内容。 请注意:这用于工作。 它做了一年多了。 没有做任何事情的服务器。 DocumentRoot /var/www/informeddev ServerName subdomain.domain.com <Directory /var/www/informeddev> allow from all Options None Require all granted </Directory>

与SSL和非SSL域的VirtualHost相匹配的问题

我有5个域的设置。 他们在<VirtualHost *:80>有非SSL的logging。 他们每个人都有自己的logging下前。 <VirtualHost 172.30.0.245:443> ServerName www.acme.com ServerAlias acme.com ,因为他们有不同的IP和SSL证书。 这工作正常。 我还有一个通用logging<VirtualHost *:80> ,它位于文件001-vhosts.conf中。 它捕获的stream量不是我的域名。 如果它与我的某些域不匹配,则返回410.这也可以正常工作。 如果我将http://test.com指向服务器的IP,它将转到通用logging并返回410。 问题是我为SSL <VirtualHost *:443>添加通用logging。 如果我打开https://test.com它匹配<VirtualHost 172.30.0.245:443>而不是通用logging。 我希望stream量是不是我的域名返回410,无论是http或https。 我使用AWS,通常有这样的stream量。 我错过了什么? 我有5个域的设置。 他们在<VirtualHost *:80>有非SSL的logging。 他们每个人都有自己的logging下前。 <VirtualHost 172.30.0.245:443> ServerName www.acme.com ServerAlias acme.com ,因为他们有不同的IP和SSL证书。 这工作正常。 我还有一个通用logging<VirtualHost *:80> ,它位于文件001-vhosts.conf中。 它捕获的stream量不是我的域名。 如果它与我的某些域不匹配,则返回410.这也可以正常工作。 如果我将http://test.com指向服务器的IP,它将转到通用logging并返回410。 问题是我为SSL <VirtualHost *:443>添加通用logging。 如果我打开https://test.com它匹配<VirtualHost 172.30.0.245:443>而不是通用logging。 我希望stream量是不是我的域名返回410,无论是http或https。 我使用AWS,通常有这样的stream量。 我错过了什么? 命令sudo apache2ctl -S返回: […]

使用apache 2.4的openldapauthentication

我试图限制访问一个文件夹使用一个经过身份validation的LDAP用户,这用来在UBUNBT 14.04上使用Apache,但现在即时通讯设法我到16.04,但它不工作,我得到AH1618用户没有发现错误,IM肯定它的东西简单:) 用户在这个“域” ou=Users,dc=ldap,dc=kattronics,dc=com 当访问网页,我得到提示input密码是好的,但是我得到这个错误。 [auth_basic:error] [pid 10821] [client 10.0.5.167:58662] AH01618:用户lasse.knudsen未find:/ 也许在斜线中有一条线索 debugging是为apache2启用的 AH01694:auth_ldapauthentication:用户lasse.knudsenauthentication失败; URI / [LDAP:ldap_simple_bind()失败] [无法联系LDAP服务器](不权威) 不能联系LDAP服务器,困惑我,主机确实解决。 任何人都可以指引我正确的方向。 从Apache网站configuration目录条目 <Directory /var/www/html> AuthName "Restricted – Kattronics Users Only" AuthType Basic #Satisfy any AuthBasicProvider ldap AuthLDAPUrl "ldaps://dc2-ldap001:636/ou=Users,dc=ldap,dc=kattronics,dc=com?uid" AuthLDAPBindDN "ou=Users,dc=ldap,dc=kattronics,dc=com" AuthLDAPBindAuthoritative off AuthLDAPGroupAttribute memberUid AuthLDAPGroupAttributeIsDN off #Require valid-user Require ldap-user # Gives error AH01618 </Directory> 下面的解决方法 […]

如何使Tomcat 8.5 RewriteValve使用AJP1.3 JKMount?

前提 在安装了最新Apache2的Ubuntu 16.04服务器上,我有不同的虚拟主机, 每个人都正确configuration(并使用Let's Encrypt进行保护): / etc / apache2 / sites-enabled / my.site.com-le-ssl.conf / etc / apache2 / sites-enabled / my.other.site.com-le-ssl.conf 指向下面的静态内容: /var/www/my.site.com/ /var/www/my.other.site.com/ 这工作正常 : 通过调用https://my.site.com/我看到/var/www/my.site.com/包含的静态网站。 然后,我安装了Tomcat 8.5.9并使用反向代理进行了保护 ,因此添加了以下内容: <VirtualHost *:443> . . . JKMount /* ajp13_worker . . . </VirtualHost> 到/ etc / apache2 / sites-enabled / my.site.com-le-ssl.conf 。 这也工作正常 : 通过调用https://my.site.com/现在我看到了Tomcat的家。 期望的目标 […]

当文件名包含“pm”时,403禁止错误

我有一个服务器与Perl脚本运行Apache,一些PDF生成随机生成的文件名,今天我们遇到了一个问题,其中的文件名 document_pmEifLziBABVSGdFIsbjYgkVaInQlZ.pdf 该文件的权限与其他所有pdf文件相同,试图访问该文件给apache一个403,改名为 document_EifLziBABVSGdFIsbjYgkVaInQlZ.pdf 允许下载文件没有任何问题,改变文件名 document_pm.pdf 给了403 pm.pdf 允许下载 有没有人遇到类似的问题? 这可能与perl扩展名.pm相关吗? 下面是httpd.conf ### Section 1: Global Environment ServerTokens OS ServerRoot "/etc/httpd" PidFile run/httpd.pid Timeout 300 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 300 ## Server-Pool Size Regulation (MPM specific) <IfModule prefork.c> StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 256 MaxClients 256 MaxRequestsPerChild 4000 </IfModule> <IfModule worker.c> StartServers […]

php7.0-fpm不能在Ubuntu-16.04上使用apache2.4

我正在使用Ubuntu-16.04来build立一个Apache服务器。 我使用php-fpm来处理php文件。 我跟着这个post 。 configuration完成后,我的apache2和php7.0-fpm服务正确重启。 但是,当我浏览一个PHP文件,我得到一个纯文件。 似乎没有PHP CGI来处理PHP文件。 我怎么了? 我是新来的Apache。 所以我不知道要粘贴什么configuration。 我会根据你的答案发布必要的configuration。 谢谢! 我的安装步骤: 安装PHP和PHP-fpm: sudo apt-get install php libapache2-mod-php sudo apt-get install libapache2-mod-fastcgi php7.0-fpm 启用fastcgi mods sudo a2dismod php mpm_prefork sudo a2enmod actions fastcgi alias mpm_worker 为php7.0-fpm创build一个全局configuration sudo vim /etc/apache2/conf-available/php7.0-fpm.conf 并在configuration中写入: <IfModule mod_fastcgi.c> AddHandler php7.0-fcgi .php Action php7.0.fcgi /php7.0.fcgi Alias /php7.0-fcgi /usr/lib/cgi-bin/php7.0.fcgi FastCgiExternalServer /usr/lib/cgi-bin/php7.0.fcgi […]

使用Fail2ban自动阻止请求特定URL的IP

从这个问题我跟着这个回答。 我做了一个filter,并在fail2banconfiguration文件中启用它。 这是filter: # Fail2Ban filter to web requests for home directories on Apache servers [INCLUDES] before = apache-common.conf [Definition] failregex = ^<HOST> -.*"(GET|POST).*/wp-login.php/.*$ ignoreregex = Fail2ban无法启动,因为错误(我无法从日志中明确地看到错误),我的语法有什么问题?

Apache2将根重写到testing服务器上的各个子目录/子网站

我正在从旧的Debian 6服务器迁移到一个漂亮的新的Ubuntu 16.04服务器。 在我们的Debian服务器上,我们有主域,但也有几个子域(每个都有.conf文件),比如: http://www.example.com http://dev.example.com http://db.example.com 在新服务器上,因为我们还没有一个指向IP地址的域名,但是我们必须testing迁移的网站,所以我使用了下面的.conf文件: <VirtualHost *:80> ServerAdmin [email protected] Alias /prod /var/www/example.com/web Alias /dev /var/www/dev.example.com/web Alias /db /var/www/db.example.com/public_html DirectoryIndex index.php </VirtualHost> 所以,如果我想在每个环境中进入主页,我使用这些URL: http://11.22.33.44/prod/ http://11.22.33.44/dev/ http://11.22.33.44/db/ 现在,在开发网站,我有漂亮的URLredirect规则,如: RewriteRule ^pretty-url /path/to/content [L,R=301] 问题是,如果我导航到http://11.22.33.44/dev/pretty-url ,它会将我redirect到http://11.22.33.44/path/to/content , 而不是 http://11.22.33.44/dev/path/to/content 。 鉴于我不能使用一个指令,如ServerName dev.11.22.33.44或ServerName 11.22.33.44/dev ,我不想改变Web目录中的.htaccess文件 – 我的.conf文件应该是什么样子允许IP地址上有多个“站点”,每个站点映射到一个子目录,并正确地重写到该子目录?

使用Apache和mod_wsgi的HTTP 503错误

我在Django中编写了一个webapp,我使用mod_wsgi在Apache 2.4下运行。 乍一看,它工作正常。 但是,当Apache进程运行了一段时间后,webapp开始响应503错误。 在F5之后,你可以通过很多次。 令人讨厌的是我没有任何与我的Apache error.log相关的任何东西 ,所以我不知道从哪里开始debugging。 我唯一的领导是浏览器中显示的错误: 503 Service Unavailable 。 其他网站(PHP)不受影响。 重新启动Apache服务器可以立即解决问题。 我的这个webapp的Apacheconfiguration: WSGIDaemonProcess app python-path=/opt/app home=/opt/app WSGIProcessGroup app WSGIScriptAlias /app /opt/app/wsgi.py 我发现这个,但我不认为这是问题,因为套接字已经放在/var/run/apache2/在我的情况(不是“Apache日志目录”)。 这个目录对其他人是可读的。 套接字本身有模式700 ,但拥有正确的所有者( www-data )。 有任何想法吗? 编辑: 我注意到,当问题发生时,我重新启动Apache来修复它,Apache需要很长的时间才能退出。 在错误日志中,我发现这些消息: [Sun Jun 25 14:14:18.935566 2017] [core:warn] [pid 374:tid 140587055682752] AH00045: child process 21761 still did not exit, sending a SIGTERM […]