• FreeBSD上构架Nginx服务器


    这篇文章主要记录作者如何在FreeBSD上构架Nginx服务器。作者采用下载该程序的一个源代码包手动编译的方法,而不是使用包管理工具。这样做有两个原因:首先包质量不能保证,或无效或版本旧;其次需要在编译时对多种重要的选项进行配置。

    另外,相关FreeBSD初始优化见博主之前的博文。

    1          GCC

    Nginx是一个由C语言编写的程序,因此首先需要在系统上安装编译工具。我们采用常见GNU的GCC。确保系统上安装GCC:

    # gcc

    gcc: No input files specified

    2          wget

    一般在类UNIX环境下,大家喜欢使用wget下载。

    #cd /usr/ports/ftp/wget

    #make install clean

    刚刚安装完后,wget并未能使用,需要执行下面的命令后方可生效。

    #rehash

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

  • 相关阅读:
    (一)Java基本数据类型及运算符
    (二)Java控制执行流程
    ArrayList类源码解析——ArrayList动态数组的实现细节(基于JDK8)
    Java的四个标记接口:Serializable、Cloneable、RandomAccess和Remote接口
    Java容器类源码分析之Iterator与ListIterator迭代器(基于JDK8)
    Java容器类源码分析前言之集合框架结构(基于JDK8)
    浅谈虚树
    点分治
    Ze_Min Tree 主席树
    笛卡尔树的妙用
  • 原文地址:https://www.cnblogs.com/river-lee/p/4579490.html
Copyright © 2020-2023  润新知