FreeBSD上構架Nginx服務器

這篇文章主要記錄做者如何在FreeBSD上構架Nginx服務器。做者採用下載該程序的一個源代碼包手動編譯的方法,而不是使用包管理工具。這樣作有兩個緣由:首先包質量不能保證,或無效或版本舊;其次須要在編譯時對多種重要的選項進行配置。nginx

另外,相關FreeBSD初始優化見博主以前的博文。正則表達式

1          GCC

Nginx是一個由C語言編寫的程序,所以首先須要在系統上安裝編譯工具。咱們採用常見GNU的GCC。確保系統上安裝GCC:算法

# gccvim

gcc: No input files specified服務器

2          wget

通常在類UNIX環境下,你們喜歡使用wget下載。工具

#cd /usr/ports/ftp/wget測試

#make install clean優化

剛剛安裝完後,wget並未能使用,須要執行下面的命令後方可生效。網站

#rehashspa

3          PCRE

Nginx編譯須要PCRE(Perl Compatible Regular Expression),由於Nginx的Rewrite模塊和HTTP核心模塊會使用到PCRE正則表達式語法。

使用ports方式安裝PCRE:

#cd /usr/ports/devel/pcre

#make install clean

若原來安裝有舊版本,可能會報錯,使用make reinstall clean便可。

4          zlib庫

zlib庫提供了開發人員的壓縮算法,在Ngnix的各類模塊中須要使用。可使用ports方法,在安裝PHP時一同安裝。在此採用獨立安裝方法。首先查看官方站http://zlib.net的最新版本,而後進行下載解壓配置安裝:

#wget http://zlib.net/zlib-1.2.8.tar.gz

#tar zxvf zlib-1.2.8.tar.gz

#cd zlib-1.2.8

#./configure --libdir=/usr/lib --includedir=/usr/include

#make install clean

 

5          Nginx

(1)     首先查看官網網站http://nginx.net查看最新版本,而後進行下載解壓:

#wget http://nginx.org/download/nginx-1.5.1.tar.gz

#tar zxvf nginx-1.5.1.tar.gz

#cd nginx-1.5.1

 

(2)     Nginx編譯會以debug方式編譯,編譯後的文件有3兆。經如下修改後,文件能夠減少到500KB左右。

#vim auto/cc/gcc

將約174行的「CFLAGS="$CFLAGS -g"」註釋掉。

 

(3)     配置選項。

這些選項在完成程序的創建安裝後不可編輯,他直接影響該項目的二進制文件。

l  較容易的是所有采用默認的選項,可是這樣設置會使你錯過跟多功能。

#./configure

l  普通的HTTP和HTTPS服務器。(在安裝FreeBSD的時候,已經內建了www用戶和www用戶組,所以不須要在本身創建了)

#./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module

其餘模塊也可經過選項進行安裝,但可能須要安裝額外的庫。

l  郵件服務器代理。

#./configure --user=www --group=www --with-mail --with-mail_ssl_module

若僅僅做爲郵件代理不使用HTTP服務,則加入選項「--without-http」

 

(4)     編譯和安裝nginx。

#make

#make install clean

 

(5)     測試配置文件

#/usr/local/nginx/sbin/nginx -t

 

(6)     開機後自動啓動Nginx

l   建立Nginx服務配置腳本

#vim /usr/local/etc/rc.d/nginx.sh

加入如下內容:(若在安裝時改變了默認目錄,請加以修改)

#!/bin/sh

 

nginx=/usr/local/nginx/sbin/nginx

conf=/usr/local/nginx/conf/nginx.conf

 

case $1 in

start)

echo -n "Starting Nginx"

$nginx -c $conf

echo " done"

;;

stop)

echo -n "Stopping Nginx"

killall -9 nginx

echo " done"

       ;;

test)

$nginx -t -c $conf

       ;;

       reload)

echo -n "Reloading Nginx"

ps auxww | grep nginx | grep master | awk '{print $2}' | xargs kill -HUP

echo " done"

       ;;

       restart)

              $nginx stop

              $nginx start

       ;;

show)

ps -aux|grep nginx

       ;;

*)

echo -n "Usage: $0 {start|restart|reload|stop|test|show}"

;;

esac

 

exit 0

 

l  可執行權限

#chmod +x /usr/local/etc/rc.d/nginx.sh

l  加入自啓動項

#vim /etc/rc.conf 

加入「nginx_enable="YES"」FreeBSD上構架Nginx服務器

相關文章
相關標籤/搜索