nginx安装踩坑指南

170 阅读4分钟

nginx安装踩坑指南

准备工作——安装依赖包

yum -y install gcc-c++
yum -y install pcre pcre-devel zlib zlib-devel openssl openssl-devel

正式下载

  1. 使用yum命令下载
yum install nginx
  1. 查看nginx版本
nginx -v

 

  1. 查看相关文件夹
rpm -ql nginx

其中位于 /etc 目录下的主要是配置文件,其中nginx.conf为主配置文件,是nginx操作的重点

  1. 开启nginx并设置nginx的开机启动
systemctl start nginx
systemctl enable nginx
  1. 访问llinux的ip,这时候就可以看到nginx的欢迎界面了~(不要忘了开端口哦)

可能受版本之类的影响,欢迎界面有些区别,但是只要看到“Welcome to nginx!”就算成功了。(第二次尝试显示的是“Welcome to CentOS”,经查询也是正常情况,展示页面随版本不同有区别)

nginx的常用命令

nginx 的命令在控制台中输入 nginx -h 就可以看到完整的命令,这里列举几个常用的命令:

nginx -s reload  # 向主进程发送信号,重新加载配置文件,热重启
nginx -s reopen  # 重启 Nginx
nginx -s stop    # 快速关闭
nginx -s quit    # 等待工作进程处理完成后关闭
nginx -T         # 查看当前 Nginx 最终的配置
nginx --c <配置路径>    # 检查配置是否有问题,如果已经在配置目录,则不需要-c

systemctl 是 Linux 系统应用管理工具 systemd 的主命令,用于管理系统,我们也可以用它来对 Nginx 进行管理,相关命令如下:

systemctl start nginx    # 启动 Nginx
systemctl stop nginx     # 停止 Nginx
systemctl restart nginx  # 重启 Nginx
systemctl reload nginx   # 重新加载 Nginx,用于修改配置后
systemctl enable nginx   # 设置开机启动 Nginx
systemctl disable nginx  # 关闭开机启动 Nginx
systemctl status nginx   # 查看 Nginx 运行状态

此处我个人比较提倡使用systemctl命令

布置应用至nginx

  1. 打包需要布置的应用,我本次布置的项目较小,所以影响不大,直接放到linux上喜欢的位置就可以了,然后要记住文件的路径。个人习惯喜欢将应用统一放在/server/nginx文件夹中

 

  1. 对nginx.conf进行配置
cd etc/nginx
vim nginx.conf

关于nginx.conf的配置详解可以看看这篇文章——nginx.conf 配置文件详解

此处我只是做了最简单的配置,在默认的80端口下面增加了一个30678端口用来展示的我应用

  1. 修改完配置文件后检查并重启nginx后生效
nginx -t
systemctl restart nginx
  1. 开放端口

一般情况下,服务器是开着防火墙的,所以我们依旧无法直接访问我们的应用,所以需要将我们配置的端口打开

1、开启防火墙 
    systemctl start firewalld
​
2、开放指定端口
    firewall-cmd --zone=public --add-port=30678/tcp --permanent
 命令含义:
--zone #作用域
--add-port=30678/tcp  #添加端口,格式为:端口/通讯协议
--permanent  #永久生效,没有此参数重启后失效
​
3、重启防火墙
    firewall-cmd --reload4、查看端口号
    netstat -ntlp   //查看当前所有tcp端口·
​
    netstat -ntulp |grep 30678   //查看所有30678端口使用情况

  1. 打开网址,访问成功!

踩坑记录

  • nginx安装完毕,浏览器访问ip时访问失败,经检查是80端口未开启
  • 端口开启失败
  • 访问报错403 forbidden (13: Permission denied)

403一般有三种原因,一是缺失索引文件,二是权限问题,三是SELinux的状态

  1. nginx.conf中的文件路径错误或文件内容缺失index.html文件
  2. 如果nginx没有web目录的操作权限,也会出现403错误
  3. SELinux设置为开启状态(enabled)的原因(我就是遇到了这个问题,导致我被卡了好久)

首先查看本机SELinux的开启状态,如果SELinux status参数为enabled即为开启状态

sestatus -v

修改配置文件 /etc/ selinux/config,将SELINUX=enforcing改为SELINUX=disabled

注意:修改配置文件需要重启系统 reboot

参考资料

  1. Nginx 从入门到实践,万字详解!
  2. nginx.conf 配置文件详解
  3. 刚刚安装完nginx,服务启动,通过浏览器无法访问的问题
  4. Nginx报错403 forbidden (13: Permission denied)的解决办法