我通常不使用 Java 应用程序,但我正在尝试设置和配置基于Java 的开源 wiki。我通过在 Ubuntu 上使用 APT 安装来启动并运行它。它的默认网址是localhost:8080/xwiki
. 我想配置 tomcat 或 catalina 或其他任何东西,以便它在端口 80 和域根目录上可用。我将其设置为子域:wiki.example.com
如何在 Tomcat 中进行配置?
我通常不使用 Java 应用程序,但我正在尝试设置和配置基于Java 的开源 wiki。我通过在 Ubuntu 上使用 APT 安装来启动并运行它。它的默认网址是localhost:8080/xwiki
. 我想配置 tomcat 或 catalina 或其他任何东西,以便它在端口 80 和域根目录上可用。我将其设置为子域:wiki.example.com
如何在 Tomcat 中进行配置?
1)进入tomcat安装目录下的conf文件夹
例如 C:\Tomcat 6.0\conf\
2) 在 server.xml 文件中编辑以下标签
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
3)将port=8080的值改为port=80
4) 保存文件。
请注意,在特权端口(小于 1024)上运行进程的唯一方法需要以 root 身份运行进程。
从安全的角度来看,这很糟糕,一个可接受的替代方法是使用 iptables 将发往端口 80 的请求转发到您的应用程序服务器端口。
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
这将通过以 root 身份运行您的服务器来减轻任何主要的安全威胁,并且仍然允许您的进程在标准端口 80 上工作。
还要回答关于让您的应用程序运行而不在 url 中指定应用程序名称的问题,请查看: http ://benhutchison.wordpress.com/2008/07/30/how-to-configure-tomcat-root-context /
基于许多建议,我决定不尝试使用 tomcat 为端口 80 上的应用程序提供服务。相反,我将 Apache 设置为反向代理,并将 tomcat 保留为默认设置。这是我在 Ubuntu 上配置 Apache 所做的:
sudo apt-get install apache2-mpm-prefork
sudo a2enmod proxy_http
在 /etc/apache2/sites-available 中创建一个虚拟主机文件,内容如下:
<VirtualHost *:80>
ServerName wiki.yourdomain.com
RedirectMatch permanent ^/$ http://wiki.yourdomain.com/xwiki/
ProxyPass /xwiki http://localhost:8080/xwiki
ProxyPassReverse /xwiki http://localhost:8080/xwiki
DocumentRoot /var/www
<Directory "/var/www/">
Options -Indexes Includes FollowSymLinks
AllowOverride All
Allow from all
</Directory>
</VirtualHost>
重启阿帕奇:sudo service apache2 restart
查看 server.xml 并编辑您的配置设置,如端口号、根目录等。