常见nginx管理及配置

常用命令

查看nginx帮助命令

nginx -h

## -------------------------
例如,输出:
nginx version: nginx/1.25.1
Usage: nginx [-?hvVtTq] [-s signal] [-p prefix]
             [-e filename] [-c filename] [-g directives]

Options:
  -?,-h         : this help
  -v            : show version and exit
  -V            : show version and configure options then exit
  -t            : test configuration and exit
  -T            : test configuration, dump it and exit
  -q            : suppress non-error messages during configuration testing
  -s signal     : send signal to a master process: stop, quit, reopen, reload
  -p prefix     : set prefix path (default: /usr/local/Cellar/nginx/1.25.1_1/)
  -e filename   : set error log file (default: /usr/local/var/log/nginx/error.log)
  -c filename   : set configuration file (default: /usr/local/etc/nginx/nginx.conf)
  -g directives : set global directives out of configuration file

查看nginx版本信息

nginx -v

例如,输出:
nginx version: nginx/1.18.0 (Ubuntu)

或者

nginx -V

会输出更加详细的信息。如:安装了哪些模块等;

查看nginx的进程

ps -ef|grep -i nginx

在进程列表里面找master进程,它的编号就是主进程号了。

验证nginx配置文件是否正确

绝对路径:
/usr/sbin/nginx -t

或者

nginx -t

例子,输出:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

通过上面的输出,可以查看nginx的配置文件路径,即查找 nginx.cnf;
检查当前nginx的配置;

重启nginx服务

nginx -s reload

停止nginx服务

停止nginx服务有四种方法,如下:

  1. 从容停止服务

这种方法相对于温和一些,需要进程完成当前工作后再停止服务,命令如下:

nginx -s quit

或者

kill -QUIT 主进程号  
例如:kill -QUIT 16391
  1. 立即停止服务

这种方法比较强硬,无论进程是否在工作,都直接停止进程,命令如下:

nginx -s stop

或者

kill -TERM 主进程号
  1. systemctl 停止

systemctl属于Linux命令,具体命令如下:

systemctl stop nginx.service
  1. kill方法杀死进程

直接杀死进程,这种方法一般使用在上面的方法都无效的情况下,具体命令如下:

kill -9 主进程号
或者
killall nginx

扩展:
列出支持的信号

kill -l

nginx配置文件

参考:

https://www.jianshu.com/p/e81fbbe67748

常用配置

http 块也可以包括 http全局块、server 块。

http 全局块

http全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。

server 块

这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本。后面会详细介绍虚拟主机的概念。

每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。

而每个 server 块也分为全局 server 块,以及可以同时包含多个 locaton 块。

1、全局 server 块

最常见的配置是本虚拟机主机的监听配置和本虚拟主机的名称或IP配置。

2、location 块

一个 server 块可以配置多个 location 块。

这块的主要作用是基于 Nginx 服务器接收到的请求字符串(例如 server_name/uri-string),对虚拟主机名称(也可以是IP别名)之外的字符串(例如 前面的 /uri-string)进行匹配,对特定的请求进行处理。地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行。

rewrite 地址重定向

rewrite是实现URL重写的关键指令,根据regex(正则表达式)部分内容,重定向到replacement,结尾是flag标记。

参考:

https://www.cnblogs.com/fengff/p/12557440.html

场景:表面上访问的是http://127.0.0.1:7777/test/xhtml//tpl/app-tpl-webapp/css/base.css,

实际上看的是http://127.0.0.1:8888/tpl/app-tpl-webapp/css/base.css的内容。

rewrite ^/(.)/tpl/(.)$ http://127.0.0.1:7777/tpl/$2; #其中$2表示的是正则中的第二串

常见问题

failed (13: Permission denied)

通过查看nginx日志,出现了failed (13: Permission denied)错误,发现是权限的问题。
解决:
/etc/nginx/nginx.conf中的第一行改为root。
即 user www-data; 修改为 user root;
然后在/etc/nginx目录使用nginx -s reload 命令重新加载配置,就解决了。

查看nginx是否配置 ssl 模块

使用下面命令,查看详细配置:

nginx -V

从输出里面查看安装的模块,如果有configure arguments: --with-http_ssl_module,说明ssl模块已安装。
安装证书,可以参考:

https://blog.csdn.net/u012486840/article/details/120940761
https://jelly.jd.com/article/6006b1045b6c6a01506c87b5

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值