当我尝试上传任何types的文件到我的服务器/网站时,我得到一个请求实体太大的错误。 (试图上传一个1.73MB的图片产生一个413错误,而一个25.6kb的图片不) 我尝试了各种“修复”,但他们没有为我工作,这可能是与SSL的东西,但我不知道。 该网站使用SSL / HTTPS网页。 这台机器有什么问题? 我的设置是:Ubuntu 16.04,PHP 7.0,Apache 2.4.18,2GB的内存,500 GB的磁盘空间 我的Apache使用“安全”和所有这些模块: core_module (static) so_module (static) watchdog_module (static) http_module (static) log_config_module (static) logio_module (static) version_module (static) unixd_module (static) access_compat_module (shared) alias_module (shared) auth_basic_module (shared) authn_core_module (shared) authn_dbd_module (shared) authn_file_module (shared) authz_core_module (shared) authz_host_module (shared) authz_user_module (shared) autoindex_module (shared) cgi_module (shared) dbd_module (shared) deflate_module (shared) […]
我有一个Apache服务器已经/转发到Tomcat服务器。 当Tomcat服务器closures时,我想显示一条错误消息。 这是我目前的: ErrorDocument 502 "We're down, sorry :(" 我想展示一个相对丰富的文档(有趣的图片和东西),而不仅仅是一句话的消息。 问题是,它不出现我可以提供文件,只有redirect到他们。 我在看这个文档 。 我想保留相同的URL,但提供不同的HTML文件。 任何方式来做到这一点? <VirtualHost *:443> ServerName ${DOMAIN_NAME} ProxyRequests Off ProxyAddHeaders On ProxyPass /stomp http://tomcat:8080/stomp ProxyPassReverse /stomp http://tomcat:8080/stomp ProxyPass /.well-known http://mail.${DOMAIN_NAME}:80/.well-known ProxyPassReverse /.well-known http://mail.${DOMAIN_NAME}:80/.well-known ProxyPassMatch / http://tomcat:8080 retry=0 timeout=10 ProxyPassReverse / http://tomcat:8080 SSLCertificateFile /etc/letsencrypt/live/${DOMAIN_NAME}/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/${DOMAIN_NAME}/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf ErrorDocument 502 ${PROXY_ERROR_MESSAGE} ErrorDocument 503 ${PROXY_ERROR_MESSAGE} […]
我需要使用SSL托pipe大量的网站,我读过,由于文件描述符,有一个Apache虚拟主机的限制。 每个域都有一个SSL证书,所以无法做一个全局的虚拟主机。 我的问题是,如果1000个虚拟主机有指令: ErrorLog /var/logs/apache2/sites.log 系统将受到文件描述符的限制,或者apache将pipe道和合并日志?
我们有一个定义了一堆envvariables的apache conf,像这样:/etc/apache2/conf-enabled/env.conf SetEnv AWS_BUCKET "MY BUCKET" 我想在我的重写中使用该variables,AWS_BUCKET像这样: RewriteRule ^wp-content/uploads/(.*)$ https://s3.amazonaws.com/%{ENV:AS3CF_BUCKET}/wp-content/uploads/$1 [P] 这个桶根据我们所在的服务器环境而变化,例如:prod,staging,dev和local。 哪个不行 我读了这些重写后调用SetEnv,所以我应该使用SetEnvIf来设置variables。 但是,使用SetEnvIf仍然不起作用,因为不仅不能检查是否设置了AWS_BUCKET,而且仍然无法读取该variables,因为在重写和SetEnvIf被调用之前没有设置该variables。 SetEnvIf还要求在htaccess文件中设置所需的variables,这是我做不到的,因为这样做的目的是提供一个dynamic环境特定的解决scheme。 有没有办法从conf文件中使用setvariables,还是需要将variables设置为系统variables? 编辑 – 我不幸的是没有能力添加或修改Apache的configuration。 服务器由另一个部门运行,该部门在构build和部署过程中使用提供的variables作为模板注入该文件。 所以我必须处理我也有访问,这是networking应用程序和htaccess文件。 我不确定他们会为我改变这个过程。
我需要帮助来build立我的.htaccess所以它适用于两种不同的条件。 第一个条件是: RewriteEngine on RewriteCond %{request_filename} -f RewriteRule ^(.*) $1 [L] RewriteRule ^(([^/]*)+)(/([^/]{0,32})(/.+)?)?$ index.php?a=$1&q=$3 [L] 我想添加一个条件,重写非www www 我如何强制www。 在我的网站上? 我想通过htaccess强制www,但我不知道如何去做到这一点。
我已经在ubuntu 16.04上设置了apache2.4.1,以便在端口80和443上同时处理http和https通信。我可以浏览到这两个站点,没有任何问题。 服务器可以通过公共IP和私有IP进行访问 – 远程api服务通过vpn将stream量发送到我的服务器。 这是我的apachectl -S结果 *:80 APPSERVER.example.com (/etc/apache2/sites-enabled/000-default.conf:1) *:443 is a NameVirtualHost default server APPSERVER.example.com (/etc/apache2/sites-enabled/000-default-ssl.conf:2) port 443 namevhost APPSERVER.example.com (/etc/apache2/sites-enabled/000-default-ssl.conf:2) port 443 namevhost APPSERVER.example.com (/etc/apache2/sites- enabled/default-ssl.conf:2) ServerRoot: "/etc/apache2" Main DocumentRoot: "/var/www/html" Main ErrorLog: "/var/log/apache2/error.log" Mutex rewrite-map: using_defaults Mutex ssl-stapling-refresh: using_defaults Mutex ssl-stapling: using_defaults Mutex ssl-cache: using_defaults Mutex default: dir="/var/lock/apache2" mechanism=fcntl Mutex mpm-accept: […]
我在Safari上遇到了这个不寻常的SSL问题。 基本上我有一个Debian服务器运行Apache 2(2.4.10)与OpenSSL 1.0.1t在私人networking上。 我以正常的方式build立了一个SSL虚拟主机,并使用一个中间服务器签名的Web服务器证书,该证书又由使用Appleconfiguration文件的所有机器上安装的私有根证书进行签名,并且已经validation根安装在钥匙串上。 在Chrome中 – 这个设置工作正常。 页面加载和SSL证书链是好的,Chrome报告没有错误和绿色的挂锁。 在Safari(10)中 – 但也发生在v9上 – 而在iOS 10上 – 我得到的只是“Safari无法打开页面xxx,因为Safari无法build立到服务器xxx的安全连接”。 奇怪的是,如果我重新启动Apache服务器它在Safari中工作了几秒钟 – 足以让一个页面加载 – 再次失败之前。 在桌面上cURL – 未知的SSL协议错误。 在openssl(s_client -connect)中 – 与Protocol:TLSv1,Cipher:EDH-RSA-DES-CBC3-SHA连接。 在nscurl -ats-diagnostics-每次尝试失败。 我认为这一定是Apacheconfiguration的一个问题,所以我尽我所能地去除了我认为可能导致的问题,现在在我的ssl.conf中,我已经将SSLProtocol设置为ALL -SSLv3,SSLCipherSuite设置为MEDIUM: !aNull和vhost的.conf文件中,我已经启动了SSLEngine,其中唯一的其他SSLconfiguration是证书文件,中间和密钥。 但该网站仍顽固地拒绝在Safari中打开。 是什么让奇怪的是,Chrome的工作正常! 我尝试去Safari浏览器的任何公共SSL网站工作正常。 任何build议感激!
我有一个Apache 2.4.23configuration,启用了mod_proxy / mod_proxy_balancer / mod_slotmem_shm / mod_lbmethod_byrequests。 此外,我有多个VirtualHost监听不同的端口,像这样的设置(PORT和COMPONENT是唯一的): Listen PORT <VirtualHost *:PORT> Include "eib/conf/default-proxy-params" ErrorLog "logs/PORT-COMPONENT-error.log" CustomLog "logs/PORT-COMPONENT-access.log" common <Proxy balancer://COMPONENT/> BalancerMember https://HOST1:PORT BalancerMember https://HOST2:PORT ProxySet lbmethod=byrequests </Proxy> ProxyPass / balancer://COMPONENT/ lbmethod=byrequests nofailover=Off maxattempts=3 ProxyPassReverse / balancer://COMPONENT/ </VirtualHost> 当我在我的configuration只有一个VirtualHost条目,一切工作正常。 只要我添加另一个VirtualHost,Apache崩溃configuration失败的错误: [Wed Oct 12 21:59:38.211829 2016] [slotmem_shm:error] [pid 4129010:tid 1] (24)Too many open files: AH02611: […]
我正在尝试configurationApache v2.4.7以在用户可以访问特定位置的数据库中查找。 我设法在几个特定的位置做到这一点,但是对于dynamic位置却无法做到。 所以这是适用于两个地点“mydomain.com/foo”和“mydomain.com/bar” <Location /foo> AuthName "/foo" AuthType Digest Require valid-user AuthBasicProvider dbd AuthDBDUserRealmQuery "SELECT password FROM Users WHERE login = '%s' AND realm = '%s'" </Location> <Location /bar> AuthName "/bar" AuthType Digest Require valid-user AuthBasicProvider dbd AuthDBDUserRealmQuery "SELECT password FROM Users WHERE login = '%s' AND realm = '%s'" </Location> 这是工作正常,如果我有我的数据库中的领域“/富”或“/酒吧”的logging。 但是现在,假设我有一千个,而且有一些可以随时创build。 我尝试了以下解决scheme: […]
我有一个使用Google Compute协议转发的Google Compute实例(Debian 8和Apache),可以在一个虚拟机实例中使用多个外部IP地址: Google计算协议转发(整篇文章) Google Compute Engine支持协议转发,它允许您创build可以将数据包发送到未经NAT的目标实例的转发规则对象。 每个目标实例都包含一个虚拟机实例,该虚拟机实例接收并处理来自相应转发规则的stream量。 问题 我无法通过端口443访问其中一个虚拟主机域/ IP。我需要这个,因为我想在所有这些域上启用HTTPS。 我已经尝试了多个选项来实现打开端口443,但他们都没有工作: 选项1)基于虚拟名称的主机: /etc/apache2/ports.conf Listen 80 <IfModule ssl_module> NameVirtualHost *:443 Listen 443 </IfModule> <IfModule mod_gnutls.c> NameVirtualHost *:443 Listen 443 </IfModule> /etc/apache2/sites-enabled/example.com.conf <VirtualHost *:80> ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/website1 </VirtualHost> <VirtualHost *:443> ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/website1 </VirtualHost> 选项2)基于虚拟IP的主机: /etc/apache2/ports.conf Listen 80 <IfModule […]