Nginx安装和常用命令

一、安装Nginx说明

1、安装编译Nginx所需要的依赖包
yum install gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel
openssl openssl-devel

说明:
gcc 是用来编译C语言程序。
gcc-c++是C++的编辑工具,Nginx有些模块是用C++编写的。
pcre 正则表达式函数库,如果在配置文件nginx.conf中使用了正则表达式,那么在编译nginx时就必须把pcre库编译进Nginx,因为Nginx的Http模块要靠它来解析正则表达式。如果不使用正则表达式,可以不安装它。一般选择安装。其yum安装方式如下:

yum install -y pcre pcre-devel

zlib库用于对http包的内容做gzip格式的压缩,如果我们在nginx.conf里配置了gzip on 并指定于某些类型(content-type)的HTTP响应使用gzip来进行压缩以减少网络传输量,那么,在编译时就必须把zlib编译进Nginx,其yum 安装方式如下:

yum install -y zlib zlib-devel

OpenSSL开发库。如果我们的服务器不只是要支持HTTP,还需要在SSL协议上传输HTTP,那么就需要拥有OpenSSL了,另外如果我们想使用MD5,SHA1等散列函数,也需要它。yum安装方式如下:

yum install -y openssl openssl-devel

上面几个库只是Nginx最基本功能所需要的,根据需要支持的模块要求不同,再安装其他需要的功能库。

2.Linux内核参数的优化 (建议安装 该步骤可以忽略)

根据nginx的使用范围(文件服务器、代理服务、图片压缩服务器)优化设置nginx的内核参数 /etc/sysctl.conf
链接:Nginx下linux内核参数的优化

3、下载或上传Nginx的源码压缩包

将Nginx源码压缩包下载或者上传到Linux服务器 /usr/local/src 目录中:

wget http://nginx.org/download/nginx-1.14.2.tar.gz
4、编译安装Nginx
cd /usr/local/src/
tar -zxvf nginx-1.14.2.tar.gz
cd nginx-1.14.2
./configure --prefix=/usr/local/nginx
make && make install

configure命令做了大量的“幕后”工作, 包括检测操作系统内核和已经安装的软件, 参数的解析, 模块选择,中间目录的生成以及根据各种参数生成一些C源码文件、 Makefile文件等。
configure的命令参数请看链接:NGINX ./configure详解
make命令根据configure命令生成的Makefile文件编译Nginx工程, 并生成目标文件、 最终
的二进制文件。
make install命令根据configure执行时的参数将Nginx部署到指定的安装目录, 包括相关目
录的建立和二进制文件、 配置文件的复制
配置 Nginx

# vi /usr/local/nginx/conf/nginx.conf
user root;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include 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 logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 88;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
} 
5、系统防火墙打开对应的端口 88
#vi /etc/sysconfig/iptables

添加

 -##Nginx
-A INPUT -m state --state NEW -m tcp -p tcp --dport 88 -j ACCEPT

重启防火墙

#service iptables restart
6、 测试 Nginx 是否安装成功
# /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
7、启动 Nginx
/usr/local/nginx/sbin/nginx

重启 Nginx

# /usr/local/nginx/sbin/nginx -s reload
8、 设置 Nginx 开机启动
# vi /etc/rc.local

加入:

/usr/local/nginx/sbin/nginx
9、 访问 Nginx

在这里插入图片描述

2、 Nginx的命令行控制

在Linux中, 需要使用命令行来控制Nginx服务器的启动与停止、 重载配置文件、 回滚日
志文件、 平滑升级等行为。 默认情况下, Nginx被安装在目录usrlocal/nginx/中, 其二进制文
件路径为usrlocal/nginc/sbin/nginx, 配置文件路径为usrlocal/nginx/conf/nginx.conf。 当然, 在
configure执行时是可以指定把它们安装在不同目录的。

(1) 默认方式启动

直接执行Nginx二进制程序。 例如:
usrlocal/nginx/sbin/nginx
这时, 会读取默认路径下的配置文件: usrlocal/nginx/conf/nginx.conf。
实际上, 在没有显式指定nginx.conf配置文件路径时, 将打开在configure命令执行时使用-
-conf-path=PATH指定的nginx.conf文件(参见1.5.1节) 。

(2) 另行指定配置文件的启动方式

使用-c参数指定配置文件。 例如:

usrlocal/nginx/sbin/nginx -c tmpnginx.conf

这时, 会读取-c参数后指定的nginx.conf配置文件来启动Nginx。

(3) 另行指定安装目录的启动方式

使用-p参数指定Nginx的安装目录。 例如:

usrlocal/nginx/sbin/nginx -p usrlocal/nginx/
(4) 另行指定全局配置项的启动方式

可以通过-g参数临时指定一些全局配置项, 以使新的配置项生效。 例如:
usrlocal/nginx/sbin/nginx -g “pid varnginx/test.pid;”
上面这行命令意味着会把pid文件写到varnginx/test.pid中。
-g参数的约束条件是指定的配置项不能与默认路径下的nginx.conf中的配置项相冲突, 否
则无法启动。 就像上例那样, 类似这样的配置项: pid logs/nginx.pid, 是不能存在于默认的
nginx.conf中的。
另一个约束条件是, 以-g方式启动的Nginx服务执行其他命令行时, 需要把-g参数也带
上, 否则可能出现配置项不匹配的情形。 例如, 如果要停止Nginx服务, 那么需要执行下面
代码:
usrlocal/nginx/sbin/nginx -g “pid varnginx/test.pid;” -s stop
如果不带上-g"pidvarnginx/test.pid;", 那么找不到pid文件, 也会出现无法停止服务的情
况。

(5) 测试配置信息是否有错误

在不启动Nginx的情况下, 使用-t参数仅测试配置文件是否有错误。 例如:

usrlocal/nginx/sbin/nginx -t

执行结果中显示配置是否正确。

(6) 在测试配置阶段不输出信息测试配置选项时, 使用-q参数可以不把error级别以下的信息输出到屏幕。 例如:
usrlocal/nginx/sbin/nginx -t -q
(7) 显示版本信息

使用-v参数显示Nginx的版本信息。 例如:

usrlocal/nginx/sbin/nginx -v
(8) 显示编译阶段的参数

使用-V参数除了可以显示Nginx的版本信息外, 还可以显示配置编译阶段的信息, 如
GCC编译器的版本、 操作系统的版本、 执行configure时的参数等。 例如:

usrlocal/nginx/sbin/nginx -V
(9) 快速地停止服务

使用-s stop可以强制停止Nginx服务。 -s参数其实是告诉Nginx程序向正在运行的Nginx服
务发送信号量, Nginx程序通过nginx.pid文件中得到master进程的进程ID, 再向运行中的
master进程发送TERM信号来快速地关闭Nginx服务。 例如:

usr/local/nginx/sbin/nginx -s stop

实际上, 如果通过kill命令直接向nginx master进程发送TERM或者INT信号, 效果是一样
的。 例如, 先通过ps命令来查看nginx master的进程ID:

:ahf5wapi001:root > ps -ef | grep nginx
root 10800 1 0 02:27 ? 00:00:00 nginx: master process ./nginx
root 10801 10800 0 02:27 ? 00:00:00 nginx: worker process

接下来直接通过kill命令来发送信号:

kill -s SIGTERM 10800

或者:

kill -s SIGINT 10800

上述两条命令的效果与执行usrlocal/nginx/sbin/nginx-s stop是完全一样的。

(10) “优雅”地停止服务

如果希望Nginx服务可以正常地处理完当前所有请求再停止服务, 那么可以使用-s quit参
数来停止服务。 例如:

usrlocal/nginx/sbin/nginx -s quit

该命令与快速停止Nginx服务是有区别的。 当快速停止服务时, worker进程与master进程
在收到信号后会立刻跳出循环, 退出进程。 而“优雅”地停止服务时, 首先会关闭监听端口,
停止接收新的连接, 然后把当前正在处理的连接全部处理完, 最后再退出进程。
与快速停止服务相似, 可以直接发送QUIT信号给master进程来停止服务, 其效果与执
行-s quit命令是一样的。 例如:
kill -s SIGQUIT
如果希望“优雅”地停止某个worker进程, 那么可以通过向该进程发送WINCH信号来停止
服务。 例如:
kill -s SIGWINCH

(11) 使运行中的Nginx重读配置项并生效

使用-s reload参数可以使运行中的Nginx服务重新加载nginx.conf文件。 例如:
usrlocal/nginx/sbin/nginx -s reload
事实上, Nginx会先检查新的配置项是否有误, 如果全部正确就以“优雅”的方式关闭,
再重新启动Nginx来实现这个目的。 类似的, -s是发送信号, 仍然可以用kill命令发送HUP信
号来达到相同的效果。
kill -s SIGHUP

(12) 日志文件回滚

使用-s reopen参数可以重新打开日志文件, 这样可以先把当前日志文件改名或转移到其
他目录中进行备份, 再重新打开时就会生成新的日志文件。 这个功能使得日志文件不至于过
大。 例如:

usrlocal/nginx/sbin/nginx -s reopen

当然, 这与使用kill命令发送USR1信号效果相同。
kill -s SIGUSR1

(13) 平滑升级Nginx

当Nginx服务升级到新的版本时, 必须要将旧的二进制文件Nginx替换掉, 通常情况下这
是需要重启服务的, 但Nginx支持不重启服务来完成新版本的平滑升级。
升级时包括以下步骤:
1) 通知正在运行的旧版本Nginx准备升级。 通过向master进程发送USR2信号可达到目的。 例如:
kill -s SIGUSR2
这时, 运行中的Nginx会将pid文件重命名, 如将usrlocal/nginx/logs/nginx.pid重命名
为usrlocal/nginx/logs/nginx.pid.oldbin, 这样新的Nginx才有可能启动成功。
2) 启动新版本的Nginx, 可以使用以上介绍过的任意一种启动方法。 这时通过ps命令可
以发现新旧版本的Nginx在同时运行。
3) 通过kill命令向旧版本的master进程发送SIGQUIT信号, 以“优雅”的方式关闭旧版本的
Nginx。 随后将只有新版本的Nginx服务运行, 此时平滑升级完毕。

(14) 显示命令行帮助

使用-h或者-?参数会显示支持的所有命令行参数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值