在我刚安装好的centos上安装nginx。我采用下载nginx的源代码进行编码安装。
安装时会出错,主要是缺少一些库,或是虽然有些库已经安装,但不是开发版的缺少相应模块。
1、下载nginx,并解压,进入nginx目录后,运行
./configure --with-http_stub_status_module --prefix=/usr/local/nginx 其中:
--prefix=PATH # 指定安装目标路径 --with-http_stub_status_module # 开启http的状态监控
2. 在configure阶段会报错,发现缺少下面模板: gcc PCRE zlib openssl 安装相应的开发版,安装前先更新一下本地库。 yum update # 更新本地库 yum install gcc yum install pcre-devel yum install zlib-devel yum install openssl-devel 安装后再进行configure,看是否成功
3. 在nginx目录下 make,没报错后 make install
4. 因为我对nginx配置还不是很熟悉,暂时不讲配置,以后了解后会补充。使用默认的配置文件,启动nginx。
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
如果运行成功的话,用命令 netstat -antlp | grep nginx 可以看到 nginx侦听tcp 80端口。
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1440/nginx
因为centos下会有默认的防火墙策略来禁止外部机器访问,需要修改防火墙策略,修改配置文件 /etc/sysconfig/iptables,增加允许外部访问80端口的权限:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT 此配置意思是: -A: 增加一条策略 INPUT:对于输入流量 -m state --state NEW:进行状态匹配,数据包是一个新的连接上的数据包。 -m tcp -p tcp --dport 80:进行tcp匹配,协议是tcp,目标端口号为 80 端口 -j: 匹配成功后,采用动作是允许数据包通过
我现在的防火墙配置文件如下:
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
至此,我的nginx服务器已经正常运行了。虽然目前还没能运行php,也还缺少常用的模块,不过至少能正常运行,以后需要的模块以后再加。
|