Articles of apache 2.4

我怎样才能让虚拟主机与XAMPP一起工作?

我昨天在我的Win 7机器上重新安装了XAMPP。 我正在做一个Laravel项目。 我安装了当前版本的Laravel,然后在本地机器上设置了虚拟主机。 当我去到我设置的url(jrd_dnd_tools.localhost),我得到一个坏的网关消息如果我去本地主机,我得到该网站的url应该去。 我之前设置了虚拟主机,但不知道为什么会发生这种情况。 我敢肯定,我错过了一些愚蠢的东西,但不知道是什么。 的httpd-vhosts.conf <VirtualHost *:80> ServerAdmin webmaster@jrd_dnd_tools.localhost DocumentRoot "C:\Users\Joey\Web\jrd_dnd_tools/public" ServerName jrd_dnd_tools.localhost ServerAlias www.jrd_dnd_tools.localhost ErrorLog "logs/jrd_dnd_tools.localhost.log" CustomLog "logs/jrd_dnd_tools.localhost.log" common <Directory "C:\Users\Joey\Web\jrd_dnd_tools/public"> AllowOverride All Order Allow,Deny Allow from all ## –New way of doing it Require all granted </Directory> </VirtualHost> .hosts 127.0.0.1 localhost ::1 localhost ::1 database.localhost 127.0.0.1 jrd_dnd_tools.localhost

Apache反向代理自定义响应

我们正在运行一个用作反向代理的Apache 2.4.6服务器。 该服务器将请求平衡到两个tomcat后端服务器。 我们需要在后端服务器失败时configuration自定义响应,如下所示:HTTP状态码:200内容types:application / json响应正文:“门户处于维护模式” 而且,我们只需要将这个响应发送到移动应用程序,而不是web浏览器,检查一个自定义的http头。 有人能帮我find解决办法吗? 提前致谢。 丹尼尔

Nginx(openresty)反向代理到Apacheredirect问题

我已经设置了一个反向代理,从nginx(openresty)向apache发送请求,使用这个只是为了通过openresty来检查请求,而本质上是服务器在apache上运行。 问题是apache是​​在端口8080和nginx在80,所以每当Apache做一个redirect它redirect到端口8080,我还没有find任何确凿的方法来防止这个,而是有它到端口80。 我的nginx服务器configuration如下 server { listen 80 default_server; server_name localhost; client_max_body_size 1024m; client_body_timeout 300s; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } 没有卢加虽然。 至于Apache: <VirtualHost *:8080> UseCanonicalName Off ServerName domain.com ServerAdmin [email protected] DocumentRoot /home/user1/environments/production </VirtualHost> <VirtualHost *:8080> ServerAlias *.*.domain.com VirtualDocumentRoot /home/%2/environments/%1 </VirtualHost> <VirtualHost *:8080> […]

ISPConfiglogin与Firefox兼容,但不适用于Chrome

问题 Chrome会login到ISPConfig,但只有在使用IP地址的情况下。 当使用FQDN时它会静默失败。 注意: ispconfig没有标签,我没有足够的信誉来创build它。 细节 我刚刚使用Matteo Temporini等人创build的bash脚本,在 Ubuntu 16.04.3的全新安装中设置了ISPConfig。 我接受了所有的默认设置。 DNSlogging由Cloudflare DNS维护,它提供了一个caching的代理服务。 我禁用了caching。 当我在Firefox或Chrome浏览器访问https://xxx.xxx.xxx.xxx:8080/时,我可以使用默认密码以pipe理员身份login。 但是,如果我访问https://sub.domain.com:8080允许我login,但Chrome只是清空用户名和密码字段。 它不认为用户名和密码错误,它只是忽略它们,login失败。 注:该网站使用自签名证书,并且Firefox和Chrome都首先要求我接受“不安全”证书。 我认为行为上的差异是由于Chrome和Firefox将login参数发送到服务器的方式不同所致。 我试图在/var/logs/apache2/error.log和/access.log跟踪这个,但是没有太多logging。 以下是Apache在重新启动时logging的一些错误: [Thu Nov 09 10:30:22.608038 2017] [:error] [pid 1421] python_init: Python path being used '/usr/lib/python2.7/:/usr/lib/python2.7/plat-x86_64-linux-gnu:/usr/lib/python2.7/lib-tk:/usr/lib/python2.7/lib-old:/usr/lib/python2.7/lib-dynload'. [Thu Nov 09 10:30:22.608055 2017] [:notice] [pid 1421] mod_python: Creating 8 session mutexes based on 150 max processes and 0 […]

如何在Apache 2.4中为CGI目录启用CORS

经过两天寻找答案,我转向堆栈溢出Apache的主人。 我的CGI文件夹位于/var/www/html/cgi-enabled 。 它承载了一些python脚本,我想执行并返回一个ajax调用JSON 。 我想要在文件夹中的所有脚本都可以访问CORS。 我读过,我需要使用 Header set Access-Control-Allow-Origin "*"命令。 但是,我还没有成功。 请帮我在哪里我应该把命令。 我在Ubuntu 16.04.2上运行apache 2.4.18。 /etc/apache2/看起来像: └── apache2.conf ├── conf-available │ └── serve-cgi-bin.conf / conf of …/cgi-enabled ├── conf-enabled │ └── serve-cgi-bin.conf -> ../conf-available/serve-cgi-bin.conf ├── envvars │ └── … ├── magic │ └── … ├── mods-available │ └── … ├── mods-enabled │ └── … […]

Apache负载平衡器粘性,但仍然具有高可用性

我有一个Apache 2.4设置,看起来像这样: Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED <Proxy balancer://pool1> BalancerMember http://server1:8099 route=1 BalancerMember http://server2:8099 route=2 ProxySet failonstatus=500,503 stickysession=ROUTEID </Proxy> RewriteRule ^/api/(.*)$ balancer://pool1/$1 [P] 我最近才添加了粘性( stickysession=ROUTEID等),我发现现在的粘性工作,但我已经失去了高可用性。 换句话说,如果其中一台服务器不再回复请求,则不会再从池中取出。 如果用户的信息已连接到该服务器,则用户将得到503错误。 什么是适当的设置兼具粘性和高可用性? 请注意,粘性不需要100%正确,我使用它来更好地使用本地caching。 如果来自用户的后续请求转到另一台机器上,那将会起作用,但速度会变慢。

用Apache在相对URL中redirect到Docker容器

我有一个端口8080上的Ubuntu服务器上运行的Docker容器。我可以通过localhost访问web容器:8080 现在我想通过相对URL从公共IP访问这个容器。 例如:19x.xx.xx.xx / gitlab 我创build了一个在Apache中反转的代理,但是我只能加载主页面,没有css,js或其他资源,比如web内部的链接,因为它们是相同的,所以我不能从外部访问它们。 ProxyPass /gitlab/ http://localhost:8080 ProxyPassReverse /gitlab/ http://localhost:8080 有没有什么办法来映射网页上的所有资源,并使用Apache的相对URLredirect?

使用Nginx作为具有虚拟主机的Apache服务器的负载平衡器

下面的附加图像代表了我正在构build的应用程序堆栈。 Apache节点是彼此完全相同的副本,并且每个节点都服务于相同的虚拟主机,比如example1.com,example2.com和example3.com。 此外,对于具有数据库后端的Apache节点服务的虚拟主机,数据库将托pipe在Galera集群节点上。 所有这些节点都运行Ubuntu 16.06。 到目前为止,我已经能够成功configuration这个设置的大部分,除了我似乎无法通过Nginx Web负载均衡器传递主机名。 例如,当我去example1.com(并不断刷新),我可以看到,应用程序交付正确地从每个Apache节点交替。 但是当我去example2.com时,仍然显示example1.com。 这不是我的本地/etc/hosts文件的问题。 我相信这是因为我没有正确configurationNginx负载均衡器来传递主机名,以便Apache节点解释它。 这里是我的3个nginx服务器块链接在sites-enabled #/etc/nginx/sites-enabled/example1.dev upstream example1 { least_conn; server do.webserver1:80; server do.webserver2:80; } server { listen 80; server_name example1.dev; location / { proxy_pass http://example1; } } #/etc/nginx/sites-enabled/example2.dev upstream example2 { least_conn; server do.webserver1:80; server do.webserver2:80; } server { listen 80; server_name example2.dev; location / { proxy_pass […]

在https上请求apache2服务器时出现错误的请求

我有一个apache2服务器设置在443与SSL证书。 我修改了sites-available default-ssl.conf ,并更新了证书path <VirtualHost *:80> ServerName domain Redirect permanent / https://domain </VirtualHost> <IfModule mod_ssl.c> <VirtualHost _default_:443> ServerName domain ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /etc/apache2/certs/filname.crt SSLCertificateKeyFile /etc/apache2/certs/filname.key SSLCACertificatePath /etc/apache2/certs/ SSLCACertificateFile /etc/apache2/certs/ca.crt <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory /usr/lib/cgi-bin> SSLOptions +StdEnvVars </Directory> </VirtualHost> </IfModule> 我已经rewrite和ssl MODS启用。 我试图通过https://domain访问浏览器上的url 但我仍然收到 Bad […]

Apache:使用SSL连接到代理服务器时,会检查错误的主机名

我正在尝试使这个设置工作: 反向代理:启用SSL,并使用Let's Encrypt证书面向互联网(reverse-proxy.com)。 目标:通过使用内部证书链(target.internal)启用SSL的反向代理访问的站点。 所以连接应该是: 客户端反向代理TLS握手 反向代理以定位TLS握手[failling] 我做了什么好事: 将我的根CA证书添加到代理服务器 向目标添加证书,密钥和链 尝试成功openssl s_client -connect target.internal:443 -prexit -CAfile /var/certs/root-ca.crt从反向代理 但是Apache失败了,因为当试图连接到“target.internal”时,它想要在目标证书中find主机名“reverse-proxy.com”,而目标证书是为“target.internal”制作的。 我在我的日志中有这个错误: Cert does not match for name 'reverse-proxy.com' 它将证书链从“root-ca.crt”成功移到“target.internal.crt”后打印出来。 我不明白Apache为什么不寻找为“target.internal”制作的证书。 有人有一个想法? 谢谢。 编辑: Listen 0.0.0.0:443 https SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog SSLSessionCache shmcb:/run/httpd/sslcache(512000) SSLSessionCacheTimeout 300 SSLRandomSeed startup file:/dev/urandom 256 SSLRandomSeed connect builtin SSLCryptoDevice builtin <VirtualHost _default_:443> ErrorLog logs/ssl_error_log TransferLog logs/ssl_access_log […]