nginx软件

本文介绍了Nginx的基本概念,与Apache的区别,重点讲述了Nginx的yum安装过程和优化配置,包括如何通过scp命令复制配置文件。此外,还提到了Nginx常用命令的详细讲解和通过配置文件搭建小游戏的案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Nginx是什么?

Nginx是web服务软件。

Nginx是一个开源且高性能、可靠的http web服务、代理服务的软件


	1、开源
	2、Nginx web服务器
	3、Nginx是俄罗斯一个程序员
	4、Nginx还是代理

在这里插入图片描述

Nginx特点
1)高性能,高并发nginx支持很高的并发,nginx在处理大量并发的情况下比其他web服务要快

2)轻量且高扩展性#轻量
功能模块少,只保留核心模块,其他代码模块化 (易读,便于二次开发,对于开发人员非常友好)
 
#高扩展性
需要什么模块再安装模块,不需要全部安装,并且还支持第三方模块

3) 高可靠性只要不过分几乎不会出现问题
其他的web服务需要每隔一段时间进行重启,nginx不需要
nginx的宕机时间,是99999级别

4) 支持热部署nginx可以再运行期间,更新迭代,代码部署


5)大多数公司都在用nginx

	1.Nginx技术成熟,具备的功能是企业最常使用而且最需要的
	
	2.适合当前主流架构趋势, 微服务、云架构、中间层
	
	3.统一技术栈, 降低维护成本, 降低技术更新成本

6) Nginx使用的是Epool网络模型

	Select: 当用户发起一次请求,select模型就会进行一次遍历扫描,从而导致性能低下。
	
	Epoll: 当用户发起一次请求,epoll模型会直接进行处理,效率高效,并无连接限制。

7)nginx应用场景

在这里插入图片描述

Nginx和Apache之间对比

网络模型:
	select		性能最低
	poll		性能稍好
	epoll 		性能最强

Select: 当用户发起一次请求,select模型就会进行一次遍历扫描,从而导致性能低下。
Epoll: 当用户发起一次请求,epoll模型会直接进行处理,效率高效,并无连接限制。

Apache   : select 
Nginx 	 :  epoll
其他的web服务

1.apache:
	httpd,最早期使用的web服务,性能不高,操作难

2.nginx
    tengine:Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性
    openresty-nginx:OpenResty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。
    
3.IIS:windows下的web服务

4.lighttpd:是一个德国人领导的开源 Web 服务器软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的 Web Server 环境。具有非常低的内存开销,CPU 占用率低,效能好,以及丰富的模块等特点。

5.GWS:google web server

6.BWS:baidu web server
 
Tomcat
Resin
weblogic
Jboss

安装Nginx

	官网:https://nginx.org/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wZaHk2GB-1641287771678)(F90EE8B4CFCB4E439E37305439B41847)]

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WHjtKVOk-1641287771679)(50AB40F1BCA844F3BAEA36781B628AFA)]

yum安装(推荐)

1、官方源
	
	# (重要:所有的配置必须顶格写)
	[root@web01 ~]# vim /etc/yum.repos.d/nginx.repo
	
	[nginx-stable]
	name=nginx stable repo
	baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
	gpgcheck=1
	enabled=1
	gpgkey=https://nginx.org/keys/nginx_signing.key
	module_hotfixes=true

	[nginx-mainline]
	name=nginx mainline repo
	baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
	gpgcheck=1
	enabled=0
	gpgkey=https://nginx.org/keys/nginx_signing.key
	module_hotfixes=true

	[root@web01 ~]# yum clean all
	[root@web01 ~]# yum makecache

在这里插入图片描述
在这里插入图片描述

[root@web01 ~]# yum install nginx -y 
/etc/nginx/nginx.conf

在这里插入图片描述

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0AYFLJKm-1641287771681)(A52D0B4BCD714A0B8F1E22C30167B642)]

注意:如果安装官方源,epel必须注释掉。
	
2、epel源

	https://developer.aliyun.com/mirror/epel?spm=a2c6h.13651102.0.0.3e221b11yU721Z
	
	wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

清空缓存
	[root@web02 ~]# yum clean all
重新生成
	[root@web02 ~]# yum makecache

	[root@web02 ~]# yum install nginx

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

优化配置:
[root@web01 ~]# scp /etc/nginx/nginx.conf 192.168.15.8:/etc/nginx/
在这里插入图片描述

源代码编译安装(公司对nginx有自定义时安装)

	https://nginx.org/download/nginx-1.20.1.tar.gz

	1、下载源代码包
	[root@web03 ~]# wget https://nginx.org/download/nginx-1.20.1.tar.gz

在这里插入图片描述
在这里插入图片描述

2、解压
[root@web03 ~]# tar -xf nginx-1.20.1.tar.gz 

在这里插入图片描述

3、进入nginx目录并且设置系统配置参数
	[root@web03 nginx-1.20.1]# ./configure --help
	[root@web03 nginx-1.20.1]# ./configure
	--with-http_ssl_module --with-http_v2_module --with-stream

	--with-http_ssl_module		# 配置HTTPS时使用
	--with-http_v2_module		# 配置GOLANG语言时使用
	--with-stream				# 启用TCP/UDP代理服务

在这里插入图片描述

4、开始编译
[root@web03 nginx-1.20.1]# make 

在这里插入图片描述

5、安装
[root@web03 nginx-1.20.1]# make install 

在这里插入图片描述

6、 加入环境变量
	[root@web03 nginx]# vi /etc/profile 
	export PATH=$PATH:/usr/local/nginx/sbin

在这里插入图片描述
在这里插入图片描述

    重载
	[root@web03 nginx]# source /etc/profile

在这里插入图片描述

 重载后测试
  [root@web03 ~]# nginx -v
  nginx version: nginx/1.20.1

在这里插入图片描述
在这里插入图片描述

7、加入system系统管理(重要:一定要顶格写)

	[root@web03 sbin]# vi /usr/lib/systemd/system/nginx.service

在这里插入图片描述

	[Unit]
	Description=nginx - high performance web server
	Documentation=http://nginx.org/en/docs/
	After=network-online.target remote-fs.target nss-lookup.target
	Wants=network-online.target

	[Service]
	Type=forking
	PIDFile=/usr/local/nginx/logs/nginx.pid
	ExecStart=/usr/local/nginx/sbin/nginx -c        # 查看路径是否一致 /usr/local/nginx/conf/nginx.conf
	ExecReload=/usr/local/nginx/sbin/nginx -s reload
	ExecStop=/usr/local/nginx/sbin/nginx -s stop

	[Install]
	WantedBy=multi-user.target
	
8、重载system服务并启动
	[root@web03 sbin]# systemctl daemon-reload
	[root@web03 sbin]# systemctl start nginx
过滤查看进程数:
    ps -ef | grep nginx
错误:
	1、./configure: error: the HTTP rewrite module requires the PCRE library.
	
		yum install pcre pcre-devel -y 
	#  pcre  原本的包
	#  pcre-devel 扩展的包
	2、./configure: error: SSL modules require the OpenSSL library.
	
		yum install openssl openssl-devel -y 

在这里插入图片描述

Nginx常用命令详讲

	nginx -v   :  展示nginx的版本号
	nginx -V	:展示nginx版本号和配置参数
	nginx -t   :  测试配置文件
	nginx -T   :  测试配置文件并打印
	nginx -q   :  静默输出错误信息
	nginx -s   :  向nginx发送信号
	nginx -p   :  指定运行的家目录
	nginx -e   :  设置错误日志的路径
	nginx -c   :  设置配置文件
	nginx -g   :  临时设置配置项 

Nginx的配置文件

Nginx的进程模型

	角色:
	
		master	: 负责监控worker进程
		worker	:负责处理HTTP请求

在这里插入图片描述

案例:搭建小游戏

    1、服务器准备

在这里插入图片描述

    2、nginx安装参考上面安装
    
	3、上传代码
	上传到这个路径下: /usr/share/nginx/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

    4、Nginx配置文件参数详解
# 工作进程启动用户
user  nginx;
# 启动的worker进程数
worker_processes  auto;
# 指定错误日志的路径
error_log  /var/log/nginx/error.log notice;
# 指定nginx进程的PID
pid        /var/run/nginx.pid;
# 配置事件
events {
    # worker进程中最大的连接数
    worker_connections  1024;
}

# http配置模块
http {
	# include 是将其他文件导入进来
    include       /etc/nginx/mime.types;
	
	# default_type 指定nginx处理文件的默认类型
    default_type  application/octet-stream;

	# 定义日志的格式
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
	
	# 定义日志路径
    access_log  /var/log/nginx/access.log  main;

	# 高效读取文件
    sendfile        on;
    #tcp_nopush     on;
	
	# 长连接的超时时间
	keepalive_timeout  65;

	# 设置GZIP压缩
    #gzip  on;

	# 加载其他的配置文件
    include /etc/nginx/conf.d/*.conf;
}
	5、增加网站的配置
		1、vim  /etc/nginx/conf.d/game.conf

		server {
			server_name game.test.com;
			listen 80;
			location / {
				root /usr/share/nginx/html5-mario;
				index index.html;
			}
		}
# 游戏配置文件详解
game.conf 
# 每一个server都代表一个网站(nginx是支持多个网站)
server {
	# 指定当前网站的域名
	server_name www.baidu.com;
	
	# 指定当前网站的端口
	listen 80;
	
	# 指定一个访问路径
	location / {
		
		# 指定站点目录
		root /opt/html;
		# 指定默认访问的文件
		index index.html;
	}
}
	2、测试nginx配置文件是否正确
	 
		[root@web02 conf.d]# nginx -t
		nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
		nginx: configuration file /etc/nginx/nginx.conf test is successful

	3、启动nginx
	
		[root@web02 conf.d]# systemctl restart nginx
	
	4、编写Windows的hosts文件
	C:\Windows\System32\drivers\etc

在这里插入图片描述

如果无法修改hosts文件,请修改权限
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rxSIPaUP-1641287771687)(AFB46E1AE03A42D6B03C4E8CA57909FD)]

    6、测试
    浏览器输入
        http://game.test.com/

在这里插入图片描述

查看文件类型:
    cat /etc/nginx/mime.types

查看配置端口:
    netstat -nutlp
 
持久化:
    service iptables save

nginx-1.0.4 nginx nginx最新版 全能服务器 代理服务器 http://www.bywei.cn/blog 程序员百味 Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。 目录 优点 Nginx性能概述 常见问题(FAQ) 安装Nginx 展开 编辑本段优点    [nginx map] nginx map Nginx 可以在大多数 Unix like OS 上编译运行,并有 Windows 移植版。目前 Nginx 的1.0.0稳定版已发布,开发版本为0.9.x,稳定版为 0.8.x,历史稳定版为 0.7.x,建议使用 0.8系列作为生产版本。 Nginx 的源代码使用 2-clause BSD-like license。   Nginx 是一个很牛的高性能Web和反向代理服务器,它具有很多非常优越的特性:   在高连接并发的情况下,Nginx是Apache服务器不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达 50,000 个并发连接数的响应,感谢Nginx为我们选择了 epoll and kqueue作为开发模型。   Nginx作为负载均衡服务器Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务器对外进行服务。Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多。   作为邮件代理服务器Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last. fm 描述了成功并且美妙的使用经验。   Nginx 是一个安装非常的简单,配置文件非常简洁(还能够支持perl语法),Bugs非常少的服务器Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。 http://club.bywei.cn/ 百味创富社区
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值