首页 > 系统相关 >nginx从入门到实战

nginx从入门到实战

时间:2023-08-27 17:33:32浏览次数:44  
标签:实战 HTTP 入门 配置文件 192.168 server nginx 地址

概述

异步非阻塞的高性能HTTP和反向代理服务器

 

 

nginx的运行架构

 

1、Master进程

 

启动检查nginx.conf是否正确

 

根据配置文件创建、监控worker进程的数量和状态

 

监听socket,接受client发起的请求,然后worker竞争抢夺连接,获胜的worker可以相应请求

 

接收管理员发送的nginx的信号,并将信号通知给worker

 

 

 

 

 

2、Worker进程

 

实际处理client网络请求

 

接受master进程发出的nginx的信号

 

 

 

安装

1、安装nginx的yum源

 

rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

 

  

 

2、使用yum install nginx

 

 

3、检查nginx安装

默认安装到/etc/nginx目录下

 

 

同时也帮我们在/usr/sbin/nginx 创建环境变量,我们可以直接使用nginx命令

 

 

 

nginx管理命令

1、nginx  -help

 

 

2、nginx -V 查看当前nginx安装的模块插件

 

 

3、nginx -v查看nginx的版本

 

 

 

4、nginx -t 检查nginx的配置文件是否合法

 

 

5、nginx -s 给nginx发送信号 stop quit reopen reload

 

 

 

我们看到执行reload信号,master进程不变,但是worker进程重启了

 

6、重复启动nginx会报错,因为80端口已经被占

 

 

 

7、当然也可以用systemctl命令来操作nginx

 

 

 

 

8、查看Nginx的的rpm包

 

 nginx的配置文件

1、全局配置

 

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;

 

2、性能配置文件

 

 

3、http请求相关配置

 

 

4、Include语法 导入外部的配置文件,主要使用场景是导入server配置文件

 

 

 

5、默认的网站配置在这里

 

6、server配置,Server标签主要是一个具体某一个网站的请求和响应

 

 

 

7、Loction 用于匹配网站不同的url的路径

 

 

 

可以看下这域名怎么和servername进行匹配

 

 

 

配置虚拟主机

1、基于ip的单虚拟主机

 

在HTTP区域中,设置一个server标签即可

 虚拟主机的子配置文件

创建一个配置文件

 

 

配置文件内容

 

创建对应的资源文件

 

此时大家要注意看我的配置文件的中server配置、资源文件路径、和实际的页面请求的url

 

访问测试网页

 

访问测试文本

 

 

 

访问测试图片

 

 

 

测试非文本文件

如果是非文本文件和图片文件,nginx会直接让你下载

 

 

 

查看nginx的访问日志

 

 

 

 

查看nginx的错误日志

 

 

 

 

 

 

基于多端口的虚拟主机

我们做了一个配置

 

出错端口permisson failed

但是我们启动nginx确失败了

 

 

此时我们需要这样解决

 

 

 

 

然后执行

 

 

 

 

 

 

我们在再次启动nginx,可以看到nginx已经启动成功,端口已经正常绑定

 

 

 

 

 

 

测试文本文件

 

测试图片文件

 

 

 

 

测试网页文件

 

 

 

 

 

 测试其他文件

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

基于多ip的虚拟主机

 

1、首先配置多ip

 

 

 

 

 

 

2、配置一个配置文件

 

 

 

 

 

 

 

 

配置文件内容如下

 

 

 

 

 

 

 

 

反向代理实战

 

我们先用django写一个web程序,用来做反向代理测试

 

 

 

 

 并在django中获取源ip地址

 

 

 

 

 

 

 

 

 

 

然后客户端访问下这个django的程序,我们看到程序已经正常返回

 

 

 

 

 

 

查看django打印的客户端地址

 

Starting development server at http://192.168.214.1:8090/


Quit the server with CTRL-BREAK.


REMOTE_ADDR:192.168.214.1


HTTP_X_REAL_IP:该元素存在


[27/Aug/2023 16:28:12] "GET /test/ HTTP/1.1" 200 19


REMOTE_ADDR:192.168.214.10


HTTP_X_REAL_IP:该元素存在


[27/Aug/2023 16:28:20] "GET /test/ HTTP/1.0" 200 19


C:\cosdtplatm\django2\app1\views.py changed, reloading.


Watching for file changes with StatReloader

  

 

REMOTE_ADDR:192.168.214.1   客户端A,不过nginx代理打印出来的ip地址,此时这个地址是真实的客户端的地址,同样我们看到这个地址是空:HTTP_X_REAL_IP

 

REMOTE_ADDR:192.168.214.10  客户端A,过nginx代理打印出来的ip地址,此时这个地址的nginx地址,同样我们看到这个地址是空:HTTP_X_REAL_IP

 

 

 

 

 

下面我们修改下nginx的配置

 

 

 再次访问

Django version 3.2.20, using settings 'django2.settings'
Starting development server at http://192.168.214.1:8090/
Quit the server with CTRL-BREAK.
REMOTE_ADDR:192.168.214.10
HTTP_X_REAL_IP:192.168.214.1

  

 

 

[27/Aug/2023 16:35:56] "GET /test/ HTTP/1.0" 200 19

REMOTE_ADDR:192.168.214.1

HTTP_X_REAL_IP:该元素存在

[27/Aug/2023 16:35:58] "GET /test/ HTTP/1.1" 200 19

 

 

 

 

 

#此时我们拿到了真实的nginx的地址

 

 

 

 

 

负责均衡配置

1、配置文件

 

 

 

 

 

 2、测试负载均衡

分别访问2次,返回的结果不一样,说明负载均衡已经生效

a、nginx返回的的页面

 

b、django返回页面

 

标签:实战,HTTP,入门,配置文件,192.168,server,nginx,地址
From: https://www.cnblogs.com/bainianminguo/p/17660533.html

相关文章

  • OpenGL入门——第一个三角形
    一、渲染管线在OpenGL中,任何事物都在3D空间中,而屏幕和窗口却是2D像素数组,所以由OpenGL的图形渲染管线将3D坐标转为2D坐标。图形渲染管线主要分为2个部分:第一部分将3D坐标转为2D坐标,第二部分把2D坐标转为实际的颜色像素。注意:2D坐标和像素也是不同的,2D坐标精确表示一个点在2D空......
  • Nginx配置详细解释
    一、配置解释nginx官方帮助文档:http://nginx.org/en/docs/tengine帮助文档:http://tengine.taobao.org/nginx_docs/cn/docs/Nginx的配置文件的组成部分:主配置文件:nginx.conf子配置文件:includeconf.d/*.conf1.1全局配置nginx有多种模块核心模块:是Nginx服务器正常......
  • 【Ehcache技术专题】「入门到精通」带你一起从零基础进行分析和开发Ehcache框架的实战
    Ehcache的存储方式Ehcache中对于缓存的存储主要有三种方式:分别是堆内存、非堆内存和磁盘。其中非堆内存是针对于企业版Ehcache才有的功能,它可以不受JavaGC的影响,能够创建很大的缓存。堆内存(MemoryStore)我们通常所有的MemoryStore实际上就是堆内存存储。MemoryStore总是可用的,所有......
  • kubernetes client-go快速入门及源码阅读
    client-go是kubernetes官方维护的一个go语言客户端,用于与k8s集群交互,使用client-go可以很方便的完成k8s的二次开发(似乎也必不可少),无论是稳定性还是健壮性都有充分的保障。client-go代码版本:v0.20.2个人水平有些,一定会出现不严谨或者错误的地方,如有错误麻烦评论指正,谢谢版......
  • 安装及使用Nginx
    一、安装及使用Nginx1编译安装nginxcontrib:vim格式文件,修改nginx配置文件的格式,高亮cp-r/opt/nginx-1.18.0/contrib/vim/*/usr/share/vim/vimfiles/conf:配置文件man:man帮助manman/nginx.8不加路径看不了nginx.8文件src:源码包点c点h结尾的文件findsrc......
  • [回馈]ASP.NET Core MVC开发实战之商城系统(六)
    经过一段时间的准备,新的一期【ASP.NETCoreMVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】,商品列表页面,商品详情,购物车等功能的开发,今天继续讲解订单管理功能开发,......
  • 2nginx平滑升级及信号使用
    nginx平滑升级及信号使用1信号nginx命令支持向其发送信号,实现不同功能nginx当做单独命令使用有以下选项[root@localhost~]#nginx-h 显示帮助信息nginxversion:nginx/1.18.0Usage:nginx[-?hvVtTq][-ssignal][-cfilename][-pprefix][-gdirectives]​​......
  • 【web_逆向13】ob混淆及实战
    什么是ob混淆?OB混淆和变量名混淆是常用的代码混淆技术。OB混淆是指在代码中添加一些无用的代码和函数,以增加代码的复杂度和难以理解性,从而增加代码的保护性。变量名混淆是指将变量名替换为无意义的字符串,增加代码的难度和防止代码的逆向分析。ob混淆的特点它会把常规的......
  • Android入门教程 | Fragment 基础概念
    什么是Fragment?Fragment,直译为“碎片”,“片段”。Fragment表示FragmentActivity中的行为或界面的一部分。可以在一个Activity中组合多个片段,从而构建多窗格界面,并在多个Activity中重复使用某个片段。可以将片段视为Activity的模块化组成部分,它具有自己的生命周期,能接收自......
  • nginx部署vue项目报404问题
    解决刷新路由404问题这是因为我的vue项目是采用了history路由模式,又因为vue是单页面应用,一旦切换路由之后,之前的页面就会不存在,然后你再刷新回到之前的页面就会出现404了。(个人理解)解决的方法:将路由模式修改为hash模式(不建议,hash模式#太丑)修改nginx配置location/{tr......