2014-02-25 10:53:01
来 源
kejihao
Apache
本文介绍Apache服务器中使用多端口配置多网站,希望对于初学Apache服务器相关的朋友有帮助,更多Apache安装、配置、报错处理等资源请本站内搜索。
今天在设置APACHE的时候,想用81端口,就是无法启动?找了半天,发现网上有人说是因为默认CENTOS开启了防火墙,导致除80外的端口启用不了。

执行”setup”命令启动文字模式配置实用程序,在”选择一种工具”中选择”防火墙配置”,然后选择”运行工具”按钮,出现防火墙配置界面,将” 安全级别”设为”禁用”,然后选择”确定”即可.

或者用命令:

#/sbin/iptables -I INPUT -p tcp Cdport 80 -j ACCEPT

#/sbin/iptables -I INPUT -p tcp Cdport 22 -j ACCEPT

#/etc/rc.d/init.d/iptables save

这样重启计算机后,防火墙默认已经开放了80和22端口

这里应该也可以不重启计算机:

#/etc/init.d/iptables restart

防火墙的关闭,关闭其服务即可:

查看防火墙信息:

#/etc/init.d/iptables status

关闭防火墙服务:

#/etc/init.d/iptables stop

永久关闭?不知道怎么个永久法:

#chkconfig Clevel 35 iptables off

看了好几个页面内容都有错,下面是正确方法:

#/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT

#/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT 然后保存:

#/etc/rc.d/init.d/iptables save 再查看是否已经有了:

[[email protected] ~]# /etc/init.d/iptables status Table: filter Chain INPUT (policy ACCEPT) num target prot opt source destination    1 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:80 2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 3 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0    Chain FORWARD (policy ACCEPT) num target prot opt source destination    1 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0

服务器遭受到大量的大量SYN_RECV,80端号占死,网站打不开 没有硬防 有什么办法可以解决吗

1

sysctl -w net.ipv4.tcp_syncookies=1 #启用使用syncookies

sysctl -w net.ipv4.tcp_synack_retries=1 #降低syn重试次数

sysctl -w net.ipv4.tcp_syn_retries=1 #降低syn重试次数

sysctl -w net.ipv4.tcp_max_syn_backlog=6000 #最大半连接数

sysctl -w net.ipv4.conf.all.send_redirects=0

sysctl -w net.ipv4.conf.all.accept_redirects=0 #不接受重定向的icmp

sysctl -w net.ipv4.tcp_fin_timeout=30

sysctl -w net.ipv4.tcp_keepalive_time=60

sysctl -w net.ipv4.tcp_window_scaling=1

sysctl -w net.ipv4.icmp_echo_ignore_all=1 #禁止ICMP

sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1 #ICMP禁止广播 2.限制单位时间内连接数 iptables -N syn-flood

iptables -A FORWARD -p tcp --syn -j syn-flood

iptables -A INPUT -p tcp --syn -j syn-flood

iptables -A syn-flood -p tcp --syn -m limit --limit 3/s --limit-burst 1 -j ACCEP

iptables -A syn-flood -j DROP

iptables -A INPUT -i eth0 -p tcp ! --syn -m state --state NEW -j DROP

iptables -A INPUT -p tcp --syn -m state --state NEW -j DROP 3 如果还是不行,

iptables -A INPUT -p tcp --dport 80 -m recent --name BAD_HTTP_ACCESS --update --seconds 60 --hitcount 30 -j REJECT

iptables -A INPUT -p tcp --dport 80 -m recent --name BAD_HTTP_ACCESS --set -j ACCEP 如攻击过来的流量大于你的服务器的流量,那就没有什么办法了,如果流量不大,以上方法,可以暂时保证你的80可以访问 如果你的内核已经支持iptables   connlimit可以使用, iptables 设定部份,也可以使用 iptables -I FORWARD -p tcp --syn -m connlimit --connlimit-above 5 -j DROP iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 5 -j REJECT 对付SYN FLOOD的话,真正起作用的是:

sysctl -w net.ipv4.tcp_syncookies=1        #启用使用syncookies

sysctl -w net.ipv4.tcp_synack_retries=1        #降低syn重试次数

其他IPTABLES的限制速度功能不能用来对付SYN FLOOD的(不能阻止拒绝服务,但是确实可以防止服务器CRASH)。

---------------------------------------------------------------------

有时候我们会有这种需求:

当访问http://localhost时显示文件夹A下面的内容, 而访问http://localhost:888时显示B下面的内容。

如何让Apache实现这种功能呢?

其实很简单(以下皆为操作httpd.conf):

首先 添加Listen 888,让Apache也监听888这个端口

其次,为888端口设置一个VirtualHost

<VirtualHost *:888>

ServerName  localhost

DocumentRoot "D:/wamp/news"

</VirtualHost>

最后,设置其目录的访问权限:

<Directory "D:/wamp/news/">

Options FollowSymLinks

Order Deny,Allow

Allow from 127.0.0.1

</Directory>

更新

如果要在一个端口设置多个virtualhost:

NameVirtualHost *:80<VirtualHost *:80>

ServerName  localhost

DocumentRoot "...

<Directory "...">

...

</Directory>

</VirtualHost><VirtualHost *:80>

ServerName  symfony

DocumentRoot "D:wampsfpweb"

<Directory "D:wampsfpweb">

...

</Directory>

</VirtualHost>

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。