Je regarde la documentation pour une webapp Tomcat 6 appelée DSpace, en particulier pour exécuter Running DSpace sur les ports standard (80 pour http: // et 443 pour https: //)
J'essaie d'utiliser "Méthode 1" qui utilise iptables pour redirect le trafic des ports 80 et 443 à 8080 et 8443 afin de se débarrasser de :8080
dans l'URL.
Voici la command que la documentation donne:
/sbin/iptables -t nat -I PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 8080 /sbin/iptables -t nat -A OUTPUT -p tcp -d _[server_ip_address|server_ip_address]_ --dport 80 -j REDIRECT --to-port 8080 /sbin/iptables -t nat -I PREROUTING -p tcp --destination-port 443 -j REDIRECT --to-ports 8443
Je pense qu'il y a quelque chose qui doit être changé sur la deuxième ligne, en particulier avec la section -d _[server_ip_address|server_ip_address]_
– mais je ne suis pas sûr de quoi. J'ai lu la page man
pour iptables
mais je n'ai pas de chance.
J'ai essayé de changer -d _[server_ip_address|server_ip_address]_
pour:
-d _[127.0.0.1|127.0.0.1]_
et aussi:
-d _[54.224.121.116|54.224.121.116]_
et aussi:
-d _[ec2-54-224-112-116.compute-1.amazonaws.com|ec2-54-224-112-116.compute-1.amazonaws.com]_
Les erreurs que je reçois include Bad argument 'REDIRECT'
et aussi
host/network '_127.0.0.1' not found
Quelqu'un peut-il m'aider à repérer ce que je fais mal?
mise à jour : Je pense que la redirection fonctionnera sans la deuxième ligne, mais je ne suis toujours pas sûr de son but …
Je pense que vous êtes simplement confus par la ponctuation brisée sur cette page. Les _
et [
sont des rests d'un balisage, ils ne font pas partie de la syntaxe d' iptables
. Aussi le |
caractère ne peut pas être utilisé pour séparer les adresses IP, vous devez utiliser ,
(virgule).
/sbin/iptables -t nat -A OUTPUT -p tcp -d 54.224.121.116,54.224.121.116 --dport 80 -j REDIRECT --to-port 8080
fwiw Je penserais à travailler avec mod_proxy_ajp sur Apache. On dirait que vous essayez de ne pas avoir à taper / voir: 8080 et: 8443 à la fin du nom du server dans l'URL. mod_proxy_ajp est généralement plus facile pour ce que vous essayez de faire et si vous décidez de monter l'ante plus tard et de faire un peu d'équilibrage de charge, il est sortingvial de le faire si vous êtes déjà dans une configuration mod_proxy_ajp. C'est la configuration sur un de mes servers de production:
<Proxy *> AddDefaultCharset off Order deny,allow Allow from all </Proxy> ProxyPass / ajp://fqdn.for.server:8009/ ProxyPassReverse / ajp://fqdn.for.server:8009/
Vous pouvez placer le ProxyPass dans une configuration VirtualHost et ensuite, c'est comme configurer un autre hôte (vous pouvez configurer SSL sur le port 443 et le text en clair sur le port 80). Pour un plus grand spiel sur l'set du marché .
Apache + mod_proxy n'est pas le seul moyen de le faire, mais c'est celui avec lequel j'ai le plus d'expérience et il semble que ce soit less de travail que ce que vous essayez de faire (redirection de port avec le pare-feu).
Pour autant que je sache, les deuxièmes règles précisent ce qu'il faut faire si vous tentez d'atteindre l'extérieur de votre server vers votre server (donc -d
) en redirigeant 80
à 8080
. Ceci est nécessaire parce que les packages générés localement ne sont pas traités par PREROUTING
( http://www.docum.org/docum.org/kptd/ und "Mises à jour")
Note: J'utilise habituellement shorewall comme pare-feu, alors ne considérez pas que ma réponse soit pare-balles ni aromatisée aux arcs-en-ciel.