首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Nginx从入门到放弃

Nginx从入门到放弃

作者头像
逍遥子大表哥
发布2025-07-28 15:15:05
发布2025-07-28 15:15:05
23900
代码可运行
举报
文章被收录于专栏:kali blogkali blog
运行总次数:0
代码可运行

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,部署简单。本文简单的介绍下他的使用吧!

安装与启动

代码语言:javascript
代码运行次数:0
运行
复制
apt-get install nginx
# 启动
service nginx start

认识配置文件

nginx的配置文件默认位置在/etc/nginx/目录下。

nginx.conf是我们nginx最核心的配置文件。我们可以将配置信息写到nginx.conf文件中,也可以将配置文件写入site-available(虚拟主机)的配置文件中。

配置静态html

利用nginx我们可以直接配置静态http服务器。需要注意的是,仅能展示html 图片等文件。而php文件是不能运行的。格式如下

代码语言:javascript
代码运行次数:0
运行
复制
server {
 listen 81; #自定义监听端口
 listen [::]:81;
 server_name 127.0.0.1;# 你的域名或IP地址
 root /var/www/html; # 站点根目录
 index index.php index.html;
 location / {
  try_files $uri $uri/ =404; #返回错误页面
 }
}

配置php

以上的配置,我们只能访问静态的html页面。php文件是不能运行的,因此我们需要配置下php。格式如下

代码语言:javascript
代码运行次数:0
运行
复制
location ~ \.php$ {
  include snippets/fastcgi-php.conf;
  # With php-fpm (or other unix sockets):
  fastcgi_pass unix:/run/php/php8.2-fpm.sock;
  # With php-cgi (or other tcp sockets):
  #fastcgi_pass 127.0.0.1:9000;
 }

Nginx本身不支持PHP等语言,但是它可以通过FastCGI来将请求扔给某些语言例如PHP。使用Nginx不用fastCGI的话就好像抽烟不点火。fastCGI的连接方式有两种,一种是基于sockets一种是TCP至于两种有什么区别,(两者选一即可!)建议大家查阅其他的资料。

两种方法的区别

注意事项:

如果nginx访问php提示502错误,检查php-fpm启动是否为正常。

代码语言:javascript
代码运行次数:0
运行
复制
# 查看php-fpm和nginx是否启动
ps -ef|grep php-fpm
ps -ef|grep nginx
apt-get install php8.2-fpm #安装
service php8.2-fpm start #启动

配置完成后,我们便可以访问php文件了。

虚拟主机

在很多情况下,我们在一台服务器上会部署很多个站点。因此我们需要搭建虚拟主机。首先在sites-available目录。配置default文件,复制完成后,重新配置里面的参数,如端口,站点目录等等参数。然后在sites-enabled目录建立软连接。

代码语言:javascript
代码运行次数:0
运行
复制
ln -s /etc/nginx/sites-available/default2 default2

反向代理

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

配置文件

代码语言:javascript
代码运行次数:0
运行
复制
server {
 listen 80;
 location / {
  proxy_pass http://192.168.5.1:8080; # 应用服务器HTTP地址
 }
}

即,当目标访问80端口后,自动跳转到8080端口 既然服务器可以直接HTTP访问,为什么要在中间加上一个反向代理,不是多此一举吗?反向代理有什么作用?

负载均衡

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

配置如下

代码语言:javascript
代码运行次数:0
运行
复制
upstream kali {
 server 192.168.5.1:8080; # 应用服务器1
 server 192.168.5.2:8080; # 应用服务器2
}
server {
 listen 80;
 location / {
  proxy_pass http://kali;
 }
}

总结

以上便是我们在运维中,常见的nginx的配置了。当然除了上诉的玩法外,还有很多的玩法,在后面的文章中,我们会慢慢的涉及到。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-04-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 kali笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装与启动
  • 认识配置文件
  • 配置静态html
  • 配置php
  • 虚拟主机
  • 反向代理
  • 负载均衡
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档