Centos7安装nginx1.18.0(含非root配置nginx)

Centos7安装nginx1.18.0(含非root配置nginx)

本手册为nginx的编译安装手册,供大家参考

第一步:预安装软件

1、三方库列表

需要如下的库:

gccPCRE pcre-develzlibOpenSSL

2、安装命令

root用户操作;逐条使用如下的命令进行安装

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

第二步:下载源码包

到nginx的官网下载最新的稳定版本的源码包,Stable version表示稳定版本

下载地址:http://nginx.org/en/download.html

我这里最新的稳定版本是:1.18.0,官网如下图:

Centos7安装nginx1.18.0(含非root配置nginx)_第1张图片

下载完成之后,本地:

在这里插入图片描述

第三步:上传安装包到Linux

1、创建目录

使用root用户输入如下命令:

mkdir -p /usr/local/src/nginx

2、上传安装包

使用上传工具将安装包上传到该目录下

Centos7安装nginx1.18.0(含非root配置nginx)_第2张图片

第四步:编译安装

1、解压源码文件

root用户操作;使用如下命令解压源码文件:

tar -zxvf nginx-1.18.0.tar.gz

2、编译文件

2.1、切换到nginx的目录
cd /usr/local/src/nginx/nginx-1.18.0
2.2、使用默认配置
./configure
2.3、编译并安装
make & make install

如下图表示安装成功:

Centos7安装nginx1.18.0(含非root配置nginx)_第3张图片

注意:这里安装的路径为上图中的:/usr/local/nginx

第五步:启动nginx

1、启动nginx

root用户,切换到/usr/local/nginx/sbin目录,使用如下命令启动:

./nginx

注意:这里使用的是默认的nginx配置

2、验证

2.1、使用命令验证

查看nginx的进程;一个主进程,一个工作进程,表示启动成功,如下

[root@bogon sbin]# ps -ef | grep nginx
root      16278      1  0 19:12 ?        00:00:00 nginx: master process ./nginx
nobody    16279  16278  0 19:12 ?        00:00:00 nginx: worker process
root      16281 117573  0 19:12 pts/2    00:00:00 grep --color=auto nginx
[root@bogon sbin]# 
2.2、浏览器验证

在centos中,打开浏览器,输入:localhost,显示如下,表示配置没有问题

Centos7安装nginx1.18.0(含非root配置nginx)_第4张图片

第六步:使用非root用户启动

我们在实际使用中,不能使用root来操作服务器,必须使用非root用户;nginx也需要使用非root用户来进行启动,配置等,我们这里已nginx用户为例

1、新建组,新建用户

依次使用如下的命令:

#新建组
groupadd nginx

#新建用户并分配组
useradd -g nginx nginx

#设置密码
passwd nginx

2、新建目录,配置等

2.1、新建目录

切换到nginx用户,依次执行如下命令

mkdir conf
mkdir logs
mkdir web
2.2、新建配置

在web目录下新建文件,index.html,配置如下:

<h1>Welcome To My Nginxh1>

在conf目录下,新建nginx.conf文件,参考配置内容如下:

worker_processes  4;

error_log  /home/nginx/logs/error.log warn;
pid        /home/nginx/logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       /usr/local/nginx/conf/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /home/nginx/logs/access.log  main;
    sendfile        on;
    keepalive_timeout  65;
    gzip  on;

    server {
        listen       8080;
        server_name  localhost;
        access_log  /home/nginx/logs/access-8080.log  main;

        location / {
            root   /home/nginx/web/;
            index  index.html index.htm;
        }
    }

}

这里注意:以非root用户启动nginx,只能使用高位端口,高于1024,否则会报错

例如:若绑定80端口的话,会报如下的错:

nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)

3、启动服务

nginx用户,使用如下的命令启动服务

/usr/local/nginx/sbin/nginx -c /home/nginx/conf/nginx.conf
3.1、验证服务启动情况

输入命令:ps -ef | grep nginx,显示如下,表示成功

[nginx@localhost conf]$ ps -ef | grep nginx
root      16512 117573  0 19:20 pts/2    00:00:00 su - nginx
nginx     16513  16512  0 19:20 pts/2    00:00:00 -bash
nginx     17460      1  0 19:56 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx -c /home/nginx/conf/nginx.conf
nginx     18115  17460  0 20:05 ?        00:00:00 nginx: worker process
nginx     18116  17460  0 20:05 ?        00:00:00 nginx: worker process
nginx     18117  17460  0 20:05 ?        00:00:00 nginx: worker process
nginx     18118  17460  0 20:05 ?        00:00:00 nginx: worker process
nginx     18526  16513  0 20:27 pts/2    00:00:00 ps -ef
nginx     18527  16513  0 20:27 pts/2    00:00:00 grep --color=auto nginx

3.2、浏览器验证

输入nginx机器的ip地址和端口号,即可访问。这里注意一下,对应的端口记得防火墙开启一下

Centos7安装nginx1.18.0(含非root配置nginx)_第5张图片

3.3、附录(常用命令)

如下列举了一些常用的命令,供大家参考

启动: /usr/local/nginx/sbin/nginx -c /home/nginx/conf/nginx.conf 
停止: /usr/local/nginx/sbin/nginx -c /home/nginx/conf/nginx.conf -s quit 
重载配置: /usr/local/nginx/sbin/nginx -c /home/nginx/conf/nginx.conf -s reload 
验证配置正确性: /usr/local/nginx/sbin/nginx -c /home/nginx/conf/nginx.conf -t

你可能感兴趣的:(后台,服务器端,NGINX,nginx,centos,linux,负载均衡,服务器)