一、安装准备
卸载
查看是否之前安装过nginx
whereis nigin
如果有就会返回nginx路径
卸载
yum remove nginx
安装
centOS安装nginx可以有以下两种方式
- centos的yum 存储库,添加EPEL仓库
- 从nginx官网下载
nginx-xxx.tar.gz
手动安装
1.yum安装
1.添加源
默认情况Centos7中无Nginx的源,最近发现Nginx官网提供了Centos的源地址。因此可以如下执行命令添加源
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
2、安装Nginx
通过yum search nginx看看是否已经添加源成功。如果成功则执行下列命令安装Nginx
#查看是否添加源成功
sudo yum search nginx
#安装
sudo yum install -y nginx
3、启动Nginx
sudo systemctl start nginx
#或者
service nginx start
4.开机启动nginx
sudo systemctl enable nginx
5.配置文件
#默认配置文件在/etc/nginx目录下
/etc/nginx/conf/nginx.conf
6.测试
在浏览器地址栏输入服务器ip访问
2.编译安装
1.准备
nginx的一些模块依赖一些lib库,所以在安装之前,先装依赖库,c++
,gcc
,openssl-devl
,pcre-devel
和zlib-devel
#编译环境
yum install gcc-c++
#rewrite模块需要pcre库
yum install pcre pcre-devel
#gzip模块需要zlib库
yum install zlib zlib-devel
#SSL功能需要openssl库
yum install openssl openssl-devel
2.下载
先在/usr/local
目录下下载
wget http://nginx.org/download/nginx-1.14.0.tar.gz
PS: 如果没有wget
命令
# 如果没有安装wget
$ yum install wget
3.解压
tar zxvf nginx-1.14.0.tar.gz
#我们一般安装linux软件都会在/usr/local目录下,然后进行解压编译安装
#如果不是在local目录下操作,移动解压后的源码包
mv nginx-1.11.3 /usr/local/nginx-1.14.0
4.进入安装目录
cd nginx-1.14.0
5.编译安装
./configure
#或者 ./configure --prefix=/usr/local/nginx 安装到/usr/local/nginx的nginx目录下
make
make install
#查看版本
/usr/local/nginx/sbin/nginx -v
#检查nginx.conf配置文件正确性
/usr/local/webserver/nginx/sbin/nginx -t
6.启动 Nginx
/usr/local//nginx/sbin/nginx
管理命令
# 启动1:
/usr/local/nginx/sbin/nginx
# 启动2:
cd /usr/local/nginx/sbin
./nginx
# 启动3:
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
# 重新载入配置
/usr/local/nginx/sbin/nginx -s reload
# 重启
/usr/local/nginx/sbin/nginx -s reopen
# 关闭进程
/usr/local/nginx/sbin/nginx -s stop
# 平滑关闭nginx
/usr/local/nginx/sbin/nginx -s quit
# 查看nginx版本
/usr/local/nginx/sbin/nginx -V
# 检查配置文件nginx.conf的正确性
/usr/local/nginx/sbin/nginx -t
进程管理
#查询进程
ps -ef|grep nginx
#停止进程
kill -QUIT 主进程
#快速停止
kill -TERM 主进程
#强制关闭
pkill -9 nginx
防火墙
nginx默认只开启22端口,80等端口都是关闭的
解决1:关闭防火墙
#查看防火墙状态
firewall-cmd --state
#停止firewall
systemctl stop firewalld.service
#禁止firewall开机启动
systemctl disable firewalld.service
解决2:开放特定端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
#命令含义:
--zone #作用域
--add-port=80/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效
#重启防火墙
systemctl stop firewalld.service
systemctl start firewalld.service
#或者
firewall-cmd --reload
解决三:配置防火墙文件
在/etc/sysconfig/iptables
目录下
vim /etc/sysconfig/iptables
#添加如下代码
-A INPUT -p tcp -m state -- state NEW -m tcp --dport 80 -j ACCEPT
#保存退出,重启防火墙
service iptables restart