我有一台运行OpenCPU
的Ubuntu 18.4 LTS服务器,并且能够通过将浏览器指向地址myapp
来运行该应用程序http://myip/ocpu/library/myapp/www/
。我希望通过域名mydomain.name
使该应用程序可用,并已将DNS记录设置为指向myip
。
在服务器端,我创建了一个文件/etc/apache2/sites-available/myapp.conf
,看起来像
<VirtualHost *:80>
ServerName mydomain.name
DocumentRoot /ocpu/lib/myapp/www
LogLevel info
ErrorLog /var/log/myapp/apache_error.log
CustomLog /var/log/myapp/apache_access.log combined
</VirtualHost>
但是,sudo systemctl reload apache2
引发错误,因为它找不到documentRoot /ocpu/lib/myapp/www
。实际上,服务器上没有目录ocpu
。
我怀疑我需要在.conf
中设置一个/etc/opencpu/server.conf.d
文件,但是这些文件的结构看起来与上面给出的myapp.conf
有很大不同,并且我看不到ServerName
的条目。
如何将mydomain.name
重定向到http://myip/ocpu/library/myapp/www/
?
答案 0 :(得分:3)
如果可以通过http://myip/ocpu/library/myapp/www/
访问该站点,但应该通过http(s)://mydomain.name
访问该站点,则只需在apache2配置中创建一个代理条目,如下所示:
<VirtualHost *:80>
ServerName mydomain.name
ProxyPreserveHost On
ProxyPass "/" "http://myip/ocpu/library/myapp/www/"
</VirtualHost>
注意:您可能必须启用代理模块:sudo a2enmod proxy
和sudo a2enmod proxy_http
这将为http://myip/ocpu/library/myapp/www/
上的mydomain.name
网站提供服务。
在编辑配置并启用模块后,请确保重新启动apache2(sudo service apache2 restart
)。