Articles of apache 2.2

如何使Apache的mod_rewrite默认通过HTTPSredirect?

假设我有一个通过HTTPS提供的网站,例如https://example.com/foo 。 考虑下面的.htaccess : RewriteBase / RewriteEngine On RewriteRule ^foo$ bar [R=301,L] 现在,当我访问https://example.com/foo ,它会通过HTTP而不是HTTPSredirect到http://example.com/bar 。 我怎样才能使它转到HTTPS而不是使用R标志的每个RewriteRule使用完整的scheme+主机? 也就是说,这会做我以后的事情: RewriteBase / RewriteEngine On RewriteRule ^foo$ https://example.com/bar [R=301,L] 但是,我的.htaccess文件包含许多这样的RewriteRule ,感觉应该有一种方式告诉Apache / mod_rewrite“重写为https://默认情况下”。 我真正想要的是告诉Apache网站使用的是HTTPS,类似于通过ServerName foo.ext声明主机名的ServerName foo.ext 。 那可能吗? 我猜这是堆栈溢出类似的问题: 如何说服Apache的原始客户端协议

Apache 2.2的mod_rewriteredirect一些url到https和强制他人的http

我在共享主机上有我的页面。 一般来说,该网站可以使用http和https访问。 该页面投放广告,而且大部分广告都不能使用https,因此我只希望通过https访问pipe理部分。 我想要的是: http://myurl.com/auth -> https://myurl.com/auth http://myurl.com/admin -> https://myurl.com/admin https://myurl.com/allotherstuff -> http://myurl.com/allotherstuf 基本上所有的授权和承认请求都应该被redirect到使用ssl。 其他站点的请求应该从httpsredirect到http(如果使用https请求页面)。 我尝试了下面的.htaccess文件,这使得“auth”和“admin”无法访问(太多的redirect)。 <IfModule mod_rewrite.c> RewriteEngine On #Redirect other sites to http RewriteCond %{HTTPS} =on RewriteCond %{REQUEST_URI} !^/?auth.*$ RewriteCond %{REQUEST_URI} !^/?admin.*$ RewriteRule ^/?(.*) http://%{SERVER_NAME}/$1 [R,L] #Redirect auth and admin to https RewriteCond %{HTTPS} !=on RewriteRule ^/?auth/(.*) https://%{SERVER_NAME}/auth/$1 [R,L] RewriteCond %{HTTPS} !=on RewriteRule […]

Apache似乎没有使用多个核心

我有一台配有16GB内存的专用服务器,运行Centos 7的Xeon E5504(8核2.0GHZ)。我运行了顶层命令,可以看到7个内核在大部分时间都处于闲置状态,然后是一个内核全力以赴 我看到它超过100%,我不明白。 %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 16479600 total, 1233968 free, 616824 used, 14628808 buff/cache KiB Swap: 523260 total, 499720 free, 23540 used. 15342640 avail Mem 该服务器仅用作Web主机。 Apache,MySQL和PHP。 我havnt从默认configuration做了任何更改的Apache。 我听说默认的apacheconfiguration支持multithreading,但显然不是这种情况。 mysqld和httpd是唯一使用大量资源的东西。 总共apache每周获得大约10万个请求。 绰绰有余的这台服务器,但作为我继续增加更多的网站,我不想慢下来,因为一切都在同一个CPU上。 我读到它似乎“prefork”需要修改,以使Apache获得更多的资源。 我运行以下命令来查看默认configuration,它看起来不像prefork甚至安装 /usr/sbin/apachectl -l Compiled in […]

httpd在bash中作为第二个命令重新加载失败

我试图运行一个命令,执行一个动作,更新证书,然后重新加载Apache。 要做到这一点,我运行以下: sudo /home/ec2-user/letsencrypt/letsencrypt-auto –config /home/ec2-user/letsencrypt/cert.ini certonly –debug && service httpd reload 这给了我以下内容: Updating letsencrypt and virtual environment dependencies…… Requesting root privileges to run with virtualenv: /root/.local/share/letsencrypt/bin/letsencrypt –config /home/ec2-user/letsencrypt/secure_textinconfidence_com.ini certonly –debug Version: 1.1-20080819 Version: 1.1-20080819 IMPORTANT NOTES: – Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/secure.textinconfidence.com/fullchain.pem. Your cert will expire on 2016-05-03. To […]

在Linux服务器上隔离虚拟主机的最佳方法是什么?

首先,我想知道什么是隔离Apache的虚拟主机的最好方法。 我想这也是Linux文件系统的一些问题,因为在/var/www/site1.com/public_html和/var/www/site2.com/public_html类的文件夹(和文件)不是一个好习惯。相同的Linux用户/组。 我发现这个类似的post: 从系统的其余部分分离Apache虚拟主机,但注意到这是关于从系统隔离虚拟主机。 一个很好的做法,但不是我所做的。 我不希望任何可能的方式, site1.com可以访问site1.com文件,如果可能的site2.com ,除了它自己的目录和子目录,文件系统也不需要任何东西。 其次,chmod对用户权限的影响是什么。 假设两个网站都在自己的用户和用户组中运行。 但site1.com有一个文件或目录与chmod权利777. site2.com将能够使用该文件/目录?

奇怪的错误日志导致Apache服务器重新启动

有一些错误日志[Wed May 11 13:27:36 2016] [错误] [客户端157.55.39.65](36)文件名太长:访问 / \ XC3 \ X83 \ XC6 \ X92 \ XC3 \ 86 \ XE2 \ X80 \ X99 \ XC3 \ X83 \ XE2 \ X80 \ XA0 \ XC3 \ XA2 \ XE2 \ X82 \ XAC \ XE2 \ X84 \ XA2 \ XC3 \ […]

在Apache conf指令中包含文本文件

我需要将Alias添加到服务器的主Web指令中,我不想通过主configuration文件来完成。 例如,我想知道是否有办法将另一个文件中的文本包含到指令中 <VirtualHost *:80> DocumentRoot /var/www ServerName *.website.co Alias "/old_directory" "/var/www/old_content/old_directory/" </VirtualHost> 因此,如果URL与old_directory匹配,那么用户将被提供别名。 上面的工作正常,但是我想使这个dynamic和不移动主规则到一个单独的conf文件。 所以像这样的东西: <VirtualHost *:80> DocumentRoot /var/www ServerName *.website.co * include a file /var/www/alias/alias.txt </VirtualHost> 在alias.txt文件中,我将有一个别名列表 Alias "/old_directory" "/var/www/old_content/old_directory/" Alias "/old_directory1" "/var/www/old_content/old_directory/1" Alias "/old_directory2" "/var/www/old_content/old_directory/2" Alias "/old_directory3" "/var/www/old_content/old_directory/3" etc. 在这种情况下,我不想将主要的虚拟主机指令移出主要的configuration文件,当试图使用“包含”选项复制另一个文件中的规则时,它忽略了那个,因为它已经被声明了。 有没有包括这样的,还是有更好的方法来处理这个?

apache进程closures服务器的stream量

我们在CentOS 7上运行LAMP堆栈。大概一年没事了。 但是今天我们只看到了loading averages 。 我们检查top没有看到任何高负载的特定进程,但有一个非常多的Apache进程stream运行。 试图重新启动Apache几次,但没有帮助。 最后决定重新启动MySQL 。 这短暂地减less了负载,但不是很长。 然后决定重新启动服务器。 这也只是简单地减less了负载。 日志不显示太多的外部连接: $ sudo tail -n 500 /var/log/httpd/access_log | cut -d' ' -f1 | sort | uniq -c | sort -gr 395 ::1 101 127.0.0.1 3 66.102.6.91 1 66.102.6.89 会发生什么事? 我们如何解决这个问题? 编辑1:更多细节 负荷平均值介于50和300之间。在某一点上,我们有这样的: $ uptime 10:33:28 up 317 days, 22:36, 2 users, load average: […]

阿帕奇偶尔崩溃,错误503

我正在运行一个名为KOHA的图书pipe理软件。 一周一次或两次,服务器返回“503服务不可用”。 我可以访问主页,但是当我search一本书的时候,我得到了503.同样,员工可以login到员工页面,但是当他们login后执行某些操作时,他们会得到相同的错误。 我得到这些在我的Apache日志中: [Sun Sep 04 14:22:30.246305 2016] [proxy:error] [pid 27422] (2)No such file or directory: AH02454: HTTP: attempt to connect to Unix domain socket /var/run/koha/nitc/plack.sock (localhost) failed [Sun Sep 04 14:22:30.246380 2016] [proxy:error] [pid 27422] AH00959: ap_proxy_connect_backend disabling worker for (localhost) for 60s [Sun Sep 04 14:22:30.246394 2016] [proxy_http:error] [pid 27422] [client 192.168.65.199:56448] […]

用stracedebugging慢速WordPress站点

我试图find一个非常缓慢的WordPress网站的底部:请求一个页面,它挂起大约20秒,才开始加载页面。 我试过平常的事情:WPdebugging模式,检查慢MySQL查询,禁用插件,检查Apache不排队请求等,没有喜悦。 我现在用strace来看Apache的过程(我正在运行PHP作为mod_php),试图看看发生了什么。 不幸的是我的核心function很弱,我需要一些帮助来解释strace输出。 我正在用-r运行strace,如果我正确理解man页面,这将显示前一个sys调用的时间。 看看输出,我看到几个电话5秒,例如: 0.000114 accept4(4, {sa_family=AF_INET6, sin6_port=htons(46242), inet_pton(AF_INET6, "::ffff:127.0.0.1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28], SOCK_CLOEXEC) = 13 0.000116 getsockname(13, {sa_family=AF_INET6, sin6_port=htons(80), inet_pton(AF_INET6, "::ffff:127.0.0.1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 0 0.000109 fcntl(13, F_GETFL) = 0x2 (flags O_RDWR) 0.000061 fcntl(13, F_SETFL, O_RDWR|O_NONBLOCK) = 0 0.000078 read(13, "GET /wp-content/uploads/fake-ici"…, 8000) = 593 0.000144 stat("/var/www/wp-content/uploads/fake-icicles-500×500.jpg", {st_mode=S_IFREG|0777, st_size=34241, […]