服务器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
完成依赖安装!
********************************************解决报错的过程********************************************
解决报错最终的目的是要成功地完成初始化配置!!!
解决报错后,再次执行初始化配置
#编译和安装nginx
make & make install
#查看是否安装成功,出现目录表示安装成功!
whereis nginx
#启动nginx
cd /usr/local/nginx/sbin
./nginx
#查看是否启动成功 或 浏览器查看:ip+port
ps -ef | grep nginx
以上说明启动成功,但浏览器访问可能无法访问成功,原因是:服务器开启了防火墙,且未放行80端口(nginx默认端口号为80)!!!
********************************************解决防火墙的问题********************************************
1、检查是否开启了防火墙限制
#查看已放行的端口
firewall-cmd --list-all
2、将防火墙关闭(不建议) 或 将端口加入到防火墙白名单中
#将80端口加入到防火墙白名单中
firewall-cmd --add-port=80/tcp --permanent
3、重启防火墙
#重载防火墙
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.service
vim /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 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
注意:路径修改为实际的nginx安装路径!
pid路径不一致时会卡住:
3、上述文件完成编辑保存后,进行重载systemd
#重载 systemd 配置
sudo systemctl daemon-reload
4、systemctl 命令
#启动nginx
systemctl start nginx
#重启nginx
systemctl restart nginx
#停止nginx
systemctl 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
# 编译和安装nginx
make & make install
# 查看是否安装成功,出现目录表示安装成功!
whereis nginx
# 启动nginx
cd /usr/local/nginx/sbin
./nginx
# 或
/usr/local/nginx/sbin/ngin
# 查看是否启动成功,浏览器查看:ip+port,http://192.168.81.129:80
ps -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 #####
# 启动nginx
systemctl start nginx
# 重启nginx
systemctl restart nginx
# 停止nginx
systemctl stop nginx
# 查看nginx状态
systemctl status nginx
# 设置开机自启
systemctl enable nginx
# 重启系统
reboot
##### 使用系统命令操作nginx #####