本文目录:
- 1、如何利用linux+nginx提供cname服务
- 2、kill -9杀掉nginx主进程、reload失败解决办法
- 3、Nginx配置双向认证https+转发http的请求
- 4、有没有无私的大婶来说说win下如何配置Nginx
- 5、nginx怎么启动命令
- 6、如何用一条Linux命令干掉所有nginx进程
如何利用linux+nginx提供cname服务
安装nginx前,我们首先要确保系统安装了g++、gcc、openssl-devel、pcre-devel和zlib-devel软件,可通过如图所示命令进行检测,如果以安装我们可以通过图二所示卸载
我们一般安装linux软件都会在/usr/local目录下,然后进行解压编译安装,具体的命令大家请看图片所示
等待配置和编译完成,完成后我们就需要配置防火墙,不拦截80端口,设置完成后需要重启防火墙
接下来介绍下启动/停止/重启的具体方法,进入目录后我们可以用执行sbin/nginx来启动,也可以通过conf/nginx.conf来启动,停止我们可以查询进程使用kill -9 进程号/pkill -9 nginx来结束nginx服务,重启可以通过 sbin/nginx -s reload来重启,具体命令大家请看如图所示
下面来说说基本的操作命令,
nginx -h 帮助
nginx -v 显示版本
nginx -V 显示版本和配置信息
nginx -t 测试配置
nginx -q 测试配置时,只输出错误信息
nginx -s stop 停止服务器
nginx -s reload 重新加载配置
然后请看图片所示conf文件的配置,来配置nginx的方法
好了,这个就完成了,大家看看我的效果吧
kill -9杀掉nginx主进程、reload失败解决办法
前言:
无意间使用 kill -9 命令杀掉了nginx的主进程,当我再次使用 ./nginx -s reload 重新刷新nginx的时候,一直出现了下面的错误信息:
nginx: [alert] kill(27905, 1) failed (3: No such process)
同时,执行命令 ./nginx -t 返回的结果如下:
nginx正常运行,只是无法使用reload刷新,我也头大了,怎么办呢。
网上找到如下解决方法:
文章地址:
文章中有一个命令 fuser -n tcp 80 查看80端口被哪些程序占用。最终控制台输出的信息如下:
80/tcp: 31329 31330
好吧,kill掉这2个子进程。
重新启动nginx,再次使用 ./nginx -s reload ,OK了!
Nginx配置双向认证https+转发http的请求
进入源码目录执行:
执行完成后默认安装在 /usr/local/nginx 目录下
Nginx开机自启动
Centos 7为例
保存退出
注意: [Service] 的启动,重启, 停止命令全部要求绝对路径
[Install]运行级别下服务安装的相关设置, 可设置为多用户,即系统运行级别3
其他常用命令
支持lua
先查看openssl
结果
进入OPENSSLDIR配置的路径 /private/etc/ssl 查看 openssl.cnf文件
找到CA_default, 后续我生成的文件在dir配置的路劲下
新建工作目录[CA_default]的dir, certs, crl_dir, database,new_certs_dir, serial
并将‘01’写入serial文件
然后进入openssl, 在控制台输入
进入openssl
会要求输入ngca.key密码,密码自己定义.
生成会话会让你填入一些参数,根据实际情况填写。执行完会发现工作目录下会有ca.crt ca.key两个文件。
首先生成server端私钥。执行后会要求输入解析私钥文件的密码,根据个人喜好设置。生成ngserver.key。
会要求输入ngserver.key密码, 密码自己定义.
生成证书请求。生成会话会提示输入一些请求信息,成功后生成ngserver.csr。
会要求输入上面输入的ngserver.key密码
注意红色下划线的部分, 输入域名或者需要部署ssl服务器的IP地址.否则签发的证书会被浏览器视为不是本站点的证书。其他根据情况。
现在用生成的CA给证书请求(ngserver.csr)签发证书。根据提示输入相关密码(之前设置好的)和y(yes),成功后生成证书ngserver.crt
会要求设置ngclient.key的密码
生成证书请求。生成会话会提示输入一些请求信息,成功后生成ngclient.csr。
根据提示填写:
现在用之前生成的CA给证书请求(ngclient.csr)签发证书。根据提示输入相关密码(之前设置好的)和y(yes),成功后生成证书ngclient.crt
可以根据需要转pem格式
将ngca.crt 导入浏览器证书的受信任的根目录, ngclient.p12导入浏览器证书的个人目录下.
修改配置
包含SSL配置和转发http配置
保存后启动nginx, 会要求输入server端私钥密码, 即上面你设置的ngserver.key密码.但是浏览器访问链接的时候,可能访问不了,报400. nginx的error.log报:( 可能的坑 )
[emerg] 5622010: cannot load certificate key “/etc/pki/CA/ngserver.key”: PEM_read_bio_PrivateKey() failed (SSL: error:2807106B:UI routines:UI_process:processing error:while reading strings error:0906406D:PEM routines:PEM_def_callback:problems getting password error:0906A068:PEM routines:PEM_do_header:bad password read)
回到证书目录, 执行以下:
进入openssl,执行:
会要求输入ngserver.key密码, 重启nginx的时候, 不需要再输入密码.也不会再报错bad password read
有没有无私的大婶来说说win下如何配置Nginx
主要讲述windows下如何安装和配置nginx(本例是win8环境下)
从nginx官网下载相应的安装包:
建议下载
下载稳定版
解压到相应的目录,比如我是e盘
然后修改目录名字为nginx
进入nginx目录
双击nginx.exe 来启动nginx
此时
直接在浏览器地址栏输入http:localhost 便能看到 欢迎页面,说明你虚拟主机已经搭建好了
但是有时候 我们需要配置项目的根路径 在默认情况下 他的root是 nginx目录下的html文件夹
如若修改 则打开conf目录下的nginx.conf。
找到server选项 修改location 中的root 选项。
比如我修改到D:/webroot
解压包里只有启动nginx服务器运行程序,但是如果要重启,或者停止服务都必须在dos命令下手动重启或停止,比较麻烦,我用批处理写了重启和停止命令:如下
stop.bat
@echo off
%~d0
cd %~dp0
nginx -s quit
restart.bat
@echo off
%~d0
cd %~dp0
nginx -s reload
nginx怎么启动命令
启动:
cd /usr/local/nginx/sbin
./nginx
nginx服务启动后默认的进程号会放在/usr/local/nginx/logs/nginx.pid文件
cat nginx.pid 查看进程号
关闭:
kill -TERM pid 快速停止服务
kill -QUIT pid 平缓停止服务
kill -9 pid 强制停止服务
重启:
cd /usr/local/nginx
./nginx -HUP pid
./nginx -s reload
如何用一条Linux命令干掉所有nginx进程
// 通过 killall 命令
killall nginx
// 通过 pkill 命令,类似于 pgrep + kill
pkill nginx
// 通过先查找再 kill 的方式
ps -ef | grep nginx | grep -v grep | awk ‘{print $2}’ | xargs kill -9
// 用 cut -c 来截取指定位置的字符串
ps -ef | grep nginx | grep -v grep | cut -c 11-15 | xargs kill -9
// 通过 pgrep 指令,根据名字找出所有包含该名字的进程号
pgrep nginx | xargs kill -9
// 通过 pidof 指令,根据进程全名找出进程号
pidof nginx | kill -9
// 除了管道符的方式,也可以用命令替换,这样就不用通过 xargs 转换参数了
kill -9 `pgrep nginx`
本文来源:https://www.yuntue.com/post/130056.html | 云服务器网,转载请注明出处!

微信扫一扫打赏
支付宝扫一扫打赏