Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。
其特点是占有内存少,并发能力强,事实上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 强大。
使用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
创建一个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 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
首先安装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的应用
感谢观看