zabbix.conf重定向到另一个端口

时间:2016-12-31 15:28:19

标签: apache httpd.conf zabbix

我无法理解如何重新配置​​初始zabbix.conf文件,以免劫持端口80开箱即用。

以下是应用程序提供的默认zabbix.conf:

#
# Zabbix monitoring system php web frontend
#

Alias /zabbix /usr/share/zabbix

<Directory "/usr/share/zabbix">
    Options FollowSymLinks
    AllowOverride None
    Require all granted

    <IfModule mod_php5.c>
        php_value max_execution_time 300
        php_value memory_limit 128M
        php_value post_max_size 16M
        php_value upload_max_filesize 2M
        php_value max_input_time 300
        php_value always_populate_raw_post_data -1
        # php_value date.timezone Europe/Riga
    </IfModule>
</Directory>

<Directory "/usr/share/zabbix/conf">
    Require all denied
</Directory>

<Directory "/usr/share/zabbix/app">
    Require all denied
</Directory>

<Directory "/usr/share/zabbix/include">
    Require all denied
</Directory>

<Directory "/usr/share/zabbix/local">
    Require all denied
</Directory>

我希望能够做的是配置我的zabbix,就像我在我的服务器上完成其他应用程序一样。这台服务器上实际上已有2个应用程序。 jira是端口8080上的反向代理,汇流是端口8090上的反向代理。我想在另一个端口上的反向代理上使用zabbix,比如8070。:

<VirtualHost *:80>
  ServerName zabbix.domain.com
  ServerAlias zabbix

  Redirect / https://zabbix.domain.com
</VirtualHost>

<VirtualHost *:443>
  ServerName zabbix.domain.com
  ServerAlias zabbix

  Include ssl/default/ssl.cfg

  ProxyPass / http://localhost:8070/
  ProxyPassReverse / http://localhost:8070/
</VirtualHost>

问题是这不起作用,因为Zabbix假设没有其他东西使用端口80。

执行此类操作只会显示未显示的页面

Alias /zabbix /usr/share/zabbix

<Directory "/usr/share/zabbix">
    Options FollowSymLinks
    AllowOverride None
    Require all granted

    <IfModule mod_php5.c>
        php_value max_execution_time 300
        php_value memory_limit 128M
        php_value post_max_size 16M
        php_value upload_max_filesize 2M
        php_value max_input_time 300
        php_value always_populate_raw_post_data -1
        # php_value date.timezone Europe/Riga
    </IfModule>
</Directory>

<Directory "/usr/share/zabbix/conf">
    Require all denied
</Directory>

<Directory "/usr/share/zabbix/app">
    Require all denied
</Directory>

<Directory "/usr/share/zabbix/include">
    Require all denied
</Directory>

<Directory "/usr/share/zabbix/local">
    Require all denied
</Directory>

<VirtualHost *:80>
  ServerName zabbix.domain.com
  ServerAlias zabbix

  Redirect / https://zabbix.domain.com
</VirtualHost>

<VirtualHost *:443>
  ServerName zabbix.domain.com
  ServerAlias zabbix

  Include ssl/default/ssl.cfg

  ProxyPass / http://localhost:80/
  ProxyPassReverse / http://localhost:80/
</VirtualHost>

2 个答案:

答案 0 :(得分:1)

我太近了!这样做 -

<VirtualHost *:80>
  ServerName zabbix.domain.com
  ServerAlias zabbix
  Alias /zabbix /usr/share/zabbix

  <Directory "/usr/share/zabbix">
    Options FollowSymLinks
    AllowOverride None
    Require all granted

    <IfModule mod_php5.c>
      php_value max_execution_time 300
      php_value memory_limit 128M
      php_value post_max_size 16M
      php_value upload_max_filesize 2M
      php_value max_input_time 300
      php_value always_populate_raw_post_data -1
      php_value date.timezone America/Toronto
    </IfModule>
  </Directory>

  <Directory "/usr/share/zabbix/conf">
    Require all denied
  </Directory>

  <Directory "/usr/share/zabbix/app">
    Require all denied
  </Directory>

  <Directory "/usr/share/zabbix/include">
    Require all denied
  </Directory>

  <Directory "/usr/share/zabbix/local">
    Require all denied
  </Directory>
</VirtualHost>

允许我点击http://zabbix.domain.com/zabbix的网址并获取该网站。

答案 1 :(得分:0)

实际上,您应该在Apache conf中进行更改。您可以像这样搜索它:

grep -rE "\b80\b" /etc/apache2

您将获得更改地点的列表。很有可能是Listen 80<VirtualHost *:80>之类的东西。

请注意,原始的zabbix配置没有端口的任何配置。

因此,更改所需内容后,应重新启动apache并确保其正在运行:

service apache2 restart
service apache2 status

URL

还要注意,ServerName中不需要VirtualHost。 Zabbix将仅“劫持”“ zabbix”文件夹,并且仅在apache正在侦听的特定端口上。因此,如果您将80更改为8081,则应该看到zabbix正在运行:

http://localhost:8081/zabbix/

如果可以从外部域(例如zabbix.domain.com)访问您的计算机,则可以正常工作:

http://zabbix.domain.com:8081/zabbix/