本手册为nginx的编译安装手册,供大家参考
需要如下的库:
gcc,PCRE pcre-devel ,zlib ,OpenSSL
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,官网如下图:
下载完成之后,本地:
使用root用户输入如下命令:
mkdir -p /usr/local/src/nginx
使用上传工具将安装包上传到该目录下
root用户操作;使用如下命令解压源码文件:
tar -zxvf nginx-1.18.0.tar.gz
cd /usr/local/src/nginx/nginx-1.18.0
./configure
make & make install
如下图表示安装成功:
注意:这里安装的路径为上图中的:/usr/local/nginx
root用户,切换到/usr/local/nginx/sbin目录,使用如下命令启动:
./nginx
注意:这里使用的是默认的nginx配置
查看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]#
在centos中,打开浏览器,输入:localhost,显示如下,表示配置没有问题
我们在实际使用中,不能使用root来操作服务器,必须使用非root用户;nginx也需要使用非root用户来进行启动,配置等,我们这里已nginx用户为例
依次使用如下的命令:
#新建组
groupadd nginx
#新建用户并分配组
useradd -g nginx nginx
#设置密码
passwd nginx
切换到nginx用户,依次执行如下命令
mkdir conf
mkdir logs
mkdir web
在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)
nginx用户,使用如下的命令启动服务
/usr/local/nginx/sbin/nginx -c /home/nginx/conf/nginx.conf
输入命令: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
输入nginx机器的ip地址和端口号,即可访问。这里注意一下,对应的端口记得防火墙开启一下
如下列举了一些常用的命令,供大家参考
启动: /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