服务器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 #####