nginx源码包安装

nginx源码包安装

Nginx优点

-轻量级,同样架设Web服务,比Apache占用更少的内存及资源

-高并发,Nginx处理请求是异步非阻塞的,而Apache则是阻塞性的,在高并发下Nginx能保存低资源消耗高性能 ·高度模块化的设计,编写模块相对简单

-可作为负载均衡服务器,支持7层负载均衡 ·静态处理性能比Apache高3倍以上,但动态处理不足,需要通过后端服务器支持,如Apache

安装:

安装前先关闭Apache服务,以免80端口冲突。

1、安装支持软件:

[root@www ~]# yum -y install gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre pcre-devel
[root@www ~]# rpm -q pcre-devel zlib-devel gcc gcc-c++ make pcre-devel-7.8-7.el6.x86_64
zlib-devel-1.2.3-29.el6.x86_64
gcc-4.4.7-18.el6.x86_64
gcc-c++-4.4.7-18.el6.x86_64
make-3.81-23.el6.x86_64

2、上传源码包,开始安装。

[root@www ~]# tar xf nginx-1.6.0.tar.gz -C /usr/src/
[root@www ~]# cd /usr/src/nginx-1.6.0/

3、编译安装Nginx

[root@www nginx-1.6.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_gzip_static_module --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module

[root@www nginx-1.6.0]# make -j 4 && make install

参数说明:

--prefix=/usr/local/nginx     #指定安装路径

--user=nginx --group=nginx    #指定运行 nginx进程的用户和组

--with-http_ssl_module      #支持 ssl 加密

--with-http_realip_module    #此模块支持显示真实来源 IP 地址,当 NGINX 做负载均衡服务器时,需要这个功能,这样能够使得后台服务器记录原始客户端的 IP 地址。

--with-http_gzip_static_module #开启 nginx支持 gunzip压缩静态文件功能,静态文件压缩后,可以节约带宽

--with-http_dav_module     #启用支持 WebDAV 功能。WebDAV 一种基于 HTTP 1.1协议的通信协议。它扩展了 HTTP 1.1,在 GET、POST、HEAD 等几个 HTTP 标准方法以外添加了一些新的方法,使应用程序可直接对 Web Server 直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。

--with-http_stub_status_module #启用支持 nginx 监控模块,后期通过调用此模块可以监控nginx 状态。zabbix也可以通过此模块,来监控 nginx 的性能状态

--with-http_addition_module   #启用支持(开启此模块后,nginx 可以在响应 http 请求之前或者之后追加文本内容,比如想在站点底部追加一个 js 或者 css,可以使用这个模块来实现。)

--with-http_sub_module     #启用支持(此模块为 nginx 替换响应内容的模块,比如当站点出现什么敏感字,需要批量修改所有 web 页面,且想修改很耗时间,可以使用这个模块进行替换。或者想临时在站点中加上一个通用 js 或者 css 之类的文件,也可以使用这个模块。)

--with-http_flv_module      #启用支持(支持 HTTP-FLV 斱式直播视频)。

--with-http_mp4_module     #启用支持(此模块允许 nginx 为 H.264/AAC 编译码的视频文件,如: .mp4、.m4v、和.m4a 扩展名的文件, 提供伪流媒体服务端支持。

伪流媒体是不 Flash 播放器一起配合使用的。 播放器向服务端发送 HTTP 请求,请求中的查询串是以开始时间为参数的,而服务端以流响应,这样流的开始 位置就能于请求中的时间相对应。)

--with-pcre           #启用 perl 正则表达式,perl 的正则表达式一般使用在 location 指令和ngx_http_rewrite_module url 重定向模块中。默认 ngx_http_rewrite_module 是就启用的。

make -j 4 #编译,把源代码编译成可执行的二进制文件。
-j 4 #以 4 个进程同时编译,速度快。 -j 后的数字,和 cpu 核心保持一样。

4、修改 nginx 主配置文件

[root@www nginx-1.6.0]# vim /usr/local/nginx/conf/nginx.conf

修改用户为 nginx:

改:2 #user nobody;

为:2 user nginx;

查询nginx的启动,停止方法

[root@www nginx-1.6.0]# nginx -h 

5、创建 Nginx 运行用户用于后期启动 nginx 进程使用,比你直接使用 root 用户启动 nginx 更安全。

[root@www nginx-1.6.0]# useradd -M -s /sbin/nologin -u 2000 nginx

-s    #指定登录 shell
-M   #不创建家目录
-u    #指定用户 ID 为 2000,这样方便后期不同服务器之间同步数据时,用户 ID 保持一致。linux默认用户 ID 从 1000 开始

如果不创建nginx用户,启动nginx时会报错,如图:

image

6、Nginx的启动和开机自启

为主程序nginx创建链接文件

[root@www nginx-1.6.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

Nginx的运行控制方法

手动方法控制Nginx:

nginx -t           #检测配置文件语法

执行nginx         #主程序启动Nginx

[root@www ~]# nginx            #启动nginx服务

[root@www ~]# netstat -anpt |grep nginx

tcp   0   0 0.0.0.0:80   0.0.0.0:*   LISTEN  4651/nginx

[root@www ~]# killall -1 nginx   //平滑重启 nginx (reload)

[root@www ~]# killall -s HUP nginx   //平滑重启 nginx (reload)

[root@www ~]# killall -3 nginx   //正常停止nginx (stop)

[root@www ~]# killall -s QUIT nginx   //正常停止nginx (stop)

[root@www ~]# killall -s USR1 nginx   //用于nginx的日志切换,也就是重新打开一个日志文件,例如每天要生成一个日志文件时,可以使用这个信号来控制

[root@www ~]# killall -s USR2 nginx   //用于平滑升级可执行程序

[root@www ~]# nginx -s reload

[root@www ~]# nginx -s stop</pre>

编写nginx服务脚本

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

其内容参考nginx官方文档

#!/bin/bash
# chkconfig: 2345 99 20 # description: Nginx Server Control Scripts shell
PROG="/usr/local/nginx/sbin/nginx" PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in start)if [ -f $PIDF ];then
      echo "Nginx is running...Start it is error"
    else $PROG
    fi
  ;;
  stop)if [ -f $PIDF ];then
      kill -3 $(cat $PIDF)
      rm -f $PIDF
    else echo "Nginx is stopping...Stop it is error" fi
  ;;
  restart)
    $0 stop
    $0 start
  ;;
  reload)if [ -f $PIDF ];then
      kill -1 $(cat $PIDF)else echo "Nginx is stopping...reload it is error" fi
  ;;
  status)if [ -f $PIDF ];then
      echo "Nginx is running"
    else echo "Nginx is stopped" fi
  ;;*)
    echo "Usage:$0 (start|stop|restart|reload|status)" exit 1 esac
exit 0
0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭

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

Nginx is stopped

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

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

Nginx is running...Start it is error

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

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

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

Nginx is stopping...Stop it is error

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

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

Nginx is running

7、使用systemctl工具管理Nginx

建立服务文件

vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=The nginx HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecQuit=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true [Install]
WantedBy=multi-user.target

加入开机启动

[root@www ~]# systemctl daemon-reload
[root@www ~]# systemctl enable nginx.service

查看

[root@www ~]# systemctl list-units --type=service
*nginx.service loaded active running The nginx HTTP and reverse proxy server*

查看 Nginx 版本和编译参数

[root@www ~]# nginx -V
nginx version: nginx/1.18.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx
--with-http_ssl_module --with-http_realip_module --with-http_gzip_static_module
--with-http_dav_module --with-http_stub_status_module --with-http_addition_module
--with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-pcre
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。