简单谈谈Nginx基础知识入门

发布时间 - 2026-01-11 02:45:58    点击率:

Nginx 是一个高性能的 HTTP 和反向代理服务器,以高稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。

Nginx 特点 处理静态文件,索引文件以及自动索引;打开文件描述符缓冲. 无缓存的反向代理加速,简单的负载均衡和容错. FastCGI,简单的负载均衡和容错. 模块化的结构。包括 gzipping, byte ranges, chunked responses,以及 SSI-filter 等 filter。如果由 FastCGI 或其它代理服务器处理单页中存在的多个 SSI,则这项处理可以并行运行,而不需要相互等待。 支持 SSL 和 TLSSNI. 主要应用场合 1、静态 HTTP 服务器

首先,Nginx是一个 HTTP 服务器,可以将服务器上的静态文件(如 HTML、图片)通过 HTTP 协议展现给客户端。

配置:

server {
	listen 80; # 端口号
	location / {
		root /usr/share/nginx/html; # 静态文件路径
	}
}

2、反向代理服务器

什么是反向代理?

客户端本来可以直接通过 HTTP 协议访问某网站应用服务器,如果网站管理员在中间加上一个 Nginx,客户端请求Nginx,Nginx 请求应用服务器,然后将结果返回给客户端,此时 Nginx 就是反向代理服务器。

配置:

server {
	listen 80;
	location / {
		proxy_pass http://192.168.20.1:8080; # 应用服务器HTTP地址
	}
}

既然服务器可以直接 HTTP 访问,为什么要在中间加上一个反向代理,不是多此一举吗?反向代理有什么作用?继续往下看,下面的负载均衡、虚拟主机,都基于反向代理实现,当然反向代理的功能也不仅仅是这些。

3、负载均衡

当网站访问量非常大,网站站长开心赚钱的同时,也摊上事儿了。因为网站越来越慢,一台服务器已经不够用了。于是将相同的应用部署在多台服务器上,将大量用户的请求分配给多台机器处理。同时带来的好处是,其中一台服务器万一挂了,只要还有其他服务器正常运行,就不会影响用户使用。

当我们网站进行大的升级更新时,我们不可能直接将所有的服务器都关掉,然后再升级的。通常我们都是批量的关掉一些服务器,去升级网站,当有用户的请求时则分配给其他还在运作的机器处理。当之前关掉的机器更新完成后,再次开启,然后又批量关掉部分机器,如上循环,直到最后全部机器都更新完成。这样就不会影响用户使用。

Nginx 可以通过反向代理来实现负载均衡。

配置:

upstream myapp {
	server 192.168.20.1:8080; # 应用服务器1
	server 192.168.20.2:8080; # 应用服务器2
}
server {
	listen 80;
	location / {
		proxy_pass http://myapp;
	}
}

4、虚拟主机

网站访问量大,需要负载均衡。然而并不是所有网站都如此出色,有的网站,由于访问量太小,需要节省成本,将多个网站部署在同一台服务器上。

例如将 www.aaa.com 和 www.bbb.com 两个网站部署在同一台服务器上,两个域名解析到同一个 IP 地址,但是用户通过两个域名却可以打开两个完全不同的网站,互相不影响,就像访问两个服务器一样,所以叫两个虚拟主机。

配置:

server {
	listen 80 default_server;
	server_name _;
	return 444; # 过滤其他域名的请求,返回444状态码
}
server {
	listen 80;
	server_name www.aaa.com; # www.aaa.com域名
	location / {
		proxy_pass http://localhost:8080; # 对应端口号8080
	}
}
server {
	listen 80;
	server_name www.bbb.com; # www.bbb.com域名
	location / {
		proxy_pass http://localhost:8081; # 对应端口号8081
	}
}

在服务器 8080 和 8081 两个端口分别开了一个应用,客户端通过不同的域名访问,根据 server_name 可以反向代理到对应的应用服务器。

虚拟主机的原理是通过 HTTP 请求头中的 Host 是否匹配 server_name 来实现的,有兴趣的同学可以研究一下 HTTP 协议。

另外,server_name 配置还可以过滤有人恶意将某些域名指向你的主机服务器。

5、FastCGI

Nginx 本身不支持 PHP 等语言,但是它可以通过 FastCGI 来将请求扔给某些语言或框架处理(例如 PHP、Python、Perl)。

server {
	listen 80;
	location ~ \.php$ {
		include fastcgi_params;
		fastcgi_param SCRIPT_FILENAME /PHP文件路径$fastcgi_script_name; # PHP文件路径
		fastcgi_pass 127.0.0.1:9000; # PHP-FPM地址和端口号
		# 另一种方式:fastcgi_pass unix:/var/run/php5-fpm.sock;
	}
}

配置中将 .php 结尾的请求通过 FashCGI 交给 PHP-FPM 处理,PHP-FPM 是 PHP 的一个 FastCGI 管理器。有关FashCGI 可以查阅其他资料,本文不再介绍。

fastcgi_pass 和 proxy_pass 有什么区别?下面一张图带你看明白:


# nginx  # 配置  # conf  # server  # Nginx基础学习之realip模块的使用方法  # Nginx层面配置基础用户验证的完整步骤  # Nginx基础入门之gzip配置指南  # Nginx服务器基础的安全配置与一些安全使用提示  # nginx基础配置说明一则  # 学习nginx基础知识  # 负载均衡  # 客户端  # 代理服务器  # 虚拟主机  # 端口号  # 是一个  # 器上  # 多个  # 一台  # 可以直接  # 来实现  # 多台  # 都是  # 有什么  # 也不  # 网站访问量  # 不可能  # 就像  # 还可以  # 还在 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: php在windows下怎么调试_phpwindows环境调试操作说明【操作】  利用vue写todolist单页应用  如何在IIS中新建站点并解决端口绑定冲突?  Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】  Laravel如何配置和使用缓存?(Redis代码示例)  Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践  ,怎么在广州志愿者网站注册?  EditPlus中的正则表达式 实战(2)  Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】  微信小程序 配置文件详细介绍  Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  如何在自有机房高效搭建专业网站?  Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程  Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】  北京的网站制作公司有哪些,哪个视频网站最好?  如何用腾讯建站主机快速创建免费网站?  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  魔方云NAT建站如何实现端口转发?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  网站制作报价单模板图片,小松挖机官方网站报价?  做企业网站制作流程,企业网站制作基本流程有哪些?  如何确保FTP站点访问权限与数据传输安全?  HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  如何快速搭建高效WAP手机网站?  油猴 教程,油猴搜脚本为什么会网页无法显示?  js实现获取鼠标当前的位置  html5的keygen标签为什么废弃_替代方案说明【解答】  什么是javascript作用域_全局和局部作用域有什么区别?  Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】  中山网站制作网页,中山新生登记系统登记流程?  如何为不同团队 ID 动态生成多个独立按钮  网站制作价目表怎么做,珍爱网婚介费用多少?  如何快速完成中国万网建站详细流程?  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  如何在Windows虚拟主机上快速搭建网站?  laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法  Swift中swift中的switch 语句  悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤  三星、SK海力士获美批准:可向中国出口芯片制造设备  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  如何在万网主机上快速搭建网站?  如何基于PHP生成高效IDC网络公司建站源码?  如何在阿里云购买域名并搭建网站?  香港服务器部署网站为何提示未备案?  如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】