【前言】
这回我来讲解下CentOS7.x下如何安装和配置Nginx服务。
Nginx的历史不在此赘述,更多信息可在网络上查询;它的特点在于轻量、快、支持并发数高是它的特性。
本篇教程将以Nginx源码的方式进行服务的安装!!
(建议全程使用root用户进行操作)
一、安装依赖工具
首先在正式安装Nginx服务时,我们先来安装其依赖的一些工具,如果你的系统已经安装了这些工具,可以忽略此步骤:
1、Nginx源码是以gcc的环境进行编译,所以centos中需要安装该环境来编译Nginx 。
yum install gcc-c++
2、Nginx的http模块需要使用pcre来解析正则表达式。
yum -y install pcre pcre-deve
3、安装依赖的解压包
yum -y install zlib zlib-devel
4、可选的https安全协议安装
yum install -y openssl openssl-devel
二、安装与测试Nginx服务
1)看和下载最新的Nginx源码
地址:https://nginx.org/en/download.html
作为新手,我在这里建议大家下载官网中提供的stable version版本,该版本是稳定版可以让新手避免一些不必要的问题。
这里直接在终端下用命令进行下载:
wget -c https://nginx.org/download/nginx-1.12.2.tar.gz
注意:nginx-1.12.2.tar.gz字符请根据官网当前提供的最新版本进行更改。
2)解压下载好的Nginx源码压缩包
tar -zxvf nginx-1.12.2.tar.gz
3)进入解压缩后的Nginx源码目录
cd nginx-1.12.2.tar.gz
这里就是Nginx的所有源码了,有兴趣的朋友可深入去研究一下,后续有机会我再推出相关的博文。
4)编译和安装Nginx源码
到目前为止我们已经拿到了Nginx的源码了,下面就开始对源码进行编译和安装:
编译和安装共3步,分别是(注意去掉#号):
# ./configure # make # make install
执行完以上的3步后,Nginx服务我们就已经安装完成了,下面开始启动Nginx服务并进行访问测试,是不是想想就激动了呢!
5)启动Nginx服务
一般编译安装完的软件都会放在/usr目录中,注意是 usr 不是 user,这是Unix System Resource,是Unix系统资源的缩写。
我们安装的 Nginx 服务就在 /usr/local/nginx 目录中,如果你实在找不到该目录,可使用 # whereis nginx 指令进行显示,它会告诉你Nginx安装目录在哪里。
好,下面我们就进入该服务目录中:
cd /usr/local/nginx/
Nginx服务的控制命令都存放于/usr/local/nginx/sbin文件夹中,下面对Nginx服务的启动、停止等操作做个简单的介绍:
./nginx # 启动 ./nginx -s stop # 停止 ./nginx -s quit # 停止 ./nginx -s reload # 重载
说明:
./nginx -s quit:此方式停止步骤是待nginx进程处理任务完毕进行停止。
./nginx -s stop:此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。
这时我们只需将终端的工作目录切换到sbin下,并执行./nginx 即可启动 Nginx 服务。
cd ./sbin ./nginx
6)查看Nginx服务进程
ps aux|grep nginx
如果看到类似以下的提示,那么恭喜你Nginx启动成功了。
root 19763 0.0 0.0 20496 572 ? Ss 16:31 0:00 nginx: master process ./nginx
nobody 19766 0.0 0.1 23024 1572 ? S 16:31 0:00 nginx: worker process
7)远程访问测试
在远程主机浏览器的地址栏中输入 localhost 或 本机的 IP 地址就可看到访问情况。
当网页显示 Welcome to nginx!... 字样表示 Nginx 服务访问正常。
如果无法访问,这是因为centos系统的防火墙禁用了80/8080/443这些端口,你可以选择关闭防火墙 或者 配置防火墙监听 80/8080/443/这些端口即可!
以下以关闭防火墙为例:
systemctl stop firewalld.service # 关闭防火墙 systemctl disable firewalld.service # 禁止防火墙开机启动
执行完以上的操作后,再次输入IP地址访问,如无异常就可以获得Nginx的服务了!!
【防火墙拓展篇】
在上文中,我们为了让Nginx服务正常运行,而关闭了CentOS服务器的防火墙,这就带来一个问题,那就是‘服务器安全’问题,为了解决这个问题,我们将在这里展开谈论:
在CentOS 系列的系统中,CentOS_7.x以上默认firewall为防火墙配置,为了解决防火墙安全这个问题,我们使用iptables配置 来代替原有的 firewall 配置。
1)首先查看默认防火墙状态
firewall-cmd --state
(关闭后显示not running,开启后显示running)
如果 firewall 正在运行,那么我们先将它关闭,命令如下:
systemctl stop firewalld.service systemctl disable firewalld.service
下面在给大家提供一些关于默认firewlall防火墙的操作指令:
添加 firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
重载 firewall-cmd --reload
查看 firewall-cmd --zone=public --query-port=80/tcp
删除 firewall-cmd --zone= public --remove-port=80/tcp --permanent
2)配置iptables 规则
在配置iptables前,我们需要安装iptables服务:
yum install iptables-services
安装好后,开始编辑这个防火墙配置文件,该文件存放在 /etc/sysconfig/iptables 目录中:
vim /etc/sysconfig/iptables
加入以下代码:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
说明:
(1) 80,8080是http服务访问端口,443 是https 服务访问端口。
(2) iptables 配置文件默认 开启了22 端口,即 ssh 远程访问控制服务。
添加成功后,保存、重启 iptables 防火墙服务:
systemctl restart iptables.service3
3)配置防火墙开机启动
systemctl enable iptables.service
好啦!教程就到这啦!
转载请注明:泰泰博客 » CentOS 7.x 系统安装和配置Nginx服务