首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何向apache添加另一个应用程序?

问如何向apache添加另一个应用程序?
EN

Server Fault用户
提问于 2010-04-27 20:54:13
回答 2查看 5.4K关注 0票数 0

我正在跟踪Ubuntu的Zabbix安装教程,它要求我添加一个文件/etc/apache2/sites-enabled/000-default,其中包含

代码语言:javascript
复制
Alias /zabbix /home/zabbix/public_html/
<Directory /home/zabbix/public_html>
  AllowOverride FileInfo AuthConfig Limit Indexes
  Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
  <Limit GET POST OPTIONS PROPFIND>
    Order allow,deny
    Allow from all
  </Limit>
  <LimitExcept GET POST OPTIONS PROPFIND>
    Order deny,allow
    Deny from all
  </LimitExcept>
</Directory>

但我已经有/etc/apache2/sites-enabled/railsapp了

代码语言:javascript
复制
NameVirtualHost *:80
NameVirtualHost *:443

<VirtualHost *:80>
    UseCanonicalName Off
    Include /etc/apache2/conf/railsapp.conf
</VirtualHost>

<VirtualHost *:443>
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/cert.pem
    Include /etc/apache2/conf/railsapp.conf
    RequestHeader set X_FORWARDED_PROTO 'https'
</VirtualHost>

和/etc/apache2/sites-enabled/mercurial

代码语言:javascript
复制
NameVirtualHost *:8080

<VirtualHost *:8080>
    UseCanonicalName Off
    ServerAdmin  webmaster@localhost
    AddHandler cgi-script .cgi
    ScriptAliasMatch ^(.*) /usr/lib/cgi-bin/hgwebdir.cgi/$1
</VirtualHost>

我认为,正是因为已经存在的虚拟主机,我的I无法访问zabbix页面。怎样才能避开这一切?

EN

回答 2

Server Fault用户

回答已采纳

发布于 2010-04-27 21:31:54

您有两个选项: 1:将zabbix放在不同的端口上;2:使它在普通vhost下可访问。

对于#1 update 000-默认为:

DocumentRoot /home/zabbix/public_html

AllowOverride FileInfo AuthConfig限制索引选项MultiViews索引SymLinksIfOwnerMatch IncludesNoExec命令允许,拒绝从所有订单拒绝,允许从所有拒绝

为#2

移动1000-默认为/etc/apache2/conf/zabbix.conf,并添加:

包括/etc/apache2/conf/zabbix.conf

在/etc/apache2/site中类似的Include语句--启用/railsapp

票数 1
EN

Server Fault用户

发布于 2010-04-27 21:39:45

您需要告诉Apache在额外的端口上侦听,然后将Rails应用程序的配置设置为使用不同的NameVirtualHost端口。

从您提供的配置信息判断,Apache配置中将有三个侦听参数:

代码语言:javascript
复制
Listen *:80
Listen *:443
Listen *:8080

根据Apache的配置方式,这些文件可能分布在几个配置文件中。您希望为Rails应用程序添加第四个监听端口,例如8081:

代码语言:javascript
复制
Listen *:80
Listen *:443
Listen *:8080
Listen *:8081

一旦这个额外的this指令到位,编辑/etc/apache2/sites启用/railsapp文件,并将第一个NameVirtualHost指令更改为8081,例如:

代码语言:javascript
复制
NameVirtualHost *:8081
NameVirtualHost *:443
....

重新启动Apache,您将在80上找到zabbix,在8081/443上找到Rails应用程序,在8080上找到Mercurial。

然而

.

如果您可以在内部网络中设置DNS记录(我猜这是内部使用的),则可以设置按域名而不是端口区分的虚拟主机。然后,Apache只需要侦听默认端口80和443,您就可以区分使用域url的应用程序,例如:

代码语言:javascript
复制
zabbix.yourdomain.com
railsapp.yourdomain.com
mercurial.yourdomain.com

这样做的好处是,您可以继续添加不同的虚拟主机,而不必每次使用新端口。web上有大量的文档解释如何设置(提示:请参阅Ubuntu文档)。

这种方法的唯一警告是,由于协议的工作方式,只有一个虚拟主机可以在特定端口(443)上处理HTTPS请求。但是,如果您只需要HTTPS访问其中一个虚拟主机,这不是问题,只是不要告诉其他主机使用HTTPS (443),您就可以了。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/136414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档