Linux下Nginx的卸载、安装以及基本使用

一、卸载
如果是使用yum安装:

yum remove nginx

如果已经不记得安装方式了,那么可以使用以下步骤进行全删除:

rm -rf /etc/nginx/
rm -rf /usr/sbin/nginx
rm /usr/share/man/man1/nginx.1.gz
apt-get remove nginx*

二、安装
首先找一个安静的文件夹,然后执行以下命令:(笔者通常都把这个安静的安装软件目录设置为/user/local/src目录)

1、 下载
wget http://nginx.org/download/nginx-1.9.9.tar.gz
# 解压
tar -xvf nginx-1.9.9.tar.gz
# 重命名(太长)
mv  nginx-1.9.9  nginx

2、配置、编译及安装

./configure
make
make install

源码编译的更多细节可以参考官方文档:http://nginx.org/en/docs/configure.html
三、启动
直接运行nginx可执行文件即可启动,nginx会自动读取配置文件目录下的“nginx.conf”配置文件,也可以在后面接“-c”参数来指定配置文件:

nginx -c /path/to/configfile

然后可以用 nginx -V 命令来查看配置目录和prefix目录,配置文件可以在编译时单独指定,也可以在启动时指定,如果没有指定配置文件,那么默认配置文件为prefix目录下的conf/nginx.conf。例如,prefix目录为“/usr/local/nginx”,没有指定配置文件,那么默认情况,nginx的配置文件是“/usr/local/conf/nginx.conf”。
yum或者apt-get软件包管理工具安装的,配置文件通常是/etc/nginx/nginx.conf。
由于nginx的配置文件比较复杂容易出错,修改配置后可以用“-t”参数来校验配置文件是否正确:
为了方便使用,配置临时环境变量(退出终端失效):
export PATH="${PATH}:/usr/local/nginx/sbin"

当然,也可以将上面的代码加到`~/.bashrc`文件中,执行souce,即可;还可以创建一个Nginx的软连接到/usr/local/sbin目录下;或者直接跳到Nginx的prefix目录下,使用.sbin/nginx;
nginx -t    # 校验默认的配置文件
nginx -t -c /path/to/configfile    # 校验指定配置文件
# 其他参数说明:
-T 参数除了校验配置文件外,还同时将完整的配置文件打印到标准输出(1.9.2以后版本支持)。
-g directives:设置全局指令,优先级高于配置文件。
-p prefix:制定prefix目录,默认是/usr/local/nginx。

四、停止和重载
当nginx启动后,可以使用“-s”参数向nginx管理进程发送信号来控制nginx:

其中,signal可以是以下值:
stop:快速关闭
quit:安全关闭
reload:重载配置文件
reopen:重新打开一个log文件,用于日志切割

quit信号通知nginx等待worker进程处理完当前的请求后退出,此命令只能由启动nginx的linux账户来执行。
reload信号通知nginx重新载入配置文件,除了实用reload外,nginx只会在启动时载入一次配置文件,之后对配置文件的修改不会对已经运行的nginx进程生效。当运行这个命令时,master进程会尝试读取配置文件,如果配置文件没有问题,master进程会启动新的worker进程来运行新的配置文件并处理请求,并且通知老的worker进程不再处理新的请求并在处理完当前任务后退出。如果配置文件存在问题不能执行,master进程会回退老配置文件继续工作,不会导致nginx进程整个异常退出。
linux的kill命令也可以达到相同的作用,我们假设nginx的master进程号(pid)是1234,那么 kill -s QUIT 1234 和 kill -s HUP 1234 这两条命令和前面quit、reload的作用相同。
master进程的pid保存在pid文件中,如果编译时没有指定,那么默认的pid文件位于prefix目录下logs文件夹中,即“prefix/logs/nginx.pid”。
五、错误
1、ngx_murmurhash.c:37:11: error: this statement may fall through [-Werror=implicit-fallthroug:
解决方案:

将对应/nginx/objs/Makefile中的 -Werrori 去掉, 在重新make即可;-Werrori是指GCC将所有的警告当成错误进行处理,所有导致错误输出,并不能进行下一步。

2、如果你想要配置一个https的server,你可能会碰到如下报错:

nginx: [emerg] unknown directive "ssl"

ssl指令识别不出来,是因为默认编译的时候没有加载OpenSSL的相关模块,解决方法如下:

./configure --with-http_ssl_module  // 重新config并指定其他模块http_ssl_module
make // 不要make install 那就覆盖了
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak // 先将原来的nginx备份想删除也可以
cp objs/nginx /usr/local/nginx/sbin/nginx // objs 目录中是编译后产生的文件
/usr/local/nginx/sbin/nginx -t // 在测试一下

参考:https://www.cnblogs.com/heioray/p/9260666.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值