http://httpd.apache.org/docs/trunk/mod/mod_authn_core.html#authtype谈论"AuthType None",并且有一个很棒的例子,说明我需要做什么 - 不幸的是,它似乎是2.3的新功能/2.4.2.2中有没有相同的功能?
身份验证类型无禁用身份验证.启用身份验证后,除非指定了其他身份验证类型,否则通常会由每个后续配置节继承.如果对经过身份验证的部分的子部分不需要身份验证,则可以使用身份验证类型None; 在以下示例中,客户端可以访问/ www/docs/public目录而无需进行身份验证:
Run Code Online (Sandbox Code Playgroud)<Directory /www/docs> AuthType Basic AuthName Documents AuthBasicProvider file AuthUserFile /usr/local/apache/passwd/passwords Require valid-user </Directory> <Directory /www/docs/public> AuthType None Require all granted </Directory>
我正在使用fabric远程启动微型aws服务器,安装git和git存储库,调整apache配置然后重启服务器.
如果在任何时候,我发布fabfile文件
sudo('service apache2 restart')
或者run('sudo service apache2 restart')
一个停止然后一个开始,该命令显然运行,我得到响应表明apache已经启动,例如
[ec2-184-73-1-113.compute-1.amazonaws.com] sudo: service apache2 start
[ec2-184-73-1-113.compute-1.amazonaws.com] out: * Starting web server apache2
[ec2-184-73-1-113.compute-1.amazonaws.com] out: ...done.
[ec2-184-73-1-113.compute-1.amazonaws.com] out:
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试连接,则拒绝连接,如果我ssh进入服务器并运行
sudo service apache2 status
它说" Apache is NOT running
"
如果sshed,如果运行
sudo service apache start
,服务器启动,我可以连接.还有其他人经历过这个吗?或者是否有人有任何关于我可以在哪里看的提示,在日志文件等中找出已发生的事情.什么都没有apache2/error.log
,syslog
或者auth.log
.
这不是什么大不了的事,我可以解决它.我只是不喜欢这种无声的失败.
我看了一遍,但一直在运行相同的信息,谈论目录级IP限制,通常看起来像这样:
Order Deny,Allow
Deny from all
Allow from 123.123.123.123
Run Code Online (Sandbox Code Playgroud)
是否可以将相同类型的访问限制绑定到页面/文档?
我在服务器上安装了Apache 2.2.8,我正在尝试使用它X-SendFile
来提供视频文件.
不幸的是,有些设备,比如iPad,似乎需要Byte Range
为文件服务,但我无法Accept-Ranges
使用X-SendFile
.
这是代码
header("Content-type: application/octet-stream");
header('Content-Disposition: attachment; filename="' . basename($file_name) . '"');
header('Accept-Ranges: bytes');
header("X-Sendfile: $file_name");
Run Code Online (Sandbox Code Playgroud)
我想避免从php发送字节块导致的开销和复杂性.
我有什么和工作:
我正在使用Apache HTTPD 2.2进行代理请求.我有多个ProxyPass映射:
ProxyRequests On
<Proxy *>
AddDefaultCharset off
Order deny,allow
Allow from all
</Proxy>
ProxyPreserveHost Off
ProxyPass /a http://some_ip/
ProxyPassReverse /a http://some_ip/
ProxyPass /b http://some_other_ip/
ProxyPassReverse /b http://some_other_ip/
...
Run Code Online (Sandbox Code Playgroud)
这很好用.
我想要的是:
我的一些请求需要更长的时间,所以他们超时给我一个代理错误 - 原因:从远程服务器读取错误.
我想为timeout
我的所有要求设置.我可以这样做而无需timeout=... KeepAlive=On
为每个ProxyPass
映射添加吗?
我目前有类似的东西:
ProxyPass /a http://some_ip/ timeout=1200 KeepAlive=On
ProxyPassReverse /a http://some_ip/
ProxyPass /b http://some_other_ip/ timeout=1200 KeepAlive=On
ProxyPassReverse /b http://some_other_ip/
... and i do this for all my ProxyPass mappings
Run Code Online (Sandbox Code Playgroud)
我能以某种方式告诉Apache 为所有映射添加timeout …
我有apache配置之类的
CookieTracking On
<Proxy balancer://my-cluster>
BalancerMember http://my-server:8084 loadfactor=1 ping=10 ttl=300 timeout=120
</Proxy>
ProxyPass /mystuff balancer://my-cluster
ProxyPassReverse /mystuff balancer://my-cluster
Run Code Online (Sandbox Code Playgroud)
但是cookie不会my-server
在第一次调用时传递给它.随后的调用很好.我猜这是因为CookieTracking
在响应上设置cookie,而不是请求.
类似的行为,如果我使用mod_rewrite
与mod_unique_id
猿什么mod_usertrack
呢:
RewriteEngine On
RewriteCond %{HTTP_COOKIE} !^.*tracking_id.*$ [NC]
RewriteRule ^/ - [CO=tracking_id:%{ENV:UNIQUE_ID}:%{HTTP_HOST}:525600:/]
Run Code Online (Sandbox Code Playgroud)
无论如何都要添加一个cookie,以便它出现在下游应用程序的请求cookie中
甚至可以记录我刚刚创建的cookie.这不起作用(大概是因为C
请求cookie)
LogFormat "%{tracking_id}C"
Run Code Online (Sandbox Code Playgroud) 我试图确定为什么Authorization:
使用本地开发服务器时使用标头的受保护资源的身份验证行为正常,而不是我部署的apache 2.2 w/mod_wsgi实现.
我正在使用django 1.8 django-rest-framework
和django-rest-framework-jwt
基于JWT的身份验证的lib.apache服务器版本为2.2,带有mod_wsgi.这都是在ubuntu 12.04实例(python 2.7)上运行的.
在localhost上使用manage.py runserver的工作案例:
# manage.py runserver is running
curl -s -X POST \
-d '{"username":"test@test.com", "password":}' \
http://localhost:8000/portfolio/login
# Response as expected:
##> {"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6Ikp..."}
# Using above token as $TOKEN_STR with JWT prefix for Auth header:
curl -X GET -H "Content-Type: application/json" \
-H "Authorization: $TOKEN_STR" \
http://localhost:8000/portfolio
# Response as expected
##> {"data":"[...]"}
Run Code Online (Sandbox Code Playgroud)
用apache2.2 mod_wsgi破案:
curl -s -X POST \
-d '{"username":"test@test.com", "password":}' \
http://myremote.com/django/portfolio/login
# Response …
Run Code Online (Sandbox Code Playgroud) 似乎是apache的地方所以这里去:)
古老的问题:我如何重定向HTTP-> HTTPS,然后只有在HTTPS时才进行身份验证?
哦 - 我想把它大部分放在一个可以包含在多个<directory>或<location>块中的片段中,所以没有基于虚拟主机级别随机路径的重写...
好吧,这就是我所拥有的似乎有用的东西:
在VirtualHost块的顶部
# Set ssl_off environment variable
RewriteEngine on
RewriteCond %{HTTPS} =on
RewriteRule ^ - [E=ssl]
Run Code Online (Sandbox Code Playgroud)
在位置或目录块中
RewriteEngine on
# Case 1 redirect port 80 SSL
RewriteCond %{HTTPS} !=on
RewriteCond %{SERVER_PORT} =80
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [R=301]
AuthType Basic
AuthBasicProvider external
AuthExternal auth_pam
AuthName "My Underpants"
AuthzUnixgroup on
Order Deny,Allow
Deny from all
Allow from env=!ssl
Satisfy any
Require group nice-users
Run Code Online (Sandbox Code Playgroud)
加号
所有这些条件都可以将Require's抽象为一个片段文件,以便在每个位置包含在一行中
它修复了强制每个位置的SSL和身份验证,因此错误的可能性更小
弊
血淋淋的地狱,这很难直观!我所知道的一切可能都很脆弱......
有没有更好的方法(不是我发现的......)?
如果有任何严重的缺陷,将非常欢迎评论:)
如果Apache有一个合理的配置语法与泛型,Aside Life会更容易
<If expression> </ If> …
我有一个/var/www/icons
在我的Web服务器上调用的目录,它在我的Apache配置中也被引用为别名,如下所示:
Alias /icons/ "/var/www/icons/"
Run Code Online (Sandbox Code Playgroud)
该目录包含许多未使用AFAIK的小型PNG和GIF,以及README文件.
我可以安全地从我的Apache配置中删除这个别名吗?如果没有,我的申请的哪个方面是删除这可能会产生的影响?
这个目录中的文档很少,我必须承认,直到现在我还没有遇到它.
这个脚本:
use warnings FATAL => 'all';
warn 'warning';
die 'death';
Run Code Online (Sandbox Code Playgroud)
...导致'警告'被记录,但不会在那时死亡,而是死于'死亡'.
我有一个mod_perl模块,它覆盖$main::SIG{__DIE__}
了在开发过程中基本上向浏览器吐出die()消息,但它没有触及SIG{__WARN__}
,所以这里发生了什么?
这是在Windows Server 2003上的perl 5.10.1,在PerlSwitches中使用"-w".
apache2.2 ×10
apache ×5
apache2 ×3
mod-rewrite ×2
.htaccess ×1
django ×1
fabric ×1
httpd.conf ×1
mod-perl ×1
mod-proxy ×1
mod-wsgi ×1
perl ×1
python-2.6 ×1
ssh ×1
ubuntu-10.04 ×1
vhosts ×1
warnings ×1
webserver ×1