标签: httpd

.htaccess 中 <Location> 的等价物是什么?

我正在设置 Trac,并希望按照此处的建议对登录页面进行密码保护 我在共享主机设置上,所以我不能修改 httpd.conf,我必须使用 .htacces。如何仅限制登录页面而不限制其他页面?Trac 文档建议:

<Location "/trac/login">
  AuthType Basic
  AuthName "Trac"
  AuthUserFile /somewhere/trac.htpasswd
  Require valid-user
</Location>
Run Code Online (Sandbox Code Playgroud)

但是Location 标签只适用于httpd.conf,它在.htaccess 中不起作用。我怎样才能得到同样的效果?没有将 .htaccess 文件放入的“登录”目录,它需要进入主 trac 目录。

httpd apache-2.2

9
推荐指数
1
解决办法
1万
查看次数

验证来自此 IP 的 http 请求除外

我在这里的服务器上运行 Nagios(CentOS 5.3 w/ Apache 2.2.3-22.el5.centos)验证我的 LDAP 服务器,并且一切正常。但是,我希望有一些 IP 能够在不进行身份验证的情况下查看 Nagios 状态页面。Nagios 有这个选项可以将用户分配给不进行身份验证的人:

authorized_for_read_only=guest
default_user_name=guest
Run Code Online (Sandbox Code Playgroud)

听起来不错,但这并没有考虑到 Apache 身份验证。我当前的 apache 配置如下所示:

<Directory "/usr/lib64/nagios/cgi">
   AllowOverride None
   Order allow,deny
   Allow from all
   AuthName "Nagios Access"
   AuthType Basic
   AuthUserFile /etc/nagios/misc/htpasswd.users
   Require valid-user

   AuthBasicProvider file ldap
   AuthzLDAPAuthoritative off
   AuthBasicAuthoritative On
   AuthLDAPGroupAttribute LDAPmember
   AuthLDAPURL (my server stuff)
   Require ldap-group CN=nagios,ou=groups,DC=local
</Directory>
Run Code Online (Sandbox Code Playgroud)

那行得通,但我想用某种方式说“这里的这个 IP,他可以跳过那些认证的东西”。Apache Satisfy指令看起来可以工作,所以我尝试了这个:

<Directory "/usr/lib64/nagios/cgi">
   AllowOverride None
   Order allow,deny
   Allow from (IP)  <---- changed
   Deny from all    <---- changed
   Satisfy any      <---- changed
   AuthName …
Run Code Online (Sandbox Code Playgroud)

httpd authentication apache-2.2

9
推荐指数
1
解决办法
5527
查看次数

httpd 已死但子系统已锁定

我今天在php.ini中修改了max_execution_time,当我重新启动服务器时,出现此错误:

Stopping httpd:                                            [FAILED]
Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
Run Code Online (Sandbox Code Playgroud)

我杀死了 httpd proc : killall httpd,并开始正常运行,但是我无法在服务器上打开任何网站。

服务 httpd 状态输出:

httpd dead but subsys locked
Run Code Online (Sandbox Code Playgroud)

我从 /var/lock/subsys/ 中删除了 httpd 文件

:S 同样的问题。

请帮忙!

http -S 输出:

VirtualHost configuration:
188.165.241.194:80     is a NameVirtualHost
         default server default (/etc/httpd/conf.d/zz010_psa_httpd.conf:47)
         port 80 namevhost default (/etc/httpd/conf.d/zz010_psa_httpd.conf:47)
         port 80 …
Run Code Online (Sandbox Code Playgroud)

linux httpd centos apache-2.2

9
推荐指数
1
解决办法
4万
查看次数

apache 中的 MaxClients。如何知道我的进程的大小?

来自http://httpd.apache.org/docs/2.2/misc/perf-tuning.html

影响网络服务器性能的最大硬件问题是 RAM。网络服务器永远不必交换,因为交换会增加每个请求的延迟,超出用户认为“足够快”的程度。这会导致用户停止并重新加载,从而进一步增加负载。您可以并且应该控制 MaxClients 设置,这样您的服务器就不会产生太多的子项而开始交换。执行此操作的过程很简单:通过诸如 top 之类的工具查看您的进程列表,确定您的平均 Apache 进程的大小,并将其划分为您的总可用内存,为其他进程留出一些空间。

主要问题是我不明白如何知道大小,因为,我的 httpd 大小不再是 3888

但是,如果我们需要确定 MaxClients 的数量,并且我有 4GB 的 RAM,那么我得到:972,那么我应该在 MaxClients 中使用 900 吗?

httpd apache-2.2

9
推荐指数
1
解决办法
2万
查看次数

Apache“httpd”进程,利用我所有的服务器内存

我的小型 ec2 实例有 1.7 GB 内存,运行基于 CentOS 的 Amazon AMI,在 Apache 使用过多内存时存在问题。如果你看一下截图,内存使用率将在 90-100%,直到我重新启动 httpd 服务,它会重新开始,增加到 90+%。

在此处输入图片说明

我真的很感激有关如何定位问题的一些帮助。这可能是“正常”的 apache 行为,以利用所有可用内存吗?或者是否有我必须追捕的可能泄漏。目前,我对可能发生的事情感到有些困惑。

我们正在使用 Apache MPM prefork,没有 sql 或任何类似的东西——只有 apache。网站在这里

memory httpd lamp memory-usage apache-2.2

9
推荐指数
1
解决办法
2万
查看次数

如何使用 SELinux 在 CentOS 上运行 PhantomJS?

我试图在我的 CentOS 5 机器上使用 PhantomJS 制作屏幕截图,但我无法让它与 SELinux 一起工作。它在禁用 SELinux 的同一台机器上工作,所以我真的怀疑 SELinux 对此负责。

这是我尝试过的(所有命令都以 root 身份运行),以及我得到的错误:

$ ls -Z /usr/local/phantomjs/phantomjs-1.6.2-linux-x86_64-dynamic/bin

-rwxr-xr-x  myusername myusername system_u:object_r:bin_t          phantomjs
Run Code Online (Sandbox Code Playgroud)

尝试截图 - 失败

$ cat /var/log/messages | grep avc

Sep 13 12:21:18 myserver kernel: type=1400 audit(1347531678.014:398): avc:  denied  { getattr } for  pid=6842 comm="sh" path="/sbin/ldconfig" dev=dm-0 ino=3097762 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:ldconfig_exec_t:s0 tclass=file
Sep 13 12:21:18 myserver kernel: type=1400 audit(1347531678.014:399): avc:  denied  { getattr } for  pid=6842 comm="sh" path="/sbin/ldconfig" dev=dm-0 ino=3097762 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:ldconfig_exec_t:s0 tclass=file
Sep 13 12:21:18 myserver kernel: …
Run Code Online (Sandbox Code Playgroud)

httpd selinux centos phantomjs

9
推荐指数
1
解决办法
4854
查看次数

为什么 apache httpd 告诉我我的基于名称的虚拟主机仅适用于启用 SNI 的浏览器(RFC 4366)

为什么 apache 在我的日志中给我这个错误信息?是假阳性吗?

[warn] Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)
Run Code Online (Sandbox Code Playgroud)

我最近从 Centos 5.7 升级到 6.3,然后升级到更新的 httpd 版本。我总是像下面这样进行我的 ssl 虚拟主机配置。共享相同证书(大多数/总是通配符证书)的所有域共享相同的 ip。但是以前从未收到过此错误消息(或者我是否在日志中查看得不够多?)据我所知,这应该可以在没有 SNI(服务器名称指示)的情况下工作

这是我的 httpd.conf 文件的相关部分。如果没有这个 VirtualHost,我就不会收到错误消息。

NameVirtualHost 10.101.0.135:443

<VirtualHost 10.101.0.135:443>
  ServerName sub1.domain.com

  SSLEngine on
  SSLProtocol -all +SSLv3 +TLSv1
  SSLCipherSuite ALL:!aNull:!EDH:!DH:!ADH:!eNull:!LOW:!EXP:RC4+RSA+SHA1:+HIGH:+MEDIUM
  SSLCertificateFile /opt/RootLive/etc/ssl/ssl.crt/wild.fareoffice.com.crt
  SSLCertificateKeyFile /opt/RootLive/etc/ssl/ssl.key/wild.fareoffice.com.key
  SSLCertificateChainFile /opt/RootLive/etc/ssl/ca/geotrust-ca.pem
</VirtualHost>

<VirtualHost 10.101.0.135:443>
  ServerName sub2.domain.com

  SSLEngine on
  SSLProtocol -all +SSLv3 +TLSv1
  SSLCipherSuite ALL:!aNull:!EDH:!DH:!ADH:!eNull:!LOW:!EXP:RC4+RSA+SHA1:+HIGH:+MEDIUM
  SSLCertificateFile /opt/RootLive/etc/ssl/ssl.crt/wild.fareoffice.com.crt
  SSLCertificateKeyFile /opt/RootLive/etc/ssl/ssl.key/wild.fareoffice.com.key
  SSLCertificateChainFile /opt/RootLive/etc/ssl/ca/geotrust-ca.pem
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

httpd ssl-certificate sni

9
推荐指数
1
解决办法
6万
查看次数

设置 nginx.conf 以拒绝除某些文件或目录之外的所有连接

我正在尝试设置 Nginx,以便拒绝与我的数字 ip 的所有连接,除了一些任意目录和文件。因此,如果有人访问我的 IP,他们可以访问 index.php 文件,例如 phpmyadmin 目录,但如果他们尝试访问任何其他目录,他们将被拒绝。

这是我的服务器块nginx.conf

server {
        listen       80;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm index.php;
        }

        location ~ \.php$ {
            root           html;
            fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME /srv/http/nginx/$fastcgi_script_name;
            include        fastcgi_params;
        }
}
Run Code Online (Sandbox Code Playgroud)

我将如何进行?非常感谢!

linux nginx httpd web-server

8
推荐指数
1
解决办法
6万
查看次数

Apache + PHP-FPM = 随机“错误解析脚本头”+ 段错误

我使用 proxy_fcgi 在 Apache 2.4 上设置了 PHP-FPM,一切正常,但是 4-6 个请求中的每个请求,Apache 都会返回一个空白页面。这发生在我的主站点http://danielhe.com/ 上,但不是子域 vhosts。

这会显示 Apache 的错误日志,[client x] AH01070: Error parsing script headers

最终,有时 Apache segfaults AH00052: child pid 9740 exit signal Segmentation fault (11)

通过多次刷新页面,我可以很容易地重现“错误解析脚本标题”,但是在几次“错误解析脚本标题”之后,段错误会随机发生

更新 我找到了段错误的修复程序,并且 WSOD 显然已自行修复。mod_deflate 有一些问题,但是 Apache 文档中的这个配置修复了它

SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# Don't compress images
SetEnvIfNoCase Request_URI \
\.(?:gif|jpeg|jpg|png)$ no-gzip dont-vary
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
Run Code Online (Sandbox Code Playgroud)

php httpd php-fpm apache-2.4

8
推荐指数
1
解决办法
8993
查看次数

Apache 2.4 上的 Catch-All HTTPS Vhost

是否可以在 Apache 2.4 上配置一个包罗万象的(默认)HTTPS Vhost?我目前有 4 个域,并且一个 HTTP 捕获所有域,但是一旦我尝试添加任何类型的配置,我的其他虚拟主机就会中断。这是我的配置的样子:

<VirtualHost _default_:80>
    # Default catch-all virtual host.
    Redirect permanent / https://example-prod.com
</VirtualHost>

<VirtualHost _default_:80>
    ServerName example-prod.com
    ServerName www.example-prod.com
    Include conf/sites/example-prod.com.conf
</VirtualHost>

<VirtualHost _default_:80>
    ServerName example-dev.com
    Include conf/sites/example-dev.com.conf
</VirtualHost>

#
# This is the virtual host I'm missing and that I cannot get to work.
#
#<VirtualHost _default_:443>
#   # Default catch-all virtual host.
#   ServerAlias *
#   SSLEngine on
#   SSLCertificateFile "C:/prod/hosts.crt.pem"
#   SSLCertificateKeyFile "C:/prod/hosts.key.pem"
#   SSLCertificateChainFile "C:/prod/intermediate.crt.pem"  
#   Redirect permanent …
Run Code Online (Sandbox Code Playgroud)

httpd httpd.conf virtualhost apache-2.4

8
推荐指数
1
解决办法
2万
查看次数