Linux系统下安装nginx服务

时间:2019-01-11
本文章向大家介绍Linux系统下安装nginx服务,主要包括Linux系统下安装nginx服务使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

必要软件环境
#yum install wget
因为Nginx以来与gcc的编译环境,所以,在mini centos中需要安装编译环境来使Nginx能够编译起来。
#yum install gcc-c++
依赖的解压包
#yum -y install zlib zlib-devel
openssl安装
#yum install -y openssl openssl-devel
(以上软件非必须,但为了保证安装成功,请尽量安装。)

安装PCRE
Nginx的http模块需要使用pcre来解析正则表达式,也可以让 Nginx 支持 Rewrite 功能。
方式一:
#yum -y install pcre pcre-devel
方式二:
1、下载 PCRE 安装包,下载地址: http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
[root@bogon src]# wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
2、解压安装包:
[root@bogon src]# tar zxvf pcre-8.35.tar.gz
3、进入安装包目录
[root@bogon src]# cd pcre-8.35
4、编译安装 
[root@bogon pcre-8.35]# ./configure
[root@bogon pcre-8.35]# make && make install
5、查看pcre版本
[root@bogon pcre-8.35]# pcre-config --version
 
安装Nginx
先去Nginx官网查看最新版的Nginx源码地址:https://nginx.org/en/download.html
#wget -c https://nginx.org/download/nginx-1.10.3.tar.gz
下面开始对其解压
#tar -zxvf nginx-1.10.3.tar.gz
进入Nginx目录
#cd nginx-1.10.3
Nginx源码编译:
#./configure
#make
#make install

测试
一般编译安装完的软件都会放在/usr里,这不是user,这是Unix System Resource,是Unix系统资源的缩写。我们在/user/local/里面发现了nginx,进入
#cd /usr/local/nginx/
如果找不到,试试这条命令:
#whereis nginx
它会告诉你nginx在哪,nginx的命令在/usr/local/nginx/sbin目录下,对于nginx的启动,停止,我简单的列举下
./nginx 启动nginx
./nginx -s stop 停止nginx,此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。
./nginx -s quit 停止nginx,此方式停止步骤是待nginx进程处理任务完毕进行停止。
./nginx -s reload 重启nginx,一般是重新载入配置文件时使用
./nginx -s reopen 重启nginx,重新打开日志文件
./nginx -v 查看nginx版本
./nginx -t 查看配置文件正确性

查询nginx进程:
ps aux|grep nginx
root      23045  0.0  0.0  24468   764 ?        Ss   23:02   0:00 nginx: master process sbin/nginx
nobody    23046  0.0  0.1  24888  1232 ?        S    23:02   0:00 nginx: worker process
看到这两条进程状态,你成功了。PS:grep是筛选,|是管道,Linux里筛选的常用方式。
现在,在你的浏览器中输入你远端服务器的ip,看看是否有Nginx欢迎你的字样。

如果没有,关闭CentOS的防火墙试试。
PS:防火墙关闭之后注意配置iptables。CentOS7.0以上默认firewall为防火墙配置,我们这里改为iptables配置。

关闭防火墙
停止firewall
#systemctl stop firewalld.service 
禁止firewall开机启动
#systemctl disable firewalld.service 
查看默认防火墙状态(关闭后显示not running,开启后显示running)
#firewall-cmd --state
配置iptables,首先需要安装iptables服务
#yum install iptables-services
编辑防火墙配置文件
#vim /etc/sysconfig/iptables
加入下面的几行,22是默认存在的
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -jACCEPT
-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
vim里面是直接yy然后p的,不懂的朋友去看下vim编辑器的基本操作,里面有具体的详情。vim里面撤销编辑是回到初始页面,就是按esc,然后点击u即可。
22端口是供ssh访问的,80,8080端口是http服务访问的,以后用到https,也需要打开443端口的访问权限。
保存,重启iptables服务
最后重启防火墙使配置生效
#systemctl restart iptables.service
设置防火墙开机启动
#systemctl enable iptables.service
再次访问远程服务器的ip,是不是有Nginx欢迎你的页面了?

重启之后firewall又被打开,所以我们要设置禁止firewall开机自启动

禁止firewall开机自启动
停止firewall
#systemctl stop firewalld.service 
禁止firewall开机启动
#systemctl disable firewalld.service 

nginx服务未被加入到开机自启动列表,重启服务器后,未发现nginx服务,我们需要手动加入开机自启动
第一步,添加一个新文件,nginx.service
#vim /lib/systemd/system/nginx.service
输入以下内容
========
[Unit]
Description=nginx
After=network.target
 
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target
=============================================
更改文件权限
#chmod 745 /lib/systemd/system/nginx.service
设置开机自启动
#systemctl enable nginx.service
---------------------