centos安裝nginx

在我剛安裝好的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


5. 在centos 終端裏用運行 wget http://127.0.0.1/ , 看是否能獲取到 index.html 頁面。再在其他機器上通過命令行運行wget或瀏覽器輸入 http://xxx.xxx.xxx.xxx/ 訪問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,也還缺少常用的模塊,不過至少能正常運行,以後需要的模塊以後再加。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章