设为首页 收藏本站
查看: 825|回复: 0

[经验分享] Centos6.7编译安装Nginx1.81

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-4-29 17:30:19 | 显示全部楼层 |阅读模式
Centos6.7编译安装Nginx1.81 +mysql-5.5.33 + php-5.5
1、nginx简介:Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、新浪、网易、腾讯等。
Nginx的特性:
              模块化设计、较好扩展性
              高可靠性
                     master-->worker
              低内存消耗
                     10000个keep-alive连接在Nginx仅消耗2.5MB
              支持热部署
                     不停机而更新配置文件、更换日志文件、更新服务器程序版本

基本功能:
              静态资源的web服务器,能缓存打开的文件 描述符
              http,smtp, pop3协议的反向代理服务器,缓存、负载均衡;
              支持FastCGI (fpm)
              模块化,非DSO机制,过滤器zip,SSI及图像大小调整;
              支持SSL

扩展功能:
              基于名称和IP的虚拟主机;
              支持keepalive
              支持平滑升级
              定制访问日志,支持使用日志缓冲区提高日志存储性能
              支持url rewrite
              支持路径别名
              支持基于IP及用户的访问控制
              支持速率限制,支持并发数限制

Nginx的基本架构:
              一个master进程,生成一个或多个worker
              事件驱动: epoll, kqueue, /dev/poll (event ports)
                     消息通知:select, poll, rt signals
              支持sendfile, sendfile64
              支持AIO
              支持mmap
Nginx的版本
    Nginx版本分为主线版和稳定版,主线版更新速度较快,从官网上看大约一个月更新1-2次,目前 最新主线版已更新到nginx-1.9.14,而官方宣布的最新稳定版则是nginx-1.8.1,and本文就以1.8.1版为例演示其在CentOS7上的安装和配置过程。Nginx官方网站http://nginx.org/
2、下载:
1
2
3
4
5
6
[iyunv@nginx ~]# mkdir /tools
[iyunv@nginx ~]# cd /tools/
[iyunv@nginx tools]# wget http://nginx.org/download/nginx-1.8.1.tar.gz
[iyunv@nginxtools]# ls nginx-1.8.1.tar.gz -sh
816K nginx-1.8.1.tar.gz
# 可以看到nginx源码包非常小



3、解压
1
2
3
4
[iyunv@nginx tools]# tar xf nginx-1.8.1.tar.gz
[iyunv@nginx tools]# cd nginx-1.8.1
[iyunv@nginx nginx-1.8.1]# ls
auto  CHANGES CHANGES.ru  conf  configure contrib  html  LICENSE man  README  src



4、安装准备4.1、先配置阿里云yum源:
1
2
3
4
5
6
7
8
9
10
11
1、备份
# mv/etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/
CentOS 6:
# wget-O /etc/yum.repos.d/CentOS-Base.repo

CentOS 7:
# wget-O /etc/yum.repos.d/CentOS-Base.repo

3、之后运行yummakecache生成缓存



4.2、添加Epel源:
1
2
3
4
5
6
7
8
9
10
1、备份(如有配置其他epel源)
# mv/etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
# mv/etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup

2、下载新repo 到/etc/yum.repos.d/
epel(RHEL 7):
    # wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

epel(RHEL 6):
    # wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo



4.3、解决依赖关系编译安装nginx需要事先需要安装开发包组"DevelopmentTools"和 "Development Libraries"。同时,还需要专门安装pcre-devel,openssl-devel包:
1
2
3
4
[iyunv@nginx nginx-1.8.1]# yum grouplist"Development Tools" "Development Libraries"
[root@nginxnginx-1.8.1]# yum groupinstall Development Tools Development Libraries -y
# yum安装nginx必须的依赖库
# yum -y install pcre-devel openssl openssl-devellibxml2-devel libxslt-devel perl-devel perl-ExtUtils-Embed



4.4、创建用户:创建一个名为nginx且没有登录权限的用户和一个名为nginx的用户组,用来运行nginx服务进程:
1
2
3
4
5
6
[iyunv@nginx nginx-1.8.1]# groupadd -r nginx
[iyunv@nginx nginx-1.8.1]# useradd -r -g nginx nginx -s/sbin/nologin -M              # g GID:指明用户所属基本组,可为组名,也可以GID;
                     #     -d /PATH/TO/HOME_DIR: 以指定的路径为家目录;
                     #     -s SHELL: 指明用户的默认shell程序,可用列表在/etc/shells文件中;
                     #     -r: 创建系统用户
            #  -M: 不自动创建用户的家目录



1
2
3
4
[iyunv@nginx nginx-1.8.1]# tail -1/etc/passwd
nginx:x:500:500::/home/nginx:/sbin/nologin
[iyunv@nginx nginx-1.8.1]# id nginx
uid=497(nginx)gid=497(nginx) groups=497(nginx)



4.5、新建Nginx安装时所需要的目录
1
2
3
4
5
[iyunv@nginx ~]# cd /var/tmp/
[iyunv@nginx tmp]# mkdir -p/var/tmp/nginx/{client,proxy,fastcgi,uwsgi,scgi}
[iyunv@nginx tmp]# mkdir -p /var/run/nginx
[iyunv@nginx tmp]# cd /tools/nginx-1.8.1
[root@nginxnginx-1.8.1]#



5、编译安装:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# ./configure \
  --prefix=/usr/local/nginx \
--sbin-path=/usr/local/nginx/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_perl_module \
  --with-http_flv_module\
--with-http_stub_status_module \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/tmp/nginx/client/ \
--http-proxy-temp-path=/var/tmp/nginx/proxy/ \
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
--http-scgi-temp-path=/var/tmp/nginx/scgi \
  --with-pcre



1
# make && make install



6、为nginx提供SysV init脚本:
新建文件/etc/rc.d/init.d/nginx,内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
[iyunv@nginx ~]# vim /etc/rc.d/init.d/nginx

#!/bin/sh
#
# nginx - this script starts and stops the nginx
daemon
#
# chkconfig:  
- 85 15
# description:
Nginx is an HTTP(S) server, HTTP(S) reverse \
#               proxy and IMAP/POP3 proxy server
# processname: nginx
# config:     
/etc/nginx/nginx.conf
# config:     
/etc/sysconfig/nginx
# pidfile:   
/var/run/nginx.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ "$NETWORKING" = "no" ]
&& exit 0
# 这里需要设置nginx的sbin目录
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)

NGINX_CONF_FILE="/etc/nginx/nginx.conf"

[ -f /etc/sysconfig/nginx ] && .
/etc/sysconfig/nginx

lockfile=/var/lock/subsys/nginx

make_dirs() {
   # make
required directories
  user=`nginx -V 2>&1 | grep "configure arguments:" | sed
's/[^*]*--user=\([^ ]*\).*/\1/g' -`
  options=`$nginx -V 2>&1 | grep 'configure arguments:'`
   for opt in
$options; do
       if [
`echo $opt | grep '.*-temp-path'` ]; then
          value=`echo $opt | cut -d "=" -f 2`
           if
[ ! -d "$value" ]; then
              # echo "creating" $value
              mkdir -p $value && chown -R $user $value
           fi
       fi
   done
}

start() {
    [ -x
$nginx ] || exit 5
    [ -f
$NGINX_CONF_FILE ] || exit 6
    make_dirs
    echo -n
$"Starting $prog: "
    daemon
$nginx -c $NGINX_CONF_FILE
    retval=$?
    echo
    [ $retval
-eq 0 ] && touch $lockfile
    return
$retval
}

stop() {
    echo -n
$"Stopping $prog: "
    killproc
$prog -QUIT
    retval=$?
    echo
    [ $retval
-eq 0 ] && rm -f $lockfile
    return
$retval
}

restart() {
   configtest || return $?
    stop
    sleep 1
    start
}

reload() {
   configtest || return $?
    echo -n
$"Reloading $prog: "
    killproc
$nginx -HUP
    RETVAL=$?
    echo
}

force_reload() {
    restart
}

configtest() {
  $nginx -t
-c $NGINX_CONF_FILE
}

rh_status() {
    status
$prog
}

rh_status_q() {
    rh_status
>/dev/null 2>&1
}

case "$1" in
    start)
       rh_status_q && exit 0
        $1
        ;;
    stop)
       rh_status_q || exit 0
        $1
        ;;
   restart|configtest)
        $1
        ;;
    reload)
       rh_status_q || exit 7
        $1
        ;;
   force-reload)
       force_reload
        ;;
    status)
        rh_status
        ;;
   condrestart|try-restart)
       rh_status_q || exit 0
           ;;
    *)
        echo
$"Usage: $0
{start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
        exit
2
esac



7、给脚本赋予执行权限:
1
[iyunv@nginx ~]# chmod +x /etc/rc.d/init.d/nginx



8、添加至服务管理列表,并让其开机自动启动:
1
2
[iyunv@nginx ~]# chkconfig --add nginx
[iyunv@nginx~]# chkconfig nginx on



9、启动服务
1
[iyunv@nginx nginx-1.8.1]# service nginx start



10、防火墙设置:

(1) 插入新的防火墙规则,开通80端口

1
2
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT



(2) 保存规则:

1
/etc/rc.d/init.d/iptables save



(3) 重启防火墙服务

1
/etc/init.d/iptables restart



1
2
3
注意:内网环境中iptables建议关闭:
# server iptables stop
# chkonfig iptables off




11、关闭SELINUX
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
永久关闭:
[iyunv@nginx nginx-1.8.1]# vi/etc/selinux/config
# This file controls the state ofSELinux on the system.
# SELINUX= can take one of thesethree values:
#       enforcing - SELinux security policy isenforced.
#       permissive - SELinux prints warningsinstead of enforcing.
#       disabled - SELinux is fully disabled.
SELINUX=disabled
# SELINUXTYPE= type of policy inuse. Possible values are:
#       targeted - Only targeted network daemonsare protected.
#       strict - Full SELinux protection.
SELINUXTYPE=targeted

# SELINUXTYPE= type of policy inuse. Possible values are:
#       targeted - Only targeted network daemonsare protected.
#       strict - Full SELinux protection.
SELINUXTYPE=targeted



临时关闭:

1
[iyunv@nginx nginx-1.8.1]# setenforce 0



12、测试:浏览器访问http://192.168.0.111
wKiom1ch5UjCwa1MAAEGz59h-EU956.jpg
nginx编译安装成功!


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-210483-1-1.html 上篇帖子: ngx_http_process_request_line函数解析 下篇帖子: Nginx设置浏览器本地缓存
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表