微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

nginx三部曲一

Nginx简介

Nginx (engine x) 是一个性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。
其特点是占有内存少,并发能力强,事实上Nginx的并发能力在同类型的网页服务器中表现较好。

Nginx优缺点对比

优点:
1.Nginx由C编写,同样的web服务器,占用的资源和内存低性能高。

2.当启动Nginx服务器,会生成一个master进程,master进程会fork出多个worker进程,由worker线程处理客户端的请求。

4.Nginx支持反向代理(用户有感知的访问叫正向代理如使用v-p-n访问youtube,用户无感知访问叫反向代理如负载均衡),支持7层负载均衡(拓展负载均衡的好处)。

5.Nginx是异步非阻塞型处理请求,采用的epollandqueue模式,apache是阻塞型处理请求。

6.Nginx处理静态文件速度快

7.Nginx高度模块化,配置简单。

8.Nginx单进程多线程

缺点:
1.动态处理差:Nginx处理静态文件好,耗费内存少,但是处理动态页面则很鸡肋,现在一般前端用Nginx作为反向代理抗住压力,apache作为后端处理动态请求。

2.rewrite弱:虽然Nginx支持rewrite功能,但是相比于Apache来说,Apache比Nginx 的rewrite 强大。

Nginx安装方法

使用源码方式安装

使用wget命令下载安装包

wget http://Nginx.org/download/Nginx-1.8.1.tar.gz

安装依赖环境

[root@server ~]# yum install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel -y

创建Nginx目录并解压

[root@server ~]# mkdir  -p /var/temp/Nginx
[root@server ~]# tar -zxvf Nginx-1.8.1.tar.gz  -C /var/temp/Nginx/

开始编译,执行./configure

[root@server Nginx]# cd /var/temp/Nginx/Nginx-1.8.1/
[root@server Nginx-1.8.1]# ls
auto     CHANGES.ru  configure  html     Makefile  objs    src
CHANGES  conf        contrib    LICENSE  man       README
[root@server Nginx-1.8.1]# ./configure

编译安装

[root@server ~]# make && make install

这里我们发现无法直接启动Nginx服务
需要写出具体的启动路径

[root@server ~]# systemctl restart Nginx
Failed to restart Nginx.service: Unit not found.
[root@server ~]# /usr/local/Nginx/sbin/Nginx

实现systemctl 直接启动

创建一个Nginx.service文件

[root@server ~]# vim /usr/lib/systemd/system/Nginx.service
[root@server ~]# cat /usr/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


赋予执行权限
在启动服务之前,需要先重载systemctl命令

[root@server ~]# chmod 755 /usr/lib/systemd/system/Nginx.service
[root@server ~]# systemctl daemon-reload

这里我们发现还是没有启动成功,很有可能就是端口被占用的原因

[root@server ~]# systemctl restart Nginx
Job for Nginx.service Failed because the control process exited with error code. See "systemctl status Nginx.service" and "journalctl -xe" for details.

编辑Nginx配置文件 /usr/local/Nginx/conf/Nginx.conf
将80端口改为8080或其他端口都可

[root@server ~]# vim /usr/local/Nginx/conf/Nginx.conf

在这里插入图片描述

发现Nginx成功启动

[root@server ~]# systemctl restart Nginx
[root@server ~]# systemctl status NginxNginx.service - Nginx
   Loaded: loaded (/usr/lib/systemd/system/Nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2022-02-05 12:56:43 CST; 2min 14s ago
  Process: 62986 ExecStop=/usr/local/Nginx/sbin/Nginx -s quit (code=exited, status=0/SUCCESS)
  Process: 62990 ExecStart=/usr/local/Nginx/sbin/Nginx (code=exited, status=0/SUCCESS)
 Main PID: 62991 (Nginx)
    Tasks: 2
   CGroup: /system.slice/Nginx.service
           ├─62991 Nginx: master process /usr/local/Nginx/sbin/Nginx
           └─62992 Nginx: worker process

Feb 05 12:56:43 server systemd[1]: Starting Nginx...
Feb 05 12:56:43 server systemd[1]: Started Nginx.

Nginx yum方式安装

我们完全可以采用更简单的方法安装Nginx
首先安装epel源

[root@server ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@server ~]# yum clean all

在这里插入图片描述

[root@server ~]# yum install Nginx

直接使用yum 就可以直接安转Nginx
不用安装依赖也不需要自己编译创建
不用创建Nginx.service文件
直接就可以使用
当然版本因源仓库固定无法更改。
下两篇会写到Nginx的应用
感谢观看

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐