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是阻塞型处理请求。
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 直接启动
[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 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] 举报,一经查实,本站将立刻删除。