【Nginx】—— nginx安装、配置以及操作可能遇到的问题


前面在 图文解说Nginx–基础入门 详细讲述了nginx的一些基础知识,接下来我们就来看看这个强大的服务器是怎么进行安装和配置的。

Nginx的安装

Nginx可以有多种安装的方式,我们在这就讲解两种安装方式

官网下载安装

Nginx官网下载链接 其实这个方法在mac下安装比较麻烦,windows系统的独自可以考虑这种方式比较方便,mac系统的可以考虑下面这个方法

brew安装nginx

1、先安装homebrew。homebrew官网 终端执行以下命令:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

出现如下提示表示安装完成了。

Installation successful!

2、安装Nginx,在终端执行

brew install nginx

安装过程中会自己安装依赖:

$ brew install nginx
Warning: You have Xcode 8 installed without the CLT;
this causes certain builds to fail on OS X El Capitan (10.11).
Please install the CLT via:
  sudo xcode-select --install
==> Installing dependencies for nginx: openssl, pcre
==> Installing nginx dependency: openssl

安装完成之后会出现以下提示表示安装成功了

The default port has been set in /usr/local/etc/nginx/nginx.conf to 8080 so that
nginx can run without sudo.

nginx will load all files in /usr/local/etc/nginx/servers/.

To have launchd start nginx now and restart at login:
  brew services start nginx
Or, if you don't want/need a background service you can just run:
  nginx
==> Summary
🍺  /usr/local/Cellar/nginx/1.17.9: 7 files, 972.3K

注意:这里我们可以看到nginx的默认安装目录/usr/local/Cellar/nginx/1.17.9,其实所有通过brew安装的东西都会出现在这个目录下,之后读者在安装其他软件的时候也可在该目录下寻找对应的文件nginx
3.鉴于安装过程中出现的Warning,为避免将来掉坑,运行

sudo xcode-select --install

终端会出现提示

xcode-select: note: install requested for command line developer tools

nginx的配置

nginx的配置文件是在 /usr/local/etc/nginx
config文件目录 /usr/local/etc/nginx/nginx.conf
其实nginx的具体配置要根据项目的需求来配置,这里笔者只是给大家举一个例子,如果之前从未接触过nginx的读者可先去阅读 图文解说Nginx–基础入门 了解Nginx的作用和背景之后再来使用,下面附上自己的nginx配置文件,有需要的读者可自取
链接: Nginx相关配置文件链接 密码:tur7

启动nginx服务

1.启动nginx服务命令

brew services start nginx

成功后,使用浏览器打开 http://localhost:8080
如果打开页面如下,证明安装完成,可以使用了。
nginx成功界面
2.nginx常用命令

nginx  #启动nginx
nginx -s quit  #快速停止nginx
nginx -V #查看版本,以及配置文件地址
nginx -v #查看版本
nginx -s reload|reopen|stop|quit   #重新加载配置|重启|快速停止|安全关闭nginx
nginx -h #帮助

Nginx操作可能遇到的问题

加载配置文件

由于项目需要,修改了配置文件时是可以通过nginx -s reload来重新加载配置文件,但是笔者在实际操作时就遇到如下问题:
在这里插入图片描述
当时也是找了各种方法都无法解决,网上有很多方法其实并无作用,后来发现这个问题其实很简单,造成这个问题的原因就是当前的用户没有足够的权限,无法执行该操作,如果读者是自己使用,而不是与团队使用的话,这个问题的解决方法其实很简单,只需要给当前用户加一个root权限,终端执行命令 sudo nginx -s reload 之后输入开机时的密码即可成功执行。

Nginx重启

如果我们在做一个前后端分离的项目时用到了nginx,在我们在配置完nginx并使用之后,可能会关闭终端,或是关闭电脑,然后当你再一次启动项目,访问端口的时候你会发现界面不见了,然后怎么刷新也没有办法看到数据,这个时候你不知道咋办的时候,其实最有可能的原因就是的你的nginx出现问题了,因为你的项目是一个前后端分离的项目,需要nginx进行端口间的转发,如果nginx出现了问题就会导致你访问对应端口时看不到数据,这时候我们想那就去启动nginx把,但是你会发现出现了如下的问题:
nginx启动
这时你肯定心想,呀这么多报错,怎么办,咋解决,不用着急,我们一个一个解决,先看第一排的错误,一看,咦好眼熟,就是我们刚刚碰到的错误啊,用户权限不够,参照上一个解决方法,加一个sudo权限,一执行哎呀你发现第一个错误没有了,但是还是有好多错误呀,其实这些错误就是说明一个问题,就是你的nginx已经启动了
在这里插入图片描述
那为什么启动了还是出现问题了呢,这个时候我们需要通过 ps -ef|grep nginx 查看一下后台运行的nginx服务器nginx
接下来我们可以通过如下命令直接将nginx进程和他的子进程kill掉,之后再重新启动nginx,这样就能够解决问题了

//从容停止Nginx:
kill -QUIT 主进程号

//快速停止Nginx:
kill -TERM 主进程号

//强制停止Nginx:
pkill -9 nginx
重启nginx的方式
kill -HUP 主进程号或进程号文件路径
或者使用
cd /usr/local/nginx/1.17.9/bin
sudo ./nginx -s reload

nginx目录
注意:每个同学的nginx版本可能是不一样的,一定要安装自己的版本进入对应的目录下执行命令

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章