标签: apache2

Apache反向高速缓存代理 - 为什么不进行高速缓存?

我正在尝试为广告图片(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.将检查我的权限并检查调试消息...

caching reverse-proxy apache2

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

使用目录名称中的下划线进行URL编码?

我在工作中遇到了一个奇怪的争论,我可能在这方面错了,所以这就是我要问的原因.

我们的软件将目录输出到Apache服务器,该目录替换名称为%5F的下划线.

例如,如果目录的名称在我们的软件中列为字符串,那么它将是:"andy_test",但是当软件将目录输出到Apache服务器时,它将变为"andy%5Ftest".不幸的是,当您访问服务器上的URL时,它最终变为"andy%255Ftest".

不知怎的,这似乎对我来说是错误的,再一次进展是:

  1. andy_test < - (作为软件中的字符串)
  2. andy%5Ftest < - (列为服务器上的目录)
  3. andy%255Ftest < - (必须在从Web浏览器调用与服务器上的URL相同的目录时使用.)

我假设"%5"编码为下划线,而"%25"编码为"%".

现在在我看来,目录名称应该在服务器上列出的方式只是简单的andy_test,如果你使用的是编码的URI,那么你可能最终得到"andy%5Ftest"来访问目录apache服务器.

我问后端的人有关它,他们说他们只是:"编码任何不是字母或数字的东西.

所以我想我对此有点困惑.你能告诉我谁是对的,并指导我一些有关原因的信息吗?

apache directory encoding apache2 url-rewriting

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

Mod_wsgi pylons(ckan)安装无法正常工作

我正在根据这些说明设置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错误日志: …

python apache pylons mod-wsgi apache2

7
推荐指数
1
解决办法
2744
查看次数

URL重写Mango博客问题(404错误)

我正在使用运行Apache 2 HTTPD的Ubuntu服务器和使用Railo 3.1.2的Tomcat 6设置Mango Blog实例.在我开始尝试为博客URL实现URL重写之前,我能够完成所有设置.

我使用Adam TuttleJohn 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)

coldfusion mod-rewrite apache2

7
推荐指数
1
解决办法
589
查看次数

Apache 2.2重定向到SSL*然后*做auth(使用解决方案<但它是废话吗?)

似乎是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> …

apache mod-rewrite apache2 basic-authentication apache2.2

7
推荐指数
1
解决办法
3597
查看次数

.htaccess将图像文件重写为php脚本

以下是我现在所拥有的内容,.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

我试图制定自己的规则,但没有成功.

谢谢.

.htaccess mod-rewrite rewrite apache2

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

在eclipse中使用XDebug远程调试时,PHP源文件是否需要在本地和远程存在?

我对使用Eclipse的XDebug远程调试感到困惑.

我使用Windows(使用eclipse和所有爵士乐)来进行开发,但我想在与生产环境相同的环境中测试我的代码.

我一直在修补XDebug远程调试以支持这一点.我已在远程计算机上正确配置了XDebug,并确保端口已打开.但令我感到困惑的是 - 我的机器上的源文件是否也需要存在于运行PHP和XDebug的远程服务器上?现在我在我的本地开发机器上没有任何PHP可执行文件,因此没有可能在其上运行脚本的方法.

谢谢

php eclipse debian xdebug apache2

7
推荐指数
1
解决办法
658
查看次数

我需要"/ var/www"但是Apache2尝试使用空的"/ var/www/html"

这几天我和我的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.

修复了"AH00094"错误编辑

 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)

directory apache2

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

Gitlab + Apache Ubuntu 14.04

请,我需要在Ubuntu Server 4.14上使用Apache设置Github我想将我的localhost设置为/ var/www Apache,实际上是这样做的.但是当我安装Gitlab时我失去了这个设置,当你键入localhost时,它会落在Gitlab的页面上,我需要它来自/ var/www任何人都可以帮助我吗?

apache ubuntu apache2 gitlab

7
推荐指数
1
解决办法
2769
查看次数

Docker Wordpress tar:<file>无法将所有权更改为uid 33,gid 33:不允许操作

我已经使用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)

macos wordpress apache2 docker

7
推荐指数
1
解决办法
411
查看次数