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服务器
FreeBSD上构架Nginx服务器的更多相关文章
- nginx服务器中的安全配置
一.关闭SELinux 安全增强型Linux(SELinux)的是一个Linux内核的功能,它提供支持访问控制的安全政策保护机制. 但是,SELinux带来的附加安全性和使用复杂性上不成比例,性价比不 ...
- Nginx 之三:nginx服务器模块、web请求处理机制及事件驱动模型、进程功能和进程间通信
一:Nginx的模块化结构设计: 1.核心模块:指的是nginx服务器运行当中必不可少的模块,这些模块提供了最基本最核心的服务,比如权限控制.进程管理.错误日志.事件驱动.正则表达式解析等,nginx ...
- nginx 服务器配置文件指令
localtion 配置 语法结构: location [ = ~ ~* ^~ ] uri{ ... } uri 变量是带匹配的请求字符, 可以是不含正则表达的字符串, ...
- Nginx总结(九)Nginx服务器高性能优化的配置--轻松实现10万并发访问量
前面讲了如何配置Nginx虚拟主机,如何配置服务日志等很多基础的内容,大家可以去这里看看nginx系列文章:https://www.cnblogs.com/zhangweizhong/category ...
- Nginx服务器性能优化与安全配置实践指南
转载自:https://www.bilibili.com/read/cv16151784?spm_id_from=333.999.0.0 1.引言 1.1 目的 为了更好的指导部署与测试艺术升系统ng ...
- Nginx 服务器 之Nginx与tomcat实现负载均衡
本文讲解我们如何使用Nginx做反向带服务器,实现nginx与tomcat服务器集群做负载均衡. 一.nginx与tomcat实现负载均衡 1.在/usr/local/ngnix/conf 创建 ...
- Nginx服务器 之反向代理与负载均衡
一.反向代理 正向代理: 客户端要获取的资源就在服务器上,客户端请求的资源路径就是最终响应资源的服务器路径,这就是正向代理.正向代理的特点:就是我们明确知道要访问哪个网站地址. 反向代理: 客户端想获 ...
- 把域名绑定到某个项目,以nginx服务器为例
一:登陆域名服务器平台,把域名解析到项目对应的IP上面. 二:配置nginx服务器 1./etc/nginx/conf.d/ 在服务器该目录下,添加.conf文件,如命名为:www.demo.com. ...
- 在阿里云服务器(ECS)上从零开始搭建nginx服务器
本文介绍了如何在阿里云服务器上从零开始搭建nginx服务器.阿里云服务器(ECS)相信大家都不陌生,感兴趣的同学可以到http://www.aliyun.com/product/ecs去购买,或到体验 ...
随机推荐
- Ajax基础与登入
Ajax 是 Asynchronous JavaScript and XML的缩写. Ajax的优点: 优点:减轻服务器的负担,按需取数据,最大程度的减少冗余请求 局部刷新页面,减少用户心理和实际的等 ...
- Android开发遇到短信备份失败
今天做了一个有关ContentProvider的短信备份的小案例,遇到短信备份失败,费了一番周折后终于找到了问题所在 该案例是将短信写到一个xml文件然后保存在手机存储中实现短信的备份功能,关键实现代 ...
- Android 使用纯Java代码布局
java布局 java代码布局和xml布局的区别 1.Java纯布局更加的灵活,比如自定义控件或一些特殊要求时,使用java代码布局 2.常用的xml布局是所见即所得的编写方式,以及xml本身拥有一些 ...
- 求两个字符串的最长公共子串(LCS)
http://tianyunpu2008.blog.163.com/blog/static/6559379920089162236915/
- Linux下安装Java(JDK8)
一.文件准备 1.1 文件名称 jdk-8u121-linux-x64.tar.gz 1.2 下载地址 http://www.oracle.com/technetwork/java/javase/do ...
- 记一次搭建SS服务器,完整的过程。
前言 这几天为了登录外网查询资料,谷歌经常抽风,国外的博客也打不开,都要整崩溃了.我以前(直到昨天以前)都是使用修改hosts来访问外网的,用的是 老D(https://laod.cn/hosts) ...
- 机器学习:Python实现lms中的学习率的退火算法
''' 算法:lms学习率的退火算法 解决的问题:学习率不变化,收敛速度较慢的情况 思路:由初始解和控制参数初值开始,对当前解重复进行"产生新解-->计算目标函数差--> 接受或 ...
- 【转】一个工具类(可以控制多层嵌套的movieClip)
好多人也应该遇到和我一样的问题,当设计师给了我们一个多层嵌套的movieClip时,我们在写代码时无法将movieClip完全停止掉,主要是基于好多movieClip有深层嵌套,主时间轴不在最上层导致 ...
- VB中的GDI编程-2 画笔
p{ font-size: 15px; } .alexrootdiv>div{ background: #eeeeee; border: 1px solid #aaa; width: 99%; ...
- Selenium测试专项一班隆重开班
Selenium测试专项一班隆重开班 应广大测试技术人员要求,以及企业技术需求.Selenium提前一周开课了,只针对合作的每家企业提供1-2个参训名额.预计培训60人次.但报名人数却远远超出我们预期 ...