Articles of httpd

Apache2有没有设置全局vHosts的方法?

我无法find任何地方,如果我可以设置默认的虚拟主机configuration。 我知道你有没有findvHost时使用的000-default.conf,但是如果我想在/ var / www中的所有目录上设置一个默认configuration呢? 说如果我想使用这个“默认的”全局虚拟主机文件来设置Options -Indexes,那么我希望Apache能够在/ var / www中的任何目录上设置它,除非域名的虚拟主机另有说明。 这是可能的,如果你能告诉我怎么做?

Apache ProxyPass根到NodeJS和/ admin到PHP-FPM

我一直试图通过NodeJS处理所有的请求,除了通过mod_proxy进入/ admin目录,但没有成功。 这是我想出的configuration,但它不工作。 <VirtualHost *:80> ServerName domain.com DocumentRoot /home/sites/domain.com/ RewriteEngine on ReWriteCond %{SERVER_PORT} !^443$ RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L] </VirtualHost> <VirtualHost *:443> ServerName domain.com DocumentRoot /home/sites/domain.com/ ProxyRequests on ProxyPassMatch ^/(.*)$ http://localhost:3000/ ProxyPassMatch ^/admin/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/home/sites/domain.com/php/public/$1 timeout=600 ProxyTimeout 600 SSLEngine on SSLCertificateFile /home/keys/domain.com.crt SSLCertificateKeyFile /home/keys/domain.com.key </VirtualHost>

在Apache中随时添加SSL证书?

我正在创build一个网站构build器,用户可以通过在他们的DNS中设置CNAME来select在自己的自定义域中托pipe网站。 对于http://,一切正常,但https://我使用Letsencrypt为其CNAME域生成SSL证书。 我的问题是如何将这些SSL证书添加到apache.conf? 我可以编写一个cron作业来修改httpd.conf并添加它,但这意味着我必须重新启动apache服务器,当我有超过50个域时,它听起来不像是一个解决scheme。 任何想法人们如何工作?

作为简单的转发Web服务器清漆

我有一个平均每天有1000个访问者的低负载网站。 据估计,在6个月左右的时间里,每天的用户就达到了10000人(甚至20K)。 但我仍然认为这是一个低stream量的CMS网站。 所有东西都托pipe在一个8G内存和4核CPU(我可能增加到16G / 8内核)的单个(CentOS VM)服务器上。 目前我们有一个设置为: Nginx -> Varnish -> HAProxy -> CMS_HTTP_Daemons X 2 -> 1 DB Daemon -> SDD Disk 由于Varnish也可以作为一个简单的循环负载均衡器,我打算从中间去掉HAProxy; 因为在我的情况下,nginx除了proxy_pass之外什么也没有做,我也想从链中删除这个软件来做这样的设置: Varnish (WebServer+LB+HTTPCache) -> CMS_HTTP_Daemons X 2 -> 1 DB Daemon -> SDD Disk 这是build议还是这似乎是一个好主意? 顺便说一下,我的CMS是Zeo / Plone,数据库是ZopeDB。

无法停止端口80上的隐形套接字

我想运行我的Apache服务器,但我得到这个错误: # /usr/sbin/httpd -k start (98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down AH00015: Unable to open logs 我用netstat来检查哪个进程正在使用这个端口,但是我没有回应: # netstat -lnp | grep :80 # 在httdp.conf中,如果我更改侦听端口和SSL端口,我可以正确启动我的服务器(但不是我想要的): Listen 8080 Listen 8443 https 我得到: # /usr/sbin/httpd -k start # 所以在我的80和443端口上有一个看不见的进程,我无法识别它。 我也重新启动服务器,问题仍然存在。 有任何想法吗? 回答评论中的问题: # grep -R […]

IPTables转发端口8080到80

我的硬件防火墙已打开端口8080 我的目标是让我的服务器通过8080接收请求,并通过iptables路由请求由httpd处理。 这似乎很简单(在我的脑海中),但我错过了一些东西。 这是我的IPTable规则: *nat :PREROUTING ACCEPT [6:782] :POSTROUTING ACCEPT [1:732] :OUTPUT ACCEPT [1:732] -A PREROUTING -i eth1 -p tcp -m tcp –dport 8080 -j DNAT –to-destination :80 COMMIT *filter :INPUT DROP [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [87:12324] -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT […]

Apache已启动,但不读取请求

这通常在重新启动apache后几分钟发生: httpd守护进程已经启动,但是没有读取来自套接字的请求。 Web客户端只是永远等待连接。 当我运行netstat ,Recv-Q显示一个不变的正数字节数。 所以基本上客户端和Apache之间的连接处于CONNECTED状态,但没有任何进展。 重新启动apache可以解决这个问题几分钟,但是它又重新开始了。 其他服务器( sshd , ftpd等)都很好。 我应该在哪里看得更远? 任何线索? 谢谢!

Apache httpd.conf:单个IP上的多个虚拟主机

我们有一个本地开发服务器,我们已经在一个静态IP上使用comcast业务类连接。 这全部通过DIR 655路由器路由。 我们的问题如下:当然,我们的主要文档设置为/ var / www / html,但是当我们尝试设置虚拟主机时,问题就出现了。 我们有一个解决单个静态IP的域,我们需要几个子域。 通常情况下,您只需使用指向要共享的IP的namevirtualhost,然后设置虚拟主机以满足您的需求,但是我不明白在服务器上使用单个IP如何实现这一点。 IP已经将所有内容发送到/ var / www / html documentroot目录。 我们现在处于亏损状态。 我们认为一个简单的修复将是第二个IP地址,但是如何将两个ip映射到像dir 655这样的低端路由器上的单个设备呢? 任何人都有一些build议? 提前致谢。

使用mod_rewrite隐藏redirect

我正在使用mod_rewrite重写GET请求到一个特定的脚本。 我的目标是redirect请求: http://localhost/Work/dbUI/pageElements/Dialog/Contact.php?id=138750 至 http://localhost/Work/dbUI/pageElements/Dialog.php?dialog=Contact.php&id=138750 我在用着: RewriteEngine On RewriteLog "/var/log/rewrite" RewriteLogLevel 3 RewriteCond %{THE_REQUEST} /Work/dbUI/pageElements/Dialog/ RewriteCond %{QUERY_STRING} id=([^&?]*) RewriteRule (.*) http://localhost/Work/dbUI/pageElements/Dialog?dialog=Contact.php&id=%1 [R=302] 它工作得很好; 但是当我提出请求时,我得到了以下头文件(这是一个cURL例程的输出): * About to connect() to localhost port 80 (#0) * Trying 127.0.0.1… * connected * Connected to localhost (127.0.0.1) port 80 (#0) > GET /Work/dbUI/pageElements/Dialog/Contact.php?id=138750 HTTP/1.1 Host: localhost Accept: */* < […]

在ubuntu的www-data用户下重新启动apache

我有一个SaaS webapp服务,所以每次在我的注册应用程序中注册一个新的客户端,它会创build一个新的子域和一个新的apache虚拟主机configuration文件,启用这个configuration我需要重新启动apache(运行在端口8080),如果我试图运行/etc/init.d/apache2 restart或在www-data(这是运行我的应用程序的用户)下的apache2ctl restart ,我得到以下错误: Address already in use: make_sock: could not bind to address 0.0.0.0:8080 no listening sockets available, shutting down Unable to open logs Action 'start' failed. The Apache error log may have more information. 我怎么能自动重启Apache? 操作系统是Ubuntu服务器10.10