Nginx基本入门

Nginx基本入门1 静态 HTTP 服务器首先 Nginx 是一个 HTTP 服务器 可以将服务器上的静态文件 如 HTML 图片 通过 HTTP 协议展现给客户端 配置 server listen80 端口号 location root usr share nginx html 静态文件路径 2 反向代理服务器什么是反向代理 客户端本来可以直接通过 H

1、静态HTTP服务器

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

配置:

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

2、反向代理服务器

什么是反向代理?

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

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

3、负载均衡

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

upstream myweb { server 192.168.0.111:8080; # 应用服务器1 server 192.168.0.112:8080; # 应用服务器2 } server { listen 80; location / { proxy_pass http://myweb; } } 

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可以查阅其他资料,本文不再介绍。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/208110.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午12:20
下一篇 2026年3月19日 下午12:20


相关推荐

  • 如何用虚拟卡订阅Cursor会员

    如何用虚拟卡订阅Cursor会员

    2026年3月15日
    3
  • 计算机键盘最小化,笔记本最小化快捷键是哪个按键

    计算机键盘最小化,笔记本最小化快捷键是哪个按键笔记本最小化快捷键是哪个按键大家在浏览网页时经常需要使用最小化窗口 那么笔记本最小化的快捷键是什么呢 百分网 IT 小编整理了一下 有许多种方法就让小编给大家介绍下 笔记本最小化的快捷键 ALT Esc 可以使当前窗口最小化从某些方式来说 使用键盘上面的几个组合键也可以起到最小化当前页面的作用 当然 好东西都是要留在最后的嘛 所以先看看这个用途不广的方法吧 就是按下键盘上面的 Alt 键 Space 空格

    2026年3月18日
    2
  • 双因素身份认证系统的技术特点_mfa多因素认证

    双因素身份认证系统的技术特点_mfa多因素认证一般的状况下,用户通常使用的网络登录办法为:用户名称+密码。在密码为静态的状况下,将会产生某些问题,比如为了维护密码安全性,必须严格规定密码的长度、复杂性(例如:中英文数字夹杂,大小写间隔,长度须超过8个字符以上)及定期更换的频率。  用户为了方便记忆,常常习惯使用特殊的数字,例如家人的生日、自己的生日、身高体重、电话或门牌号码等,此种方法极不安全。  只要利用黑客工具,如字典攻击法等便能在短时间

    2025年8月6日
    4
  • c语言贪吃蛇(简易版本含完整代码)

    c语言贪吃蛇(简易版本含完整代码)这个贪吃蛇是在我学完C语言的基本部分在跟着哈工大的c语言程序设计Mooc课程完了之后做的因为学完C语言很迷茫不晓得应该学什么学校里面的题库感觉刷起来又没有实际我能看到的东西我认为在阶段性的学习过程中应该找到自己能够看得到的成果才能刺激自己继续往前进继续学习不然很枯燥的学习谁都坚持不下去这也是在看了视频教程后自己一步步敲出来的其实还是建议大家在看懂了代码后自己实现因为不要怕自己忘不忘这又不是理论知识敲出来的代码就是自己的一步步的提升加油qwq这里是head.h头文件因为

    2022年6月28日
    29
  • 软件易用性测试_易用性测试包含界面测试吗

    软件易用性测试_易用性测试包含界面测试吗软件易用性测试一、易用性概念软件易用性是软件质量体系中一个重要的质量特性。在各个标准体系中都有关于软件易用性的定义描述。在一些组织的标准定义中,易用性又被称为可用性。无论该特性名称和具体细节如何定义描述,所有关于易用性或者可用性的研究都是围绕着“用户对于产品的使用感受”这个中心展开的。 易用性(可用性)体现的是用户在使用过程中所实际感受到的产品质量。软件的易用性是由软件的人机交互界面来集中体现。界面的布局设计、操作逻辑与流程、交互信息的显示、帮助和索引文档…用户对于这些元素

    2025年7月24日
    3
  • @JsonIgnore注解

    @JsonIgnore注解JsonIgnore 注解作用 在 json 序列化时将 pojo 中的一些属性忽略掉 标记在属性或者方法上 返回的 json 数据即不包含该属性 Table name tb user publicclassU Id GeneratedVal strategy GenerationTy IDENTITY privateLongi

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号