我正在尝试为广告图片(gif,jpg,swf)服务设置反向缓存代理.代理工作正常并将请求发送到源服务器,但我似乎无法弄清楚为什么内容没有被缓存.我目前的配置如下.目标是缓存与/ ca / URI前缀匹配的所有请求.原始服务器正在为原始服务器标头上设置的干净URL,没有文件扩展名,Cache-control max-age = 1周的文件提供服务.
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<IfModule mod_disk_cache.c>
CacheEnable disk /
CacheRoot "/var/cache/mod_proxy"
CacheDirLevels 3
CacheDirLength 5
CacheIgnoreCacheControl On
</IfModule>
RewriteCond %{REQUEST_URI} ^/ca/*
RewriteRule ^/(.*)$ http://origin.webserver.com/$1 [P,L]
目前,我见过的唯一缓存实际上是在代理服务器上访问的本地文件,我正在寻找我所缺少的内容,以便从原始服务器获取内容以进行缓存.
我想知道是否与mod_cache没有缓存有关,因为内容是从源服务器获取的,而不是磁盘上的位置.寻找一种方法来强制缓存匹配该前缀的所有请求.
谢谢!
ps - 看起来我遇到了这个问题: http://mail-archives.apache.org/mod_mbox/httpd-users/200901.mbox/%3C497F6ED3.7080606@gmail.com%3E.将检查我的权限并检查调试消息...
我在工作中遇到了一个奇怪的争论,我可能在这方面错了,所以这就是我要问的原因.
我们的软件将目录输出到Apache服务器,该目录替换名称为%5F的下划线.
例如,如果目录的名称在我们的软件中列为字符串,那么它将是:"andy_test",但是当软件将目录输出到Apache服务器时,它将变为"andy%5Ftest".不幸的是,当您访问服务器上的URL时,它最终变为"andy%255Ftest".
不知怎的,这似乎对我来说是错误的,再一次进展是:
我假设"%5"编码为下划线,而"%25"编码为"%".
现在在我看来,目录名称应该在服务器上列出的方式只是简单的andy_test,如果你使用的是编码的URI,那么你可能最终得到"andy%5Ftest"来访问目录apache服务器.
我问后端的人有关它,他们说他们只是:"编码任何不是字母或数字的东西.
所以我想我对此有点困惑.你能告诉我谁是对的,并指导我一些有关原因的信息吗?
我正在根据这些说明设置CKAN,一个pylons应用程序:http://packages.python.org/ckan/deployment.html
但是,当我使用IP或主机名指向服务器(还没有DNS设置)时,我只看到apache的问候页面,sugesting ckan app没有被加载.
这是我的mod_wsgi脚本:
import os
instance_dir = '/home/flavio/var/srvc/ckan.emap.fgv.br'
config_file = 'ckan.emap.fgv.br.ini'
pyenv_bin_dir = os.path.join(instance_dir, 'pyenv', 'bin')
activate_this = os.path.join(pyenv_bin_dir, 'activate_this.py')
execfile(activate_this, dict(__file__=activate_this))
from paste.deploy import loadapp
config_filepath = os.path.join(instance_dir, config_file)
from paste.script.util.logging_config import fileConfig
fileConfig(config_filepath)
application = loadapp('config:%s' % config_filepath)
Run Code Online (Sandbox Code Playgroud)
这是我的虚拟主机配置:
<VirtualHost *:80>
ServerName dck093
ServerAlias dck093
WSGIScriptAlias / /home/flavio/var/srvc/ckan.emap.fgv.br/pyenv/bin/ckan.emap.fgv.br.py
# pass authorization info on (needed for rest api)
WSGIPassAuthorization On
ErrorLog /var/log/apache2/ckan.emap.fgv.br.error.log
CustomLog /var/log/apache2/ckan.emap.fgv.br.custom.log combined
<Directory /home/flavio/var/srvc/ckan.emap.fgv.br/pyenv/bin>
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
我尝试禁用000默认站点(使用a2dissite),但这没有帮助.执行此操作后,我收到内部服务器错误页面.修复了一些权限后,我设法得到了这个Pylons错误日志: …
我正在使用运行Apache 2 HTTPD的Ubuntu服务器和使用Railo 3.1.2的Tomcat 6设置Mango Blog实例.在我开始尝试为博客URL实现URL重写之前,我能够完成所有设置.
我使用Adam Tuttle和John Sieber的帖子组合来获得重写规则.我的网站设置如下:
{}根目录/.htaccess的
RewriteEngine on
RewriteBase /
# archives rule must be located before page rule for paging to work correctly
RewriteRule archives/(.*)$ archives.cfm/$1 [PT,L,NC]
RewriteRule page/(.*)$ page.cfm/$1 [PT,L,NC]
RewriteRule post/(.*)$ post.cfm/$1 [PT,L,NC]
RewriteRule author/(.*)$ author.cfm/$1 [PT,L,NC]
Run Code Online (Sandbox Code Playgroud)
{Apache的家} /启用站点-/网站名称
<VirtualHost *:80>
ServerAdmin *******
DocumentRoot /var/www/******/www
ServerName mango.*****.com
DirectoryIndex index.cfm
<Directory /var/www/*******.com/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error-*******_com.log
# Possible values include: …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> …
以下是我现在所拥有的内容,.htaccess以及将来应该使用的内容:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
Run Code Online (Sandbox Code Playgroud)
问题是:
我该怎么做才能改写 /tmp/some_image.png -> /image.php?file=some_image.png
我试图制定自己的规则,但没有成功.
谢谢.
我对使用Eclipse的XDebug远程调试感到困惑.
我使用Windows(使用eclipse和所有爵士乐)来进行开发,但我想在与生产环境相同的环境中测试我的代码.
我一直在修补XDebug远程调试以支持这一点.我已在远程计算机上正确配置了XDebug,并确保端口已打开.但令我感到困惑的是 - 我的机器上的源文件是否也需要存在于运行PHP和XDebug的远程服务器上?现在我在我的本地开发机器上没有任何PHP可执行文件,因此没有可能在其上运行脚本的方法.
谢谢
这几天我和我的http://localhost 工作一起睡觉,并阅读/var/www...
我在Apache2日志中发现了"AH00094"错误,并且(Apache2创建了?)惊讶/var/www/html,Apache2尝试使用.
现在我http://localhost/anything不行(浏览器错误404).
怎么解决?我需要回复我的http://localhost文件处理/var/www!
我正在使用Ubuntu12和Apache2,所有默认和标准.
我检查了错误日志,tail /var/log/apache2/error.log以找出Apache所显示的确切路径
... [core:notice] [pid 1597] AH00094: Command line: '/usr/sbin/apache2'
... [:error] [pid 1604] [client 127.0.0.1:40624] script '/var/www/html/info.php' not found or unable to stat
Run Code Online (Sandbox Code Playgroud)
该文件夹 /var/www/html是新的,全部,如'/var/www/info.php',是/var/www,而不是/var/www/html.
sudo nano /etc/apache2/apache2.conf
Run Code Online (Sandbox Code Playgroud)
并在最后一行添加
ServerName localhost
Run Code Online (Sandbox Code Playgroud)
(现在没有关于localhost的日志错误,但没有任何作用)
PS:我检查了其他相关问题,但不是同一个问题:/ var/www/html的权限,试图使用var/www/html的符号链接
我害怕使用这个答案的线索 ......在我的Ubuntu中没有.conf指示的文件.我必须创造它吗?安全吗?
正如@RahilWazir建议的那样,这里也是我的"/etc/apache2/sites-available/000-default.conf",
<VirtualHost *:80>
# The ServerName directive sets …Run Code Online (Sandbox Code Playgroud) 请,我需要在Ubuntu Server 4.14上使用Apache设置Github我想将我的localhost设置为/ var/www Apache,实际上是这样做的.但是当我安装Gitlab时我失去了这个设置,当你键入localhost时,它会落在Gitlab的页面上,我需要它来自/ var/www任何人都可以帮助我吗?
我已经使用Wordpress为本地开发创建了一个docker-compose文件,我终于让NFS工作了(由于Docker/Mac问题,正常的卷安装太慢了).
除了我遇到一个新问题,NFS共享中的所有文件(这是wp_content文件夹)都会出现这样的错误:
tar: ./wp-content/themes/twentynineteen/archive.php:
Cannot change ownership to uid 33, gid 33: Operation not permitted
Run Code Online (Sandbox Code Playgroud)
我发现这个问题https://github.com/docker-library/wordpress/issues/137,他们参考https://github.com/docker-library/wordpress/pull/249,但我仍然可以让它运转起来.想知道是否有人可以帮助我,这是我的docker-compose文件:
version: '3.3'
services:
wordpress:
image: wordpress:latest
ports:
- "80:80"
restart: always
volumes:
- nfsmount:/var/www/html/wp-content
- ./.htaccess:/var/www/html/.htaccess:cached
- ./wp-data/wp-config.php:/var/www/html/wp-config.php:cached
- ./logs/debug.log:/var/www/html/wp-content/debug.log
environment:
APACHE_RUN_USER: www-data
APACHE_RUN_GROUP: www-data
volumes:
nfsmount:
driver: local
driver_opts:
type: nfs
o: addr=host.docker.internal,rw,nolock,hard,nointr,nfsvers=3
device: ":/Users/myuser/Sites/dockertest/wp-data/wp-content"
Run Code Online (Sandbox Code Playgroud)