超实用是Nginx介绍与安装指南
前言
一、Nginx介绍
1.1:何为Nginx
1.2:Nginx工作原理
1.3:Nginx优点
二、Nginx安装指南
2.1:安装支持的环境依赖
2.2:创建Nginx运行的用户、组
2.3:编译安装Nginx
2.4:优化路径
2.5:检查配置文件
2.6:启动、停止Nginx
2.7:添加系统服务
前言
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
一、Nginx介绍
1.1:何为Nginx
Nginx是一款轻量级的Web 服务器/反向代理反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
1.2:Nginx工作原理
Nginx 本身做的工作实际很少,当它接到一个 HTTP 请求时, 它仅仅是通过查找配置文件将此次请求映射到一个 location block,而此 location 中所配 置的各个指令则会启动不同的模块去完成工作,因此模块可以看做 Nginx 真正的劳动工作者。
Nginx 的模块从功能上分为如下三类:
- Handlers(处理器模块):此类模块直接处理请求,并进行输出内容和修改 headers 信息等操作。Handlers 处理器模块一般只能有一个
- Filters(过滤器模块):此类模块主要对其他处理器模块输出的内容进行修改操作,最后由 Nginx 输出
- Proxies(代理类模块):此类模块是 Nginx 的 HTTP Upstream 之类的模块,这些模块主要与后端一些服务比如 FastCGI 等进行交互,实现服务代理和负载均衡等功能
1.3:Nginx优点
Nginx(发音为[engine x])专为性能优化而开发,其最知名的优点是它的稳定性和低系统资源消耗,以及对HTTP并发连接的高处理能力(单台物理服务器可支持30 000~50000个并发请求)。正因为如此,大量提供社交网络、新闻资讯、电子商务及虚拟主机等服务的企业纷纷选择Nginx来提供Web服务。
二、Nginx安装指南
2.1:安装支持的环境依赖
[root@Nginx opt]# yum -y install \
> gcc \ ####安装gcc库
> gcc-c++ \ ####安装gcc-c++语言
> make \ ####安装编译包
> pcre-devel \ ####兼容正则表达式
> expat -devel \ ####安装xml解析库
> prel \ ####安装prel语言
> zlib ####安装压缩文件库
2.2:创建Nginx运行的用户、组
- Nginx服务进程默认以nobody身份运行,建议为其创建专门的 用户账户,以便更准确地控制其访问权限,增加灵活性、降低安全风险。例如,穿件一个名为nginx的用户,不建立宿主文件夹,也禁止登录到shell环境
[root@Nginx ~]# useradd -M -s /sbin/nologin nginx
2.3:编译安装Nginx
- 配置Nginx的编译选项时,将安装目录设为/usr/local/nginx,运行用户和组均设为nginx;启用http_stub_status_module模块以支持状态统计,便于查看服务器的连接信息
[root@Nginx opt]# tar xzvf nginx-1.15.9.tar.gz
[root@Nginx opt]# cd nginx-1.15.9/
[root@Nginx nginx-1.15.9]# ./configure \
> --prefix=/usr/local/nginx \ ####指定安装路径
> --user=nginx \ ####指定用户账户
> --group=nginx \ ####指定用户组
> --with-http_stub_status_module ####启用模块,支持状态统计
[root@Nginx nginx-1.15.9]# make && make install
2.4:优化路径
- 为了使Nginx服务器的运行更加方便,可以为主程序nginx创建链接文件,以便管理员直接执行“nginx”命令就可以调用Nginx的主程序
[root@nginx nginx-1.15.9]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin
[root@nginx nginx-1.15.9]# ls -l /usr/local/sbin/nginx
lrwxrwxrwx. 1 root root 27 10月 9 00:39 /usr/local/sbin/nginx -> /usr/local/nginx/sbin/nginx
2.5:检查配置文件
- 与Apache的主程序httpd类似,Nginx的主程序也提供了"-t"选项用来对配置文件进行检查,以便找出不当或错误的配置。配置文件 nginx.conf 默认位置安装目录下的 conf/子目录中。若要检查位置其他位置的配置文件。可以用 “-c” 选项来指定路径
[root@nginx nginx-1.15.9]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
2.6:启动、停止Nginx
直接运行 Nginx 即可启动 Nginx 服务器,这种方式将使用默认的配置文件,若要改用其他配置文件,需添加 “-c 配置文件路径”选项来指定路径。需要注意的是,若服务器中有 httpd 等其他Web服务软件,应采取措施(修改端口、停用或卸载)避免冲突。
[root@nginx nginx-1.15.9]# netstat -anpt | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 24176/nginx: master
[root@nginx nginx-1.15.9]# yum -y install lynx
[root@nginx nginx-1.15.9]# lynx 127.0.0.1
2.7:添加系统服务
- 为了使 Nginx 服务的启动、停止、重载等操作更加方便,可以编写基与 Nginx 服务控制文件使用 systemctl 工具来进行管理
[root@nginx systemd]# cd /lib/systemd/system
[root@nginx system]# vim nginx.service
[Unit]
Description=nginx ####描述性信息
After=network.target ####服务类别
[Service]
Type=forking ###后台运行形式
PIDFile=/usr/local/nginx/logs/nginx.pid ###PID文件位置
ExecStart=/usr/local/nginx/sbin/nginx ###启动服务
ExecReload=/usr/bin/kill -s HUP $MAINPID ###根据PID重载配置
ExecStop=/usr/bin/kill -s QUIT $MAINPID ###根据PID终止进程
PrivateTmp=true ####临时文件开启
[lnstall]
WantedBy=multi-user.target ####多用户
~
[root@nginx system]# chmod 754 nginx.service ####赋予权限
[root@nginx system]# systemctl start nginx.service ####通过systemctl控制Nginx
[root@nginx system]# chmod 754 nginx.service ####赋予权限
[root@nginx system]# systemctl start nginx.service ####通过systemctl控制Nginx