nginx学习笔记1

nginx在官方网站提供了软件下载,官网地址:http://nginx.org/en/download.html,目前Nginx发布3种类型的版本:

1.Mainline version:开发版本

2.Stable version:稳定版本

3.Legacy versions:早期版本

 

在Windows系统上通过virtualbox虚拟机安装的centos7作为学习的服务器,使用xshell连接虚拟机。

一.Nginx安装前相关准备工作

1.将下载好的nginx压缩包通过xftp上传到虚拟机的目录中。如下图所示:

2.切换到解压的目录,将压缩包解压

[shell@shell-learn myusr]$ tar -zxvf /mytools/nginx-1.16.0.tar.gz 

3.将用户切换到root用户:

[shell@shell-learn nginx-1.16.0]$ su root

4.nginx目录结构介绍

src目录:存放Nginx的源代码

man目录:存放Nginx的帮助文档

html目录:存放默认网站文件

contrib目录:存放其他机构或组织贡献的文档资料

conf目录:存放Nginx服务器的配置文件

auto目录:存放大量的脚本文件,和configure脚本程序相关

configure文件:Nginx自动安装脚本,用于检查环境,生成编译代码需要的makefile文件

CHANGES、CHANGES.ru、LICENSE、README都是Nginx服务器的相关文档资料

5.Nginx相关依赖包

pcre-devel:为Nginx模块(如rewrite)提供正则表达式库

zlib-devel:为Nginx模块(如gzip)提供数据压缩用的函数库

openssl-devel:为Nginx模块(如ssl)提供密码算法、证书以及SSL协议等功能

安装命令:

 yum -y install pcre-devel openssl-devel

由于openssl-devel依赖于zlib-devel,在通过安装openssl-devel时会自动解决依赖,因此不需要安装zlib-devel

二.Nginx编译安装

1.切换到解压目录

[root@shell-learn myusr]$ cd nginx-1.16.0/

2.配置Nginx的编译选项,指定安装目录

[root@shell-learn nginx-1.16.0]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module

其他模块暂时用不到,当用到的时候重新编译Nginx,并使用--with-选项添加需要的模块即可。

编译时候,出现错误:./configure: error: C compiler cc is not found ,需要安装编译插件:

[root@shell-learn nginx-1.16.0]#yum -y install gcc-c++

3.通过make命令编译和安装Nginx

[root@shell-learn nginx-1.16.0]# sudo make && make install

三.Nginx的启动和停止

1.启动Nginx

[root@shell-learn nginx-1.16.0]# cd /usr/local/nginx/sbin
[root@shell-learn sbin]# ./nginx

2.查看Nginx运行状态

[root@shell-learn sbin]# ps aux|grep nginx

root 6324 0.0 0.1 45952 1128 ? Ss 09:08 0:00 nginx: master process ./nginx
nobody 6325 0.0 0.1 46412 1904 ? S 09:08 0:00 nginx: worker process
root 6328 0.0 0.0 112708 984 pts/0 R+ 09:09 0:00 grep --color=auto nginx

前两行分别是Nginx主进程和工作进程,第三行是grep Nginx命令。主进程以root用户运行,而工作进程以nobody用户运行,进程ID分别是6324 和 6325。

3.停止Nginx服务

立即停止服务:

[root@shell-learn sbin]# ./nginx -s stop

从容停止服务:

[root@shell-learn sbin]# ./nginx -s quit

通过kill或者killall命令杀死进程:

kill Nginx的主进程的PID

killall nginx

4.查看端口号占用

netstat -tlnp

四.访问测试

1.安装iptables防火墙

在CentOS 7中防火墙由firewalld来管理,我们这里使用iptables管理方式。


停止firewalld服务:


systemctl stop firewalld

systemctl mask firewalld


安装iptables-services:

yum install iptables-services


启动iptables服务
systemctl start iptables
设置开机启动:

systemctl enable iptables

 

2.配置iptables防火墙,实现开放80端口的访问

[root@shell-learn ·]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT

参数说明:

-I INPUT:表示在INPUT(外部访问规则)中插入一条规则

-p tcp:指定数据包匹配的协议(tcp、udp、icmp等),这里指定tcp协议

--dport 80:用于指定数据包匹配的目标端口号,这里指定80端口

-j ACCEPT:指定对数据包的处理操作(ACCEPT、DROP、REJECT、REDIRECT等),这里指定ACCEPT操作

3.查看防火墙状态

[root@shell-learn ·]# service iptables status

4.需要将临时生效的配置保存

[root@shell-learn ·]# service iptables save

5.重启iptables 防火墙

[root@shell-learn ·]# service iptables restart

6.访问Nginx主页

在windows系统中通过浏览器进行访问:http://nginx服务器的ip地址

五.添加到环境变量

1.查看环境变量

[root@shell-learn ·]# echo $PATH

/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/shell/.local/bin:/home/shell/bin

其中/bin和/sbin放置常用程序;sbin表示需要管理员权限;/usr/bin和/usr/sbin放置一些工具软件的可执行程序;/usr/local/bin和/usr/local/sbin放置用户自行安装的可执行程序。

2.通过软链接将nginx程序链接到/usr/local/sbin目录中

[root@shell-learn ·]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/nginx

创建软链接后,就可以在任意目录下直接使用nginx命令来控制nginx服务。

六.添加到系统服务

在centos系统中,service命令实际上是调用了/etc/init.d目录下的shell脚本,因此将nginx添加到系统服务中时,需要在/etc/init.d目录中编写一个文件名称为nginx的shell脚本。

#! /bin/bash
#Startup script for the nginx Web Server
DAEMON=/usr/local/nginx/sbin/nginx
case "$1" in
start)
echo "Starting Nginx daemon..."
$DAEMON && echo "SUCESS"
;;
stop)
echo "Stopping Nginx daemon..."
$DAEMON -s quit && echo "SUCESS"
;;
reload)
echo "Reloading Nginx daemon..."
$DAEMON -s reload && echo "SUCESS"
;;
restart)
echo "Restart Nginx daemon..."
$DAEMON -s quit
$DAEMON && echo "SUCESS"
;;
*)
echo "Usage: service nginx {start|restart|reload|stop|test|show}"
;;
esac

 

保存脚本,并为nginx脚本添加可执行权限

[root@shell-learn ·]# chmod +x /etc/init.d/nginx

七.设置开机自启动

若nginx服务实现开机启动,就需要在/etc/init.d/nginx脚本文件中添加对chkconfig的支持,打开脚本文件,在第二行的位置新增如下内容:

#chkconfig: 35 85 15

其中35表示nginx服务允许的启动级别是3和5,若暂时不开启任何启动级别,可以使用“-”代替。85和15用于设置nginx服务的启动(S)顺序和关闭(K)顺序。数值小的先执行,数值大的后执行。该值是用户自定义取值范围在0-99之间。

使用chkconfig命令执行添加nginx服务自启动操作,具体命令如下:

[root@shell-learn ·]# chkconfig --add nginx

通过chkconfig --list查看添加后的效果。

重新启动Linux系统,测试nginx服务是否能够开机自启动。

 

posted @ 2019-06-18 22:55  牛头人  阅读(249)  评论(0编辑  收藏  举报