编译安装Nginx

Nginx官方站点:http://nginx.org

Nginx下载
wget http://nginx.org/download/nginx-1.6.2.tar.gz

1)安装支持软件:
Nginx的配置及运行需要pcre、zlib等软件包的支持,因此应预先安装这些软件的开发包(devel),以便提供相应的库和头文件,确保Nginx的安装顺利完成。

[root@nginx ~]# service iptables stop
[root@nginx ~]# setenforce 0
[root@nginx ~]# yum -y install pcre-devel zlib-devel

2)创建运行用户、组:
Nginx服务程序默认以nobody身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限,增加灵活性、降低安全风险。如:创建一个名为nginx的用户,不建立宿主目录,也禁止登录到shell环境。

[root@nginx ~]# useradd -M -s /sbin/nologin nginx

3)编译安装nginx:
释放nginx源码包
[root@nginx ~]# tar xf nginx-1.6.2.tar.gz -C /usr/src/

编译前配置:
[root@nginx ~]# cd /usr/src/nginx-1.6.2/
[root@nginx nginx-1.6.2]# ./configure –prefix=/usr/local/nginx –user=nginx –group=nginx –with-http_stub_status_module –with-http_ssl_module –with-http_flv_module –with-http_gzip_static_module

注:配置前可以参考:./configure –help给出说明
–prefix 设定Nginx的安装目录
–user和—group 指定Nginx运行用户和组
–with-http_stub_status_module 启用http_stub_status_module模块以支持状态统计
–with-http_ssl_module 启用SSL模块
–with-http_flv_module 启用FLV模块,提供寻求内存使用基于时间的偏移量文件

编译 安装:
[root@nginx nginx-1.6.2]# make && make install

为了使Nginx服务器的运行更加方便,可以为主程序nginx创建链接文件,以便管理员直接执行nginx命令就可以调用Nginx的主程序。

[root@nginx nginx-1.6.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/
[root@nginx nginx-1.6.2]# ll /usr/local/bin/nginx
lrwxrwxrwx 1 root root 27 12-29 07:24 /usr/local/bin/nginx -> /usr/local/nginx/sbin/nginx

Nginx的运行控制:
与Apache的主程序httpd类似,Nginx的主程序也提供了”-t”选项用来对配置文件进行检查,以便找出不当或错误的配置。配置文件nginx.conf默认位于安装目录/usr/local/nginx/conf/目录中。若要检查位于其他位置的配置文件,可使用”-c”选项来指定路径。

[root@nginx conf]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

启动、停止Nginx:
直接运行nginx即可启动Nginx服务器,这种方式将使用默认的配置文件,若要改用其他配置文件,需添加”-c 配置文件路径”选项来指定路径。需要注意的是,若服务器中已安装有httpd等其他WEB服务软件,应采取措施(修改端口,停用或卸载)避免部突。

[root@nginx conf]# service httpd stop
[root@nginx conf]# netstat -anpt |grep :80
[root@nginx conf]# nginx
[root@nginx conf]# netstat -anpt |grep :80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 6810/nginx: master

通过检查 Nginx程序的监听状态,或者在浏览器中访问此WEB服务(默认页面将显示”Welcome to nginx!”),可以确认Nginx服务是否正常运行。

[root@nginx ~]# elinks –dump http://localhost
Welcome to nginx!

主程序Nginx支持标准的进程信号,通过kill或者killall命令传送

HUP 重载配置 等同于-1
QUIT 退出进程 等同于-3
KILL 杀死进程
USR1 重新写入日志
USR2 平滑重启

[root@nginx ~]# killall -s HUP nginx
[root@nginx ~]# killall -s QUIT nginx
[root@nginx ~]# netstat -anpt |grep :80

http://urchin.blog.51cto.com/4356076/988860/

当Nginx进程运行时,PID号默认存放在logs/目录下的nginx.pid文件中,因此若改用kill命令,也可以根据nginx.pid文件中的PID号来进行控制。

为了使Nginx服务的启动、停止、重载等操作更加方便,可以编写Nginx服务脚本,并使用chkconfig和service工具来进行管理,也更加符合RHEL系统的管理习惯。

[root@nginx ~]# vim /etc/init.d/nginx

脚本
bin/bash
chkconfig: 2345 99 20
PROG=”/usr/local/nginx/sbin/nginx”
PIDF=”/usr/local/nginx/logs/nginx.pid”
case “ 1instart) 1 ” i n s t a r t ) PROG
;;
stop)
kill -s QUIT (cat ( c a t PIDF)
;;
restart)
0stop 0 s t o p 0 start
;;
reload)
kill -s HUP (cat ( c a t PIDF)
;;
*)
echo “Usage: $0 {start|stop|restart|reload}”
exit 1
esac
exit 0

[root@nginx ~]# chmod +x /etc/init.d/nginx
[root@nginx ~]# chkconfig –add nginx
[root@nginx ~]# chkconfig nginx on
[root@nginx ~]# chkconfig –list nginx
nginx 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭

这样就可以通过nginx脚本来启动、停止、重启、重载Nginx服务器了。

3、配置文件nginx.conf:
在Nginx服务器的主配置文件nginx.conf中,包括全局配置、I/O事件配置、HTTP配置这三大块内容,配置语句的格式为”关键字值;”(末尾以分号表示结束),以”#”开始的部分表示注释。

1)全局配置
由各种配置语句组成,不使用特定的界定标记。全局配置部分包括运行用户、工作进程数、错误日志、PID存放位置等基本设置。
常用配置项:

user nginx; //运行用户,Nginx的运行用户实际是编译时指定的nginx,若编译时未指定则默认为nobody
worker_processes 2; //指定nginx启动的工作进程数量,建议按照cpu数目来指定,一般为它的倍数
worker_cpu_affinity 00000001 00000010; //为每个进程分配cpu,上例中将2个进程分配到两个cpu,当然可以写多个,或者将一个
进程分配到多个cpu
worker_rlimit_nofile 102400; //这个指令是指当一个nginx进程打开的最多文件数目,理论值应该是最多打开文件数(ulimit
-n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n的值
保持一致。(通过”ulimit –n 数值”可以修改打开的最多文件数目)
error_log logs/error.log; //全局错误日志文件的位置
pid logs/nginx.pid; //PID文件的位置

2)I/O事件配置:
使用”events {}”界定标记,用来指定Nginx进程的I/O响应模型,每个进程的连接数等设置
events {
use epool; //使用epool模型,对于2.6以上的内核,建议使用epool模型以提高性能
worker_connections 4096; //每个进程允许的最多连接数(默认为1024),每个进程的连接数应根据实际需要来定,一般在10000以下,理论上每台nginx服务器的最大连接数为worker_processes*worker_connections,具体还要看服务器的硬件、带宽等。
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值