Назад | Перейти на главную страницу

Порт JIRA и обратный прокси Apache

Я пытаюсь настроить обратный прокси-сервер с Apache и экземпляром Tomcat в комплекте с JIRA. Я следил за направления в вики JIRA на T. Сайт отлично отображается на http://ourdomain:8080/jira просто отлично, поэтому я знаю, что Tomcat server.xml файл был установлен правильно в соответствии с их инструкциями.

Однако я не могу заставить работать обратный прокси Apache по причинам, которые ускользают от меня, несмотря на значительное чтение.

Я запускаю Apache2.2 на Ubuntu с включенными mod_proxy и mod_proxy_http, конечно. В default сайт работает нормально; моя конфигурация сайта - это всего лишь модифицированная версия этого. Вот мой jira конфигурация виртуального хоста в /etc/apache2/sites-enabled/jira:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    ServerName ourdomain.com

    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

    # JIRA Proxy Configuration
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    ProxyRequests       Off
    ProxyPreserveHost   On
    ProxyPass           /jira      http://ourdomain.com:8080/jira
    ProxyPassReverse    /jira      http://ourdomain.com:8080/jira
</VirtualHost>

Когда я захожу на сайт в браузере, я получаю 404 Не Найдено со следующим (стандартным) текстом:

Запрошенный URL / jira не найден на этом сервере


Сервер Apache / 2.2.22 (Ubuntu) на 80-м порту ourdomain.com

Между тем, выход из apachectl -S является:

VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
     default server ourdomain.com.com (/etc/apache2/sites-enabled/000-default:1)
     port 80 namevhost ourdomain.com (/etc/apache2/sites-enabled/000-default:1)
     port 80 namevhost ourdomain.com (/etc/apache2/sites-enabled/jira:1)

Так что я могу получить доступ к сайту по адресу ourcomain.com:8080/jira но не на ourdomain.com/jira.

Возможно, эта последняя строка указывает на проблему - если он слушает port 8080 вместо этого, и, соответственно, я должен изменить запись vhost выше?

Ясно, что у меня что-то не так, но я этого не вижу; моя конфигурация появляется в точном соответствии с указаниями в вики JIRA. Некоторая помощь будет очень признательна. Я рассмотрел несколько других ответов здесь, и с ними тоже не повезло.

У меня наша JIRA настроена почти идентичным образом, но через прокси на защищенный сайт.

Единственная разница, которую я могу заметить между моей конфигурацией и вашей, заключается в том, что я оставил существующий / etc / apache2 / sites-enabled / 000-default как есть:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

</VirtualHost>

Но затем добавил новый файл / etc / apache2 / sites-enabled / jira-mod_proxy, который содержал

<Proxy *>
Order deny,allow
Allow from all
</Proxy>

SSLProxyEngine on
ProxyRequests       Off
ProxyPreserveHost On
ProxyPass           /jira       https://localhost:8443/jira
ProxyPassReverse    /jira       https://localhost:8443/jira

Если вы игнорируете порты 8443, которые я использую для SSL, то единственные различия, которые я вижу, это

  1. используя localhost, а не полное доменное имя, но это не имеет значения, потому что вы можете получить доступ к своему сайту по адресу http://ourdomain:8080/jira поэтому кот явно прослушивает ваш реальный IP-адрес

  2. Имея <Proxy> конфигурация вне <VirtualHost> элемент.

Так, может быть, конфигурация прокси-сервера должна выходить за рамки настроек виртуального хоста?

У тебя есть ServerName ourdomain.com в /etc/apache2/sites-enabled/000-default, а ServerName ourdomain.com в /etc/apache2/sites-enabled/jira. В 000-default один имеет приоритет, потому что он сначала по алфавиту; ваша конфигурация jira не используется.

Изменить ServerName ourdomain.com линия в 000-default файл, или, если вы его не используете, просто a2dissite default.