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

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

[复制链接]

尚未签到

发表于 2018-4-26 11:02:42 | 显示全部楼层 |阅读模式
声明:本系列教程由马哥教育提供指导:
  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、下载:
[root@nginx ~]# mkdir /tools
[root@nginx ~]# cd /tools/
[root@nginx tools]# wget http://nginx.org/download/nginx-1.8.1.tar.gz
[root@nginxtools]# ls nginx-1.8.1.tar.gz -sh
816K nginx-1.8.1.tar.gz
# 可以看到nginx源码包非常小3、解压
[root@nginx tools]# tar xf nginx-1.8.1.tar.gz
[root@nginx tools]# cd nginx-1.8.1
[root@nginx nginx-1.8.1]# ls
auto  CHANGES CHANGES.ru  conf  configure contrib  html  LICENSE man  README  src4、安装准备
4.1、先配置阿里云yum源:
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、备份(如有配置其他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.repo4.3、解决依赖关系
  编译安装nginx需要事先需要安装开发包组"DevelopmentTools"和 "Development Libraries"。同时,还需要专门安装pcre-devel,openssl-devel包:
[root@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-Embed4.4、创建用户:
  创建一个名为nginx且没有登录权限的用户和一个名为nginx的用户组,用来运行nginx服务进程:
[root@nginx nginx-1.8.1]# groupadd -r nginx
[root@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: 不自动创建用户的家目录[root@nginx nginx-1.8.1]# tail -1/etc/passwd
nginx:x:500:500::/home/nginx:/sbin/nologin
[root@nginx nginx-1.8.1]# id nginx
uid=497(nginx)gid=497(nginx) groups=497(nginx)4.5、新建Nginx安装时所需要的目录
[root@nginx ~]# cd /var/tmp/
[root@nginx tmp]# mkdir -p/var/tmp/nginx/{client,proxy,fastcgi,uwsgi,scgi}
[root@nginx tmp]# mkdir -p /var/run/nginx
[root@nginx tmp]# cd /tools/nginx-1.8.1
[root@nginxnginx-1.8.1]#5、编译安装:
# ./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# make && make install6、为nginx提供SysV init脚本:
  新建文件/etc/rc.d/init.d/nginx,内容如下:
[root@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
esac7、给脚本赋予执行权限:
[root@nginx ~]# chmod +x /etc/rc.d/init.d/nginx8、添加至服务管理列表,并让其开机自动启动:
[root@nginx ~]# chkconfig --add nginx
[root@nginx~]# chkconfig nginx on9、启动服务
[root@nginx nginx-1.8.1]# service nginx start10、防火墙设置:
(1) 插入新的防火墙规则,开通80端口
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT(2) 保存规则:
/etc/rc.d/init.d/iptables save(3) 重启防火墙服务
/etc/init.d/iptables restart
注意:内网环境中iptables建议关闭:
# server iptables stop
# chkonfig iptables off

11关闭SELINUX
永久关闭:
[root@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临时关闭:
[root@nginx nginx-1.8.1]# setenforce 0  
12、测试:
  浏览器访问http://192.168.0.111
DSC0000.png

  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-452207-1-1.html 上篇帖子: centos6.7安装saltstack 下篇帖子: 在CentOS 中yum 安装Tomcat 6
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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