不要担心 Ip 和用户,这些只是为了测试,完成后该服务器将被销毁。
我在 Debian 9 上安装了 apache 2.4.25n,这是一个远程服务器,我试图从互联网访问它
因此我安装了 gerrit,让它运行,并将它放入他的配置文件中(~/gerrit_server/etc/gerrit.config
):
[gerrit]
basePath = git
canonicalWebUrl = http://95.179.219.75:8087/
serverId = bd679dac-5adf-47c8-b665-84a3ab90ecaa
[container]
javaOptions = "-Dflogger.backend_factory=com.google.common.flogger.backend.log4j.Log4jBackendFactory#getInstance"
javaOptions = "-Dflogger.logging_context=com.google.gerrit.server.logging.LoggingContext#getInstance"
user = root
javaHome = /usr/lib/jvm/java-8-openjdk-amd64/jre
[index]
type = lucene
[auth]
type = HTTP
[receive]
enableSignedPush = false
[sendemail]
smtpServer = localhost
[sshd]
listenAddress = *:29418
[httpd]
listenUrl = http://*:8087/gerrit/
[cache]
directory = cache
[database]
type = h2
database = /home/magicmike/gerrit_server/db/ReviewDB
使用http://95.179.219.75:8087/gerrit
作品
然后我添加了这个文件:/etc/apache2/sites-available/gerrit
并在里面写了这些
<VirtualHost *>
ServerName 95.179.219.75
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Proxy *>
Require all granted
# Use following line instead of the previous two on Apache >= 2.4
# Require all granted
</Proxy>
AllowEncodedSlashes On
ProxyPass /gerrit/ http://127.0.0.1:8087/gerrit/ nocanon
</VirtualHost>
然后我添加了一个 simlink 到 sites-enabled
sudo ln -s /etc/apache2/sites-available/gerrit.conf /etc/apache2/sites-enabled/gerrit.conf
并重新启动 apache:sudo systemctl restart apache2
将http://95.179.219.75/gerrit
显示:404 错误
我也尝试listenUrl = proxy-http://*:8087/gerrit/
在 gerrit 的配置中使用它,但它没有任何变化(当然,在更改之后我重新启动了 gerrit 和 apache)
我是否遗漏了什么?谢谢。
编辑
来自 Apache 日志:
[2020 年 2 月 20 日星期四 17:21:39.314275] [core:info] [pid 30994:tid 139939108706048] [客户端 163.62.112.77:16341] AH00128:文件不存在:/var/www/html/gerrit
它为什么需要 /var/www/html/gerrit 中的某些内容?
答案1
http://95.179.219.75/gerrit/必须使用不http://95.179.219.75/gerrit(末尾缺少‘/’)