1.下载安装包
这里新建了nginx用户,所以都在/home/nginx目录中下载解压安装
方式一、官网下载并上传至虚拟机
方式二、在虚拟机内使用wget命令下载
wget http://nginx.org/download/nginx-?.??.?.tar.gz
2.解压安装包(这里以1.24.0版本为例)
tar -zxvf nginx-1.24.0.tar.gz
3.安装相关依赖
安装Nginx时需要用到部分gcc等依赖,可以放在一条命令执行也可以分成多条
yum install -y gcc pcre-devel zlib-devel
#安装gcc
yum install gcc-c++
#安装PCRE pcre-devel
yum install -y pcre pcre-devel
#安装zlib
yum install -y zlib zlib-devel
#安装Open SSL(SSL根据需要,建议安装,以应付更多需要)
yum install -y openssl openssl-devel
4.进入解压目录,检查文件
# 解压目录
cd ./nginx-1.24.0
# 查看文件
ls -l
5.安装
# 使用configure文件进行安装(
# 使用到SSL的加上--with-http_stub_status_module --with-http_ssl_module
# 使用--prefix=/home/nginx/nginx指定安装的目录
# 可以使用./configure --help | more 命令查看命令的说明
# 可以使用--with-stream增加stream功能,否则配置会不支持
./configure --prefix=/home/nginx/nginx --with-stream
# 进行编译安装
make && make install
6.进入安装后的目录
cd /home/nginx/nginx
ls -l
7.启动Nginx
# 进入目录
cd /home/nginx/nginx/sbin
# 执行启动
# 可以指定配置文件,这样方便配置不同的conf文件根据需要启动
# 指定./nginx -c /home/nginx/nginx/conf/nginx.conf配置文件
./nginx
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
这里出现了这个错误,是因为默认的端口是80,而我使用的用户不具有权限。要么用root用户启动 , 要么在配置文件nginx.conf中将server下的listen端口改掉 , 因为在linux中端口号小于1024都是需要root权限。
# 进入配置文件目录
cd /home/nginx/nginx/conf/
# 修改nginx.conf文件
vi nginx.conf
为了编辑方便可以使用vim命令操作文件,没有vim的环境可以进入root用户,使用yum install vim命令安装。
再次启动服务
# 检查服务是否启动
ps -ef|grep nginx
# 这里config文件改用的8840端口
ps -ef|grep 8840
8.外部访问
在宿主机访问虚拟机Nginx
在Linux中访问Nginx地址
# 地址换成自己的Linux环境地址(ip a)
curl http://192.168.???.???:8840/
内部可以访问,防火墙拦截,可以将防火墙关闭或把对应端口放开,推荐的方式是打开对应的端口。
9.防火墙处理
1.防火墙状态
systemctl status firewalld.service
2.防火墙关闭
systemctl stop firewalld.service
3.防火墙开启
systemctl start firewalld.service
# –zone #作用域
# –add-port=8840/tcp #添加端口,格式为:端口/通讯协议
# –permanent #永久生效,没有此参数重启后失效
firewall-cmd --zone=public --add-port=8840/tcp --permanent
# 重新加载配置
firewall-cmd --reload
这里使用root用户进行对单独的端口进行操作
外部宿主机访问Nginx地址
10.常用几个命令
# 启动命令
./nginx
# 启动命令(指定配置文件)
./nginx -c /home/nginx/nginx/conf/nginx.conf
# 停止指令
./nginx -s stop
# 停止指令
./nginx -s quit
# 重启命令
./nginx -s reload