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三部曲(一)

发现nginx成功启动

[root@server ~]# systemctl restart nginx
[root@server ~]# systemctl status nginx
● nginx.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

nginx三部曲(一)

[root@server ~]# yum install nginx

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

上一篇:尚硅谷 NginX 笔记


下一篇:[学习笔记] Linux 下配置Ngnix的SSL证书