上一篇讲解了nginx的四种安装方式,同样穿插着讲了一些常用命令。
Nginx默认的监听端口是80. 那么我们给他设置成81端口该如何设置?
因为是好几天前安装的nginx了,此时已经忘记nginx安装在什么地方了,也忘记配置文件在什么地方了,那么我们可以使用 find命令来查找。
find / -name nginx find命令就是查询文件 / 就是要查找的目录 -name 表示要查找的是文件名 nginx 值得是要查的文件名字
可以看到 /usr/bin/下有nginx的执行程序,那么我们也肯定安装了nginx。
那再去查询一下配置文集所在的位置
find / -name nginx.conf nginx配置文件默认为nginx.conf
可以看到配置文件在 /usr/local/conf/nginx.conf
下来修改nginx的配置,去修改端口号,以及启动所用的用户等,本篇文章不会详细的介绍nginx的一些配置,只会讲一些会用到本章所讲命令而设置到的配置。
打开配置文件, vim /usr/local/conf/nginx.conf
user nobody; 指的是用 nobody用户启动,我们修改成 nginx,并且去掉注释。
即 user nginx;
access_log logs/access.log main; 用户的访问日志所在的位置。我们自定义目录,就放在 /root/nginxlog 下吧
即 access_log /root/nginxlog/access.log;
手动创建目录 mkdir /root/nginxlog
listen 80; 监听在80端口,这个我们改成 81端口即可。
即 listen 81;
:wq 保存退出。
更改后的配置如下:
然后我们来启动nginx。
使用命令来启动nginx,即 nginx -c /usr/local/conf/nginx.conf nginx命令 -c 后面跟配置文件路径
上面我们知道nginx执行程序,在 /usr/bin下。所以我们的启动命令为: /usr/bin/nginx -c /usr/local/conf/nginx.conf
看到第二行有错误。
这说明我们的nginx这个用户是不存在的。
可以验证一下,使用 id nginx
那么我们来创建这个nginx用户。
命令为 useradd nginx
再次使用 id nginx查看,发现现在已经有这个用户了。
那我们再次启动看看。可以看到启动成功了
可以看到已经监听在了81端口了。使用 http://192.168.1.30:81 访问试试。
上面的 ss -tnlp 命令用来显示所有本机监听的端口的
可以看到我们在81端口也访问到nginx了。之前是80端口。
看一下之前设置的日志目录是否有日志产生。
可以看到已经有日志产生了。
我们上面是通过root用户启动的nginx,可以查看进程验证 ps -ef | grep nginx
那么想用我们创建的用户nginx启动呢,就需要先切换到该用户下了,然后再执行启动命令了。
切换用户命令 su - nginx
然后再使用 /usr/bin/nginx -c /usr/local/conf/nginx.conf 启动。
在启动之前,我们应该先切换到root目录下把nginx先关闭掉。
CTRL + D 退出当前用户,就到root用户了。
使用 ps -ef | grep nginx 查看nginx的进程,进程ID有:10145 10146
使用 kill -9 pid 杀掉进程
再使用 ps -ef | grep nginx 已经没有了。
再切换到nginx用户去启动nginx。
发现启动保存了,有2个文件没有权限,那么我们看一下这2个文件都是什么权限
因为nginx不能查看这些文件的权限,那么我们依旧使用 CTRL + D 退到root用户。
可以看到,这2个的属主和属组都是root,所以nginx没有权限访问。
所以我们需要用root用户给第一文件夹 /root/nginxlog/ 和 /usr/local/logs/error.log 添加nginx为属主和属组。
命令是:
chown nginx:nginx -R /root/nginxlog
chown nginx:nginx -R /usr/local/logs/error.log
添加权限以后再启动试试。
发现还是不行,因为 access.log 是在 root的家目录(/root)下所以就算 access.log文件有权限,但是没有/root目录的权限也是不行的。
所以我们要给access.log换一个目录,换到nginx的家目录下(/home/nginx/access.log)
当然nginx用户是没有权限去剪贴文件的,所以还需要退到root用户来操作, CTRL+D
切回到root用户后执行命令:mv /root/nginxlog /home/nginx/
移动完成后,不要忘记修改nginx的配置文件,因为目前nginx的配置文件是指向 /root/nginxlog/access.log的,我们需要修改指向到/home/nginx/nginxlog/access.log
:wq保存退出,再次 su 到 nginx用户。 su nginx
再次启动,发现没有报文件权限的错误的,但是又失败了,说不能监听81端口,又没有权限,这是怎么回事呢?
那是因为:Linux只有root用户可以使用1024一下的端口
那我们就再次修改一下端口,修改为8080端口去启动、
修改配置文件呢,还是需要退到root用户下去操作,为了方便,我们退到root目录后,直接给配置文件nginx用户的权限,这样以后nginx用户也是可以直接去修改配置文件了。
CTRL + D 退到root, 再 chown nginx:nginx /usr/local/conf/nginx.conf 给配置文件 nginx为属组和属主
修改端口为 8080 后再次启动尝试。
启动又是pid没有权限,那么大家应该很懂了吧。没有就用root用户给赋予权限。
再切换到nginx用户去启动:
可以看到虽然启动有警告,但是不影响启动,已经成功了,端口也监听成功了。
那我们再去 http://192.168.1.30:8080 访问。
好了,今天的文章到此结束了。
总结:
使用到的新命令:
exit / :wq :退出当前用户
useradd :创建用户
chown :赋予用户权限
su : 切换到一个用户
find : 用来查找文件 (更多使用以后碰到再讲)
ss -tnlp : 查看监听端口
感谢大家阅览
看更多内容请关注微信公众号:程序猿面试大全