> 技术文档 > 服务器CentOS7安装Nginx

服务器CentOS7安装Nginx

一、准备工作:

        1、本地模拟生产环境,打开服务器

        2、连接上服务器

        注意使用具备管理权限的账号登录(root或者已授权的user)

        3、下载nginx并上传到服务器中

        nginx官网

        具体方式详见:服务器CentOs7获取文件的方式

二、安装步骤:

        准备工作完成后,可看到安装包(具体路径根据个人自定义)

#解压tar -zxvf nginx-1.26.3.tar.gz

#初始化配置cd nginx-1.26.3./configure或# --prefix是指定安装目录./configure --prefix=/usr/local/nginx

********************************************解决报错的过程********************************************

错误信息主要分两种:

        1、没有编译器

        2、nginx安装缺少相关的依赖包,各种的not found

解决:

#安装编译器,解决报错“./configure: error: C compiler cc is not found”yum -y install gcc gcc-c++ autoconf automake make

        完成编译器及相关依赖安装!

#安装nginx所需要的依赖包yum install -y gcc-c++ zlib zlib-devel openssl openssl-devel pcre pcre-devel

        完成依赖安装!

********************************************解决报错的过程********************************************

解决报错最终的目的是要成功地完成初始化配置!!!

        解决报错后,再次执行初始化配置

#编译和安装nginxmake & make install

#查看是否安装成功,出现目录表示安装成功!whereis nginx

#启动nginxcd /usr/local/nginx/sbin./nginx#查看是否启动成功 或 浏览器查看:ip+portps -ef | grep nginx

以上说明启动成功,但浏览器访问可能无法访问成功,原因是:服务器开启了防火墙,且未放行80端口(nginx默认端口号为80)!!!

********************************************解决防火墙的问题********************************************

1、检查是否开启了防火墙限制#查看已放行的端口firewall-cmd --list-all2、将防火墙关闭(不建议) 或 将端口加入到防火墙白名单中#将80端口加入到防火墙白名单中firewall-cmd --add-port=80/tcp --permanent3、重启防火墙#重载防火墙firewall-cmd --reload

********************************************解决防火墙的问题********************************************

再访问:http://192.168.81.129:80 ,如下图说明启动成功!

        至此,nginx安装完毕!

三、延伸

        1、nginx其它相关命令

#关闭nginx./nginx -s stop#重启nginx./nginx -s reload#杀掉nginx./nginx -s quit

        但实际工作中最常用到的一般就2个:

#修改nginx配置vim /usr/local/nginx/conf/nginx.conf#重启nginx/usr/local/nginx/sbin/nginx -s reload

        2、使用系统命令操作nginx

        上面的命令看着还是有点复杂:需要记住nginx安装目录、进入目录、执行命令等等,有没有更简便的命令?

        当然有,那就是配置系统命令来操作nginx,本文centos7系统可使用systemctl 。

        那可以直接使用吗?不能,需要配置系统命令,不然会报错。

        (具体配置见后文【配置系统命令】)

        3、配置nginx开机自启动

        上面还是需要手动去启动,还是有点不方便,那么就可以配置成开机自启动,而这也是实际运维中采用的方式。

#设置开机自启systemctl enable nginx

四、配置系统命令

        1、创建并编辑nginx.service文件

# 创建并编辑nginx.servicevim /etc/systemd/system/nginx.service# 如果报报错,使用以下语句先安装 vim 工具sudo yum install vim# vim 工具使用小提示:# 打开编辑文件:vim [文件名]# 进入编辑状态: 按 i# 退出编辑状态:按 ESC# 保存并退出:输入 :wq 按 Enter

        2、nginx.service的内容如下:

[Unit]Description=The NGINX HTTP and reverse proxy serverAfter=network.target remote-fs.target nss-lookup.target [Service]Type=forking# 与nginx.conf中的pid保持一致,不然使用命令时会出现卡死而命令却已生效的现象PIDFile=/usr/local/nginx/logs/nginx.pidExecStartPre=/usr/local/nginx/sbin/nginx -tExecStart=/usr/local/nginx/sbin/nginxExecReload=/usr/local/nginx/sbin/nginx -s reloadExecStop=/bin/kill -s QUIT $MAINPIDKillMode=processRestart=on-failurePrivateTmp=true [Install]WantedBy=multi-user.target

        注意:路径修改为实际的nginx安装路径!

        pid路径不一致时会卡住:

        3、上述文件完成编辑保存后,进行重载systemd

#重载 systemd 配置sudo systemctl daemon-reload

        4、systemctl 命令

#启动nginxsystemctl start nginx#重启nginxsystemctl restart nginx#停止nginxsystemctl stop nginx#查看nginx状态systemctl status nginx

        5、验证

五、配置开机自启

        1、配置,重启

# 设置nginx开机自启systemctl enable nginx # 重启系统 reboot

        2、验证

六、命令总结

# 下载nginx安装包wget -c http://nginx.org/download/nginx-1.26.3.tar.gz# 解压tar -zxvf nginx-1.26.3.tar.gz# 初始化配置./configure# 或指定安装位置# 执行配置脚本 --prefix是指定安装目录./configure --prefix=/usr/local/nginx##### 中间报错 ##### # 如果以下语句在初始化配置前执行,则将不会报错 # 安装nginx所需要的依赖包yum install -y gcc-c++ zlib zlib-devel openssl openssl-devel pcre pcre-devel# 解决报错“./configure: error: C compiler cc is not found”yum -y install gcc gcc-c++ autoconf automake make##### 中间报错 ###### 解决报错后,再次执行初始化配置./configure# 编译和安装nginxmake & make install# 查看是否安装成功,出现目录表示安装成功!whereis nginx# 启动nginxcd /usr/local/nginx/sbin./nginx# 或/usr/local/nginx/sbin/ngin# 查看是否启动成功,浏览器查看:ip+port,http://192.168.81.129:80ps -ef | grep nginx# 关闭nginx./nginx -s stop# 或/usr/local/nginx/sbin/nginx -s stop# 重启nginx./nginx -s reload# 或/usr/local/nginx/sbin/nginx -s reload# 关闭/杀掉nginx/usr/local/nginx/sbin/nginx -s quit# 修改nginx配置vim /usr/local/nginx/conf/nginx.conf# 重启nginx/usr/local/nginx/sbin/nginx -s reload##### 解决访问报错 ###### 浏览器访问不通?# 1、检查是否开启了防火墙限制 #查看已放行的端口 firewall-cmd --list-all# 2、将防火墙关闭(不建议) 或 将端口加入到防火墙白名单中 #将80端口加入到防火墙白名单中 firewall-cmd --add-port=80/tcp --permanent# 3、重载防火墙firewall-cmd --reload##### 解决访问报错 ########## 配置系统命令 ##### # 1、创建nginx.service文件 vim /etc/systemd/system/nginx.service # 2、按【i】进入编辑状态,编辑nginx.service内容,内容如下 [Unit] Description=The NGINX HTTP and reverse proxy server After=network.target remote-fs.target nss-lookup.target [Service] Type=forking #nginx.conf中的pid保持一致,不然使用命令时会出现卡死而命令却已生效的现象 PIDFile=/usr/local/nginx/logs/nginx.pid ExecStartPre=/usr/local/nginx/sbin/nginx -t ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/bin/kill -s QUIT $MAINPID KillMode=process Restart=on-failure PrivateTmp=true [Install] WantedBy=multi-user.target # 3、保存并退出 :wq # 4、重载 systemd 配置 sudo systemctl daemon-reload##### 配置系统命令 ########## 使用系统命令操作nginx ###### 启动nginxsystemctl start nginx# 重启nginxsystemctl restart nginx# 停止nginxsystemctl stop nginx# 查看nginx状态systemctl status nginx# 设置开机自启systemctl enable nginx# 重启系统reboot##### 使用系统命令操作nginx #####