一、Nginx 源码包安装与配置

1、环境准备

操作系统、内核版本: CentOS 6.8  2.6.32-642.el6.x86_64
Nginx 软件版本: nginx-1.10.2

2、创建Nginx用户

[root@web01 ~]# groupadd -g 108 -r nginx
[root@web01 ~]# useradd -u 108 -r -g 108 nginx
[root@web01 ~]# id nginx
uid=108(nginx) gid=108(nginx) groups=108(nginx)

3、安装Nginx所需依赖包

# yum -y install pcre-devel openssl-devel gcc-c++ zlib-devel

4、编译安装Nginx-1.10.2

# cd /root/soft
# tar -xf nginx-1.10.2.tar.gz
# cd nginx-1.10.2
# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_dav_module
# make
# make install

5、为nginx提供SysV init启动脚本(/etc/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="/usr/local/nginx/sbin/nginx" 
prog=$(basename $nginx) 
NGINX_CONF_FILE="/usr/local/nginx/etc/conf/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

6、Nginx启动脚本赋予执行权限

# chmod +x /etc/init.d/nginx

7、添加到服务管理列表,并设置开机自动启动服务

# chmod +x /etc/init.d/nginx 
# chkconfig --add nginx
# chkconfig nginx on
# chkconfig --list ngin
nginx           0:off   1:off   2:on    3:on    4:on    5:on    6:off

8、启动Nginx服务

Nginx启动前检查语法:(修改配置,重启服务前一定要先检查配置文件语法。)
[root@web01 nginx-1.10.2]# /usr/local/nginx/sbin/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服务:
[root@web01 nginx-1.10.]# /etc/init.d/nginx start
Starting nginx: [ OK ]

9、查看Nginx服务对应端口是否启动成功

COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx   4547  root    6u  IPv4  17508      0t0  TCP *:http (LISTEN)
nginx   4548 nginx    6u  IPv4  17508      0t0  TCP *:http (LISTEN)
[root@web01 nginx-1.10.2]# netstat -lnt| grep 80
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN     
tcp        0      0 :::32980                    :::*                        LISTEN

10、检查Nginx启动的实际效果,通过浏览器访问

好了到这里Nginx的安装就完成了,接下来会介绍Ngnix相关的配置!

WEB 服务应用 Nginx之安装篇的更多相关文章

  1. Web服务器之Nginx详解(操作部分)

    大纲 一.前言 二.Nginx 安装与配置 三.Nginx 配置文件详解 四.Nginx 命令参数 五.配置Nginx提供Web服务 六.配置Nginx的虚拟主机 七.配置Nginx的用户认证 八.配 ...

  2. Web服务器之Nginx详解(理论部分)

    大纲 一.前言 二.Web服务器提供服务的方式 三.多进程.多线程.异步模式的对比 四.Web 服务请求过程 五.Linux I/O 模型 六.Linux I/O 模型具体说明 七.Linux I/O ...

  3. 【转】Web服务器之Nginx详解(理论部分)

    大纲 一.前言 二.Web服务器提供服务的方式 三.多进程.多线程.异步模式的对比 四.Web 服务请求过程 五.Linux I/O 模型 六.Linux I/O 模型具体说明 七.Linux I/O ...

  4. web服务器之nginx与apache

    最近准备架设php的web服务器,以下内容可供参考. 1.nginx相对于apache的优点: 轻量级,同样起web 服务,比apache占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞 ...

  5. nginx作为web服务以及nginx.conf详解

    Nginx系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html 1.nginx简介 nginx是一个优秀的web服务程序.反向代理程序.它采用非 ...

  6. Linux系统WEB服务之Nginx基础入门

    一.Nginxi简介 Nginx是什么?它是一个开源.高性能的WEB服务器软件和代理服务器软件,由俄罗斯人Igor Sysoev 开发实现.它的功能主要分三类,第一是它作为一个WEB服务软件使用:第二 ...

  7. web服务之nginx部署

    本期内容概要 了解web服务 Nginx和Apache的对比 部署Nginx 内容详细 1.什么是web服务 Web服务是一种服务导向架构的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用 ...

  8. web服务器之nginx和apache的区别

    ① apache属于重量级的服务器,nginx属于轻量级的服务器; 区别在于对一些功能的支持,比如:  pathinfo,php模块方面 ② nginx抗高并发能力强. 由于nginx采用的是异步非阻 ...

  9. Nginx 完整安装篇

    第一步安装各种编译库如c++编译库等 yum install -y gcc //安装GCC ...安装过程省略 yum install -y gcc-c++ //安装C++库用来编译c++ ...安装 ...

随机推荐

  1. spring mvc路径匹配原则

    Ant path 匹配原则 在Spring MVC中经常要用到拦截器,在配置需要要拦截的路径时经常用到<mvc:mapping/>子标签,其有一个path属性,它就是用来指定需要拦截的路径 ...

  2. java源码-ReentrantLock源码分析-2

    继续上篇ReentrantLock分析如何唤醒线程: 当调用lock.unlock()方法最终调用AQS类中的release方法,开始释放锁 tryRelease(1)方法在Sync对象中实现,首先会 ...

  3. 使用Navicat为Oracle导入函数后函数显示红叉

    上图是plsql中的截图 有可能是Navicat没有缓存过程,刷新试一试,不行的话,对导入的函数进行重新编译即可. 还发现一个问题是,Navicat导出的脚本里面,函数部分竟然没有参数和返回值,让我很 ...

  4. 关于SVN的405错误Server sent unexpected return value (405 Method Not Allowed)的解决办法

    一大早上捣鼓项目提交的时候出现这个错误: svn:server sent unexpected return value 405 method not allowed 百度了很多解决办法都没有解决,看 ...

  5. C# Path.Combine 缺陷(http路径用Uri类)

    Path.Combine: 什么时候会用到Path.Combine呢?,当然是连接路径字符串的时候! 所以下面的代码可以完美的工作: public static void Main() { strin ...

  6. 基于.net 4.0框架的Cipher演示程序

    using System.Text; namespace Cipher.Algorithm { static class Caesar { static public string Encrypt(s ...

  7. moby、docker-ce与docker-ee的区别

    近期研究docker相关技术,发现官网分为moby.docker-ce与docker-ee不同板块,ce和ee版本好理解,但2017年开始又多出个Moby,开始有点凌乱,Google出如下解释,mar ...

  8. RedisTemplate5种数据结构操作

    1 操作字符串 redisTemplate.opsForValue(); 2 操作hash redisTemplate.opsForHash(); 3 操作list redisTemplate.ops ...

  9. @Results注解使用方法

    @SelectProvider(type = HospitalSqlGenerator.class, method = "queryHospitalData") @Results( ...

  10. python基础之列表list

    list常用命令:索引/切片:list[index] list[start_index:end_index]增:list.append(obj) list.insert(index,obj) list ...