Articles of apache 2.2

Apache安全configuration – Ubuntu 12

我在Ubuntu 12上运行LAMP堆栈,主要function是为基于PHP的API提供服务。 只有一个文件我想暴露给公众: api.php 它需要引用一个configuration文件,我在/cfg/api-config.php中包含db密码,这样API可以写入数据库等 所以我只希望api.php被apache“服务”并公开。 我放在/ cfg中的configuration文件必须可以被api.php读取,但任何可能访问该网站的人都不能读取。 我没有.htaccess ,只是一个httpd.confconfiguration如下。 <VirtualHost *:44448> DocumentRoot "/api" ServerName localhost:44448 ServerAlias Server.local DirectoryIndex index.html CustomLog "/var/log/apache_access.log" combined ErrorLog "/var/log/apache_error.log" SetEnv APPLICATION_ENV development php_flag magic_quotes_gpc off <Directory "/api"> Options Indexes MultiViews FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost> 我的/cfg和/api文件夹的权限是: drwxr-xr-x和我的敏感configuration文件的权限位于/cfg/api-config.php db密码是-rw-r–r– 我想知道是否有人可以告诉我,如果这是正确和安全的设置? 因此: A)除/api/api.php以外的所有文件都不公开,并且不能访问我的服务器文件。 B)configuration文件的密码为db(对于api)也是不可读的访问该网站的任何人? 我试图通过在chmod 777 […]

redirect到index.html.var

我的默认networking服务器是Apache,我在我的帐户上安装了节点并安装了Ghost平台。 节点在特定的端口上运行,因此我创build了一个.htaccess文件,将所有来自端口80的请求redirect到安装节点的端口。 问题是,在一台服务器上redirect工作正常,而在另一台服务器上,主页redirect到index.html.var可能是什么问题? 以下是我的.htaccess的代码 Options +FollowSymLinks -Indexes IndexIgnore * <IfModule mod_rewrite.c> RewriteEngine on # Simple URL redirect: RewriteRule ^(.*)$ http://mydomain.com:6366/$1 [P] </IfModule> 请让我知道我错过了什么。

当原始请求通过https进行时,位置标头中的http

我目前在我们的生产环境中实现了https ,但是我正在为这个小东西挠头。 SSL在负载均衡器中终止,我们的堆栈中的stream程基本上是这样的: 生产 :浏览器< – https – >负载均衡器< – http – > Apache < – http – >负载均衡器< – http – > Tomcat testing :浏览器< – https – > nginx < – http – >负载均衡器< – http – > Tomcat 当我通过HTTPS访问我们的login页面时: 请求标头 POST /login/form HTTP/1.1 Host: www.example.org Connection: keep-alive Content-Length: 74 Cache-Control: max-age=0 Origin: […]

正好60秒后清漆503错误…如何更改此超时值?

我在Drupal站点上运行Apache上的清漆。 我有一个PHP脚本,在我网站的某个path上执行,需要很长时间,比如60-120秒。 当试图访问该页面时,清漆总是在60秒后给我503大师冥想超时。 我已经尝试设置清漆connect_timeout到一个非常高的价值…我已经尝试在Apache的php.ini中设置所有的超时值,以真正的高值…但没有运气:清漆完全60秒后一直给我503错误。 所以这里是我的问题:这个60秒的超时值是从哪里来的? 我在这里拉我的头发 (仅供参考:如果我将Varnish从图片中删除,Apache会在60-120秒后按预期的方式投放页面,这让我觉得暂停时间必须在Varnish的某个地方…)。

Apache虚拟主机 – 一个站点,两个IP地址

是否可以configuration一个Apache(v2.x,在Plesk 10.4.4下运行)虚拟主机一次侦听两个IP地址? 我们正在将一个站点从服务器上的一个IP移动到另一个IP(这样我们就可以安装一个SSL – 不幸的是,SNI不是一种select),并希望站点在两个IP上保持活动状态,以避免停机,直到DNS更改完成。 所以现在开始,比如说1.1.1.1,我们希望它继续在1.1.1.1上工作,但是同时也在1.1.1.2上工作,直到DNS完成,然后它可以是1.1.1.2。 这是否像复制虚拟主机条目和更改IP一样简单,还是有更多/更less的呢?

内部服务器错误和进程正常终止失败

内部服务器错误是在浏览器中注册,在Apache错误日志文件我只能看到下面的警告同时抛出: [警告] mod_fcgid:进程XXXXX优雅杀死失败,发送SIGKILL 这两个错误是相互关联的吗?

将MaxRequestsPerChild设置为1的mpm_prefork模块有什么问题

对于我的应用程序,我不得不为这个configuration工作: <IfModule mpm_prefork_module> MaxRequestsPerChild 1 </IfModule> 我可以遇到这个configuration有什么问题。

在VirtualHost中需要ServerName

我有以下CNAMElogging:pear.example.com 然后我有一个VirtualHost条目: <VirtualHost *:80> ServerName pear.example.com DocumentRoot /var/www/pearsite <Directory /var/www/pearsite> AllowOverride All Order allow,deny Allow from All </Directory> </VirtualHost> 我不想向inputexample.com的用户显示/var/www/pearsite 。 example.com应显示禁止。 有没有办法用Apache来实现这一点?

SSL连接不能使用公共IP地址

编辑:问题解决了,它确实是服务器的防火墙阻挡端口443。一切正在工作 我试图在ubuntu上运行的apache服务器上安装一个自签名的SSL证书。 我允许使用SSL模块,编辑default-ssl.conf文件,并将创build自签名证书时将ServerName作为CommonName放置的IP地址。 我编辑了文件中.crt和.key文件的位置。 然后我启用了default-ssl.conf文件并重新启动了apache。 我每次检查5次,所以我很确定我没有犯错。 当我尝试访问https://ip_address它不会加载。 我检查了443端口是开放的。 有没有办法看到问题的位置? 我只是不知道下一步该怎么做。 我通过SSH访问服务器。 这是我目前的默认-ssl.conf: <IfModule mod_ssl.c> <VirtualHost *:443> ServerAdmin [email protected] ServerName 54.82.28.171:443 DocumentRoot /var/www <Directory /> Options FollowSymLinksAllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog […]

除了使用.htaccess的一个path之外的每个URL强制使用SSL

我试图强制执行每个url除了第一个段/preview之外的SSL。 http://test.example.com/preview/blah/blah 应该被规则忽视; 每个其他的URL都应该被强制使用SSL。 我使用的是CentOS 6.4,Apache和CodeIgniter。 我的.htaccess文件: RewriteEngine On RewriteBase / RewriteCond %{HTTPS} !=on RewriteCond %{REQUEST_URI} !^/preview/ RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [L] 通常,CI URL在被最后一条规则重写之前看起来像这样: http://test.example.com/index.php?/preview/blah/blah 我试过了: RewriteCond %{HTTPS} !=on RewriteCond %{REQUEST_URI} !^/index.php?/preview/ RewriteCond %{REQUEST_URI} !^/preview/ RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 那也行不通。 我究竟做错了什么?