Ubuntu apache端口转发

apache端口转发顾名思义就是将一个端口的数据转发到另外一个端口上。
apache除了端口转发外还有一个域名映射,就是将一个ip地址映射给一个或多个域名。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//iptables 规则定义在 
sudo vi /etc/init.d/iptables.up.rules
//apache2域名转发规则在 
sudo vi /etc/apache2/apache2.conf
//apache2配置完成需要重启 
sudo service apache2 restart


//端口转发:
sudo iptables -t nat -A PREROUTING  -p tcp -m tcp --dport 3343 -j DNAT --to-destination 192.168.x.xx:3343
sudo iptables -t nat -A PREROUTING  -p tcp -m tcp --dport 9801 -j DNAT --to-destination 192.168.x.xx:9801
sudo iptables -t nat -A PREROUTING  -p tcp -m tcp --dport 9802 -j DNAT --to-destination 192.168.x.xx:9802
sudo iptables -t nat -A PREROUTING  -p tcp -m tcp --dport 9803 -j DNAT --to-destination 192.168.x.xx:8080

//查看路由
sudo iptables -t nat -L --line-number

//删除转发规则
sudo iptables -t nat -D PREROUTING 5

//规则保存
sudo iptables-save > /etc/init.d/iptables.up.rules

域名映射配置文件为“/etc/apache2/apache2.conf”

1
2
//编辑apache2域名转发配置文件
sudo vi /etc/apache2/apache2.conf
1
2
3
4
5
6
7
//在文件最后面添加转发内容
<VirtualHost *:80>
    ServerName x.xx.com
    ServerAlias x.xx.xxx.com
    ProxyPass / http://192.168.1.1:9801/
    ProxyPassReverse / http://192.168.1.1:9801/
</VirtualHost>

这样的话,当我们访问x.xx.com的时候便会转发到指定的ip和端口。配合上面的端口转发,便可以到达指定的服务。