Linux安装Nginx

Nginx简介

Nginx是什么?

Nginx是一款轻量级Web服务器,也是一款反向代理服务器
官网:http://nginx.org/
中文文档: http://www.nginx.cn/doc/
官网下载:http://nginx.org/en/download.html

Nginx能干什么?

Nginx能干的事情很多,这里简要罗列一-些:

  1. 可直接支持Rails和PHP的程序
  2. 可作为HTTP反向代理服务器
  3. 作为负载均衡服务器
  4. 作为邮件代理服务器
  5. 帮助实现前端动静分离
Nginx特点
image

Nginx安装

1.安装依赖包

提醒:
1、这里的安装服务器是Alibaba Cloud Linux 3.2104 64位(兼容CentOS 8)
2、CentOS 8建议搭配 nginx-1.18.0.tar.gz

//一键安装上面四个依赖
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
2.下载并解压安装包
1.  //创建一个文件夹
     // 默认安装到/usr/local/nginx,所以下载到这个文件夹不会很乱。
 cd /usr/local
 mkdir nginx
 cd nginx

2.  //下载tar包   
    wget http://nginx.org/download/nginx-1.18.0.tar.gz

3.  tar -xvf nginx-1.18.0.tar.gz
3.安装nginx
//进入nginx目录
 cd /usr/local/nginx

//进入目录
cd nginx-1.18.0

//执行命令
./configure
or
./configure --prefix=/etc/nginx --sbin-path=/usr/bin/nginx
//这里--prefix 是安装位置

//执行make命令
make

//执行make install命令
make install

./configure参数
--prefix=PATH:指定 nginx 的安装目录
--conf-path=PATH:指定 nginx.conf 配置文件路径
--user=NAME:nginx 工作进程的用户
--with-pcre:开启 PCRE 正则表达式的支持
--with-http_ssl_module:启动 SSL 的支持
--with-http_stub_status_module:用于监控 Nginx 的状态
--with-http-realip_module:允许改变客户端请求头中客户端 IP 地址
--with-file-aio:启用 File AIO
--add-module=PATH:添加第三方外部模块

如果报错‘struct crypt_data’没有名为‘current_salt’的成员”
这个是版本问题,我的服务器是Alibaba Cloud Linux 3.2104 64位(兼容CentOS 8),初次安装时找的百度靠前的文章,他的版本是Nginx-1.13.7,与CentOS 8不兼容。我们直接安装Nginx-1.18.0就不会报错了

4.配置nginx.conf(非必要)
 # 打开配置文件
vi /usr/local/nginx/conf/nginx.conf
(将端口号改成8089,因为可能apache占用80端口,apache端口尽量不要修改,我们选择修改nginx端口。)
(如果不安装apache这里可以选择不修改)

5.启动nginx(非必要)
    /usr/local/nginx/sbin/nginx -v            # 查看版本
 /usr/local/nginx/sbin/nginx                # 启动nginx
   /usr/local/nginx/sbin/nginx -s reload  # 重启nginx

 如果出现报错:nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed
 则运行: /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 
 再次启动即可!

 #查看nginx进程是否启动
 ps -ef | grep nginx
image
6.访问nginx界面(非必要)

若想使用外部主机连接上虚拟机访问端口,需要关闭虚拟机的防火墙:

centOS6及以前版本使用命令: systemctl stop iptables.service

centOS7关闭防火墙命令: systemctl stop firewalld.service

随后访问该ip即可看到nginx界面。

7.访问服务器ip查看(非必要)

浏览器输入:http://你的服务器IP


image.png
image
8.其他命令
安装完成一般常用命令

进入安装目录中,
cd /usr/local/nginx/sbin

启动,关闭,重启,命令:
./nginx 启动
./nginx -s stop 关闭
./nginx -s reload 重启
9 Nginx全局命令设置

刚安装好的Nginx, 命令需要去sbin目录执行,比较麻烦,设置下全局命令,就无需进入nginx的sbin目录执行nginx命令了

9.1 创建文件

vim /etc/init.d/nginx

把下面代码复制粘贴进去

#!/bin/sh
# nginx - this script starts and stops the nginx daemin
#
# chkconfig:   - 85 15

# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \
#               proxy and IMAP/POP3 proxy server

# processname: nginx
# config:      /usr/local/nginx/conf/nginx.conf
# pidfile:     /usr/local/nginx/logs/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/conf/nginx.conf"

lockfile=/var/lock/subsys/nginx

start() {

    [ -x $nginx ] || exit 5

    [ -f $NGINX_CONF_FILE ] || exit 6

    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

    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



9.2、更改文件权限

chmod 755 /etc/init.d/nginx

9.3、添加环境变量
将安装的目录下的 ./nginx/sbin 添加到 /etc/profile 文件中

vim /etc/profile

在文件最后加上

PATH=$PATH:/usr/local/nginx/sbin
export PATHi
image.png

执行:

  source /etc/profile

让配置文件重新生效一下即可

9.4 全局执行nginx命令

  nginx 启动
  nginx -v 查看版本
  nginx -s stop 关闭
  nginx -s reload 重启

参考文章:
https://www.cnblogs.com/zhuxr/p/13723776.html
https://www.cnblogs.com/chinaWu/p/14035181.html
https://www.cnblogs.com/testlearn/p/14151186.html

你可能感兴趣的:(Linux安装Nginx)