zoukankan      html  css  js  c++  java
  • CentOS 7 安装 Nginx (LNMP环境搭建第一步)

    Linux 的安装方式有两种,可以是yum安装,也可以是源码安装。

    • yum安装:简单方便,不易出错。
    • 源码安装:繁琐,易出错,但服务性能好。

    yum安装

    1.安装nginx

    1.1yum 安装nginx非常简单,就输入一条命令即可。

    sudo yum -y install nginx   # 安装 nginx
    sudo yum remove nginx  # 卸载 nginx

    1.2安装完后,先不要急着操作,此时的nginx服务还没有启动,

    查看nginx状态(未启动前)
        命令:systemctl status nginx.service

    1.3启动nginx服务

      命令:sudo service nginx start

    1.4查看nginx的状态及进程与端口(启动后)
        命令:systemctl status nginx.service

    1.5设置开始启动

      命令:sudo systemctl enable nginx

    使用yum进行Nginx安装时,Nginx配置文件在/etc/nginx目录下。

    2.nginx 相关服务配置命令 

    sudo systemctl enable nginx # 设置开机启动 
    sudo service nginx start # 启动nginx服务
    sudo service nginx stop # 停止nginx服务
    sudo service nginx restart # 重启nginx服务
    sudo service nginx reload # 重新加载配置,一般是在修改过nginx配置文件时使用。
    systemctl status nginx.service #查看nginx的状态及进程与端口
    netstat -antp | grep :80 #查看80端口被哪个服务占用
    netstat -antp | grep : #查看所有端口占用情况
    ps aux | grep nginx #查看nginx进程运行状态
    nginx -V #查看nginx版本

     

    源码包安装(推荐)

    Nginx源码包安装方式步骤比较繁琐,并且需要提前安装一些Nginx依赖库。

    一、依赖库安装

    1. 安装 gcc 环境(阿里云新买的服务器一般都预安装了gcc,此步可以跳过)

    sudo yum -y install gcc gcc-c++ # nginx编译时依赖gcc环境

    2. 安装 pcre

    sudo yum -y install pcre pcre-devel # 让nginx支持重写功能

    3.安装 zlib

    # zlib库提供了很多压缩和解压缩的方式,nginx使用zlib对http包内容进行gzip压缩
    sudo yum -y install zlib zlib-devel 

    4. 安装 openssl

    # 安全套接字层密码库,用于通信加密
    sudo yum -y install openssl openssl-devel

    以上安装完成后,进行nginx安装。

    二、nginx 源码包安装

    将准备好的 nginx-1.17.8.tar.gz包,拷贝至/usr/local/nginx目录下(一般习惯在此目录下进行安装,新买服务器没有此目录,要自行创建)进行解压缩。
    源码包下载地址:https://nginx.org/en/download.html ,请根据自己的需求选择相应的版本进行安装

    1. 创建/usr/local/nginx目录,进入/usr/local/nginx目录wget安装包(不想用ftp上传,直接在服务器wget获取安装包)

    #创建 /usr/local/nginx 目录
    mkdir /usr/local/nginx
    
    #获取nginx包
    wget https://nginx.org/download/nginx-1.17.8.tar.gz

    2. 解压

    tar -zxvf nginx-1.17.8.tar.gz

    3. 在完成解压缩后,进入nginx-1.17.8目录进行源码编译安装。

    cd nginx-1.17.8
    
    ./configure --prefix=/usr/local/nginx # 检查平台安装环境
    #--prefix=/usr/local/nginx  是nginx编译安装的目录(推荐),安装完后会在此目录下生成相关文件

    如果前面的依赖库都安装成功后,执行./configure --prefix=/usr/local/nginx命令会显示一些环境信息。如果出现错误,一般是依赖库没有安装完成,可按照错误提示信息进行所缺的依赖库安装。

    4. 进行源码编译并安装nginx

    make # 编译
    make install # 安装

    5. 源码包安装与yum安装的nginx服务操作命令也不同。

    • 启动服务
    /usr/local/nginx/sbin/nginx
    • 重新加载服务
    /usr/local/nginx/sbin/nginx -s reload
    • 停止服务
    /usr/local/nginx/sbin/nginx -s stop
    • 查看nginx服务进程
    ps -ef | grep nginx # 查看服务进程

    6. 访问

     三、配置nginx开机自启

    1.先找出nginx配置文件路径和nginx路径(后面会用到)

    查找nginx配置文件路径 find / -name nginx.conf(两个路径都可以,本人使用第一个)

     在nginx安装目录/user/local/nginx查找nginx路径  find /usr/local/nginx/ -name nginx(使用包含sbin目录路径)

    2.编辑 vim /etc/init.d/nginx  添加一下内容  【使用Notepad++编辑并转换成Unix格式再上传,不然文件无法生效,本人在此踩过坑,Notepad++依次点击 编辑/文档格式转换/转为 Unix(LF)

    根据路径修改nginx安装地址、nginx配置文件路径两处,上面第一步已查出路径。

      1 #!/bin/sh
      2 # nginx - this script starts and stops the nginx daemon
      3 #
      4 # chkconfig:   - 85 15
      5 # description:  NGINX is an HTTP(S) server, HTTP(S) reverse 
      6 #               proxy and IMAP/POP3 proxy server
      7 # processname: nginx
      8 # config:      /usr/local/nginx/nginx-1.17.8/conf/nginx.conf
      9 # config:      /etc/sysconfig/nginx
     10 # pidfile:     /usr/local/tools/nginx/nginx-1.14.2/logs/nginx.pid
     11 
     12 # Source function library.
     13 . /etc/rc.d/init.d/functions
     14 
     15 # Source networking configuration.
     16 . /etc/sysconfig/network
     17 
     18 # Check that networking is up.
     19 [ "$NETWORKING" = "no" ] && exit 0
     20 
     21 #nginx安装地址(根据自己安装路径填写)
     22 nginx="/usr/local/nginx/sbin/nginx"
     23 prog=$(basename $nginx)
     24 
     25 #nginx配置文件路径(根据自己安装路径填写)
     26 NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
     27 
     28 [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
     29 
     30 lockfile=/usr/local/tools/nginx/nginx-1.14.2/logs/lock/subsys/nginx
     31 
     32 make_dirs() {
     33    # make required directories
     34    user=`$nginx -V 2>&1 | grep "configure arguments:.*--user=" | sed 's/[^*]*--user=([^ ]*).*/1/g' -`
     35    if [ -n "$user" ]; then
     36       if [ -z "`grep $user /etc/passwd`" ]; then
     37          useradd -M -s /bin/nologin $user
     38       fi
     39       options=`$nginx -V 2>&1 | grep 'configure arguments:'`
     40       for opt in $options; do
     41           if [ `echo $opt | grep '.*-temp-path'` ]; then
     42               value=`echo $opt | cut -d "=" -f 2`
     43               if [ ! -d "$value" ]; then
     44                   # echo "creating" $value
     45                   mkdir -p $value && chown -R $user $value
     46               fi
     47           fi
     48        done
     49     fi
     50 }
     51 
     52 start() {
     53     [ -x $nginx ] || exit 5
     54     [ -f $NGINX_CONF_FILE ] || exit 6
     55     make_dirs
     56     echo -n $"Starting $prog: "
     57     daemon $nginx -c $NGINX_CONF_FILE
     58     retval=$?
     59     echo
     60     [ $retval -eq 0 ] && touch $lockfile
     61     return $retval
     62 }
     63 
     64 stop() {
     65     echo -n $"Stopping $prog: "
     66     killproc $prog -QUIT
     67     retval=$?
     68     echo
     69     [ $retval -eq 0 ] && rm -f $lockfile
     70     return $retval
     71 }
     72 
     73 restart() {
     74     configtest || return $?
     75     stop
     76     sleep 1
     77     start
     78 }
     79 
     80 reload() {
     81     configtest || return $?
     82     echo -n $"Reloading $prog: "
     83     killproc $nginx -HUP
     84     RETVAL=$?
     85     echo
     86 }
     87 
     88 force_reload() {
     89     restart
     90 }
     91 
     92 configtest() {
     93   $nginx -t -c $NGINX_CONF_FILE
     94 }
     95 
     96 rh_status() {
     97     status $prog
     98 }
     99 
    100 rh_status_q() {
    101     rh_status >/dev/null 2>&1
    102 }
    103 
    104 case "$1" in
    105     start)
    106         rh_status_q && exit 0
    107         $1
    108         ;;
    109     stop)
    110         rh_status_q || exit 0
    111         $1
    112         ;;
    113     restart|configtest)
    114         $1
    115         ;;
    116     reload)
    117         rh_status_q || exit 7
    118         $1
    119         ;;
    120     force-reload)
    121         force_reload
    122         ;;
    123     status)
    124         rh_status
    125         ;;
    126     condrestart|try-restart)
    127         rh_status_q || exit 0
    128             ;;
    129     *)
    130         echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
    131         exit 2
    132 esac

    3. 添加可执行权限  chmod +x /etc/init.d/nginx

    4.开启自启  chkconfig nginx on

    重启服务:reboot,访问页面正常,nginx已自动启动

    nginx安装:https://blog.csdn.net/sqlquan/article/details/101099850

    nginx开机自启:https://www.cnblogs.com/fwqblogs/p/10131846.html

  • 相关阅读:
    学习JavaScript 的必备 (一),让您对js的 function, javascript内置对象,this概念及之间的关系不再迷惑。(希望能置为推荐篇,为更多的js初学者关注)
    你人脉网中应该有的10种人
    十句话,不黄不色,但很经典~~~~~~~~~~
    js网站
    …↓爆》笑
    JavaScript使用技巧精萃
    JDK源码分析之Set类详解——适配器模式的应用
    好的程序员做不出好的软件设计
    JDK源码中ClassLoader的浅析
    提高编程技巧的十大方法
  • 原文地址:https://www.cnblogs.com/clubs/p/12346822.html
Copyright © 2011-2022 走看看