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服务器

相关文章
相关标签/搜索