您的位置:首页 > 教育 > 培训 > web集群-nginx(nginx三种文件模块,nginx用户请求流程,域名访问网站,虚拟主机,搭建大型直播购物平台)

web集群-nginx(nginx三种文件模块,nginx用户请求流程,域名访问网站,虚拟主机,搭建大型直播购物平台)

2024/10/5 1:39:33 来源:https://blog.csdn.net/2302_78067597/article/details/139898939  浏览:    关键词:web集群-nginx(nginx三种文件模块,nginx用户请求流程,域名访问网站,虚拟主机,搭建大型直播购物平台)

nginx文件模块

在这里插入图片描述

  • lineinfile
  • 未来修改配置文件使用,类似于sed -i ‘sg’ 和sed ‘cai’

掌握file模块:创建文件,目录,创建软链接,修改权限和所有者,删除文件目录

服务管理systemd

systemctl相当于linux systemctl命令

name:指定服务名称enabled:yes开机自启动state:表示服务开,关,重启​         state=started开启​         state= stopped关闭​         state=reloaded重读配置文件(服务支持)​         state=restarted重启(关闭再开启)daemon-reload yes是否重新加载对应的服务的管理配置文件

案例:开启crond服务并且设置开机自启动

[root@m01 ~]#ansible all -m systemd -a 'name=crond enabled=yes state=started'

在这里插入图片描述

案例:关闭防火墙并设置开机自启动

[root@m01 ~]#ansible all -m systemd -a 'name=firewalld enabled=no state=started'

在这里插入图片描述

yum模块

yum模块并不支持只是yum命令,包括yum、apt命令

name 软件包名字,可以指定多个,逗号进行分割state    installed 安装(也可以写多个写为present)(默认)​           removed 删除(也可以写为absent)​           lastest安装或更新update_cache 可以设置为no加加速,表示不更新本地yum缓存,实际应用建议开启
[root@m01 ~]#ansible all -m yum -a 'name=htop,tree,lrzsz update_cache=yes state=present'

在这里插入图片描述

get_url 模块

相当于是wget命令,所有主机能访问网络才行

推荐在管理节点下载好,使用copy仅仅分发即可

实践

部署hs.wulinlinux.cn网站

域名:hs.wulinlinux.cn

站点目录:/app/code/wulin

代码来源:自己前端茶叶项目.zip

配置yum源:

[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

检查安装:

[root@web01 ~]#rpm -ql nginx
/etc/logrotate.d/nginx
/etc/nginx
/etc/nginx/conf.d
/etc/nginx/conf.d/default.conf
/etc/nginx/fastcgi_params
/etc/nginx/mime.types
/etc/nginx/modules
/etc/nginx/nginx.conf
/etc/nginx/scgi_params
/etc/nginx/uwsgi_params
/usr/lib/systemd/system/nginx-debug.service
/usr/lib/systemd/system/nginx.service
/usr/lib64/nginx
/usr/lib64/nginx/modules
/usr/libexec/initscripts/legacy-actions/nginx
/usr/libexec/initscripts/legacy-actions/nginx/check-reload
/usr/libexec/initscripts/legacy-actions/nginx/upgrade
/usr/sbin/nginx
/usr/sbin/nginx-debug
/usr/share/doc/nginx-1.26.0
/usr/share/doc/nginx-1.26.0/COPYRIGHT
/usr/share/man/man8/nginx.8.gz
/usr/share/nginx
/usr/share/nginx/html
/usr/share/nginx/html/50x.html
/usr/share/nginx/html/index.html
/var/cache/nginx
/var/log/nginx

目录结构:
nginx不同的安装方法,目录,文件会有区别:

/etc/nginx/ nginx各种配置目录

/etc/nginx/nginx.conf 主配置文件

/etc/nginx/conf.d/ 子配置文件(网站)

/etc/nginx/conf.d/default.conf 默认的子配置文件

/usr/sbin/nginx nginx命令

/usr/share/nginx/html/ nginx默认的站点目录,网站的根目录

/var/log/nginx/ 访问日志,错误日志

/etc/logrotate.d/nginx 日志切割(防止文件过大)

/etc/nginx/mime.types 媒体类型

/etc/nginx/uwsgi_params nginx+php

/etc/nginx/uwsgi_params ngx+python

/usr/lib/systemd/system/nginx.service systemctl配置文件

/var/cache/nginx/ 缓存目录

启动与管理

[root@web01 ~]#systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
启动
[root@web01 ~]#systemctl start nginx
查看状态
[root@web01 ~]#systemctl status nginx
● nginx.service - nginx - high performance web serverLoaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)Active: active (running) since 二 2024-05-21 14:21:50 CST; 13s agoDocs: http://nginx.org/en/docs/Process: 41390 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/S)Main PID: 41391 (nginx)CGroup: /system.slice/nginx.service├─41391 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf└─41392 nginx: worker process
查看端口
[root@web01 ~]#ss -lntup |grep nginx
tcp    LISTEN     0      511       *:80                    *:*                   users:(("nginx",pid=41392,fd=6),("nginx",pid=41391,fd=6))查看进程信息
[root@web01 ~]#ps -ef |grep nginx
root      41391      1  0 14:21 ?        00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx     41392  41391  0 14:21 ?        00:00:00 nginx: worker process
root      41507  37912  0 14:26 pts/0    00:00:00 grep --color=auto nginx

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
命令行访问:

[root@web01 ~]#curl 192.168.28.7
[root@web01 ~]#curl -v 192.168.28.7
[root@web01 ~]#curl 192.168.28.7
wulin linux jiagou of nginx page---2025/5/21
[root@web01 ~]#curl -v 192.168.28.7* About to connect() to 192.168.28.7 port 80 (#0)*   Trying 192.168.28.7...* Connected to 192.168.28.7 (192.168.28.7) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: 192.168.28.7
> Accept: */*
> 
< HTTP/1.1 200 OK
< Server: nginx/1.26.0
< Date: Tue, 21 May 2024 06:42:32 GMT
< Content-Type: text/html
< Content-Length: 45
< Last-Modified: Tue, 21 May 2024 06:40:26 GMT
< Connection: keep-alive
< ETag: "664c41da-2d"
< Accept-Ranges: bytes
< 
wulin linux jiagou of nginx page---2025/5/21* Connection #0 to host 192.168.28.7 left intact

nginx主配置文件

  • nginx每一行结尾要加上;
  • 如果有{}或()时候不加

  • uesr 叫nginx指令

  • server {#
    区域server
    }

[root@web01 ~]#vim /etc/nginx/nginx.conf 核心配置区域:user  nginx;  指定所属用户(虚拟用户)
worker_processes  auto;(工具人进程数量,处理用户请求的进程,当前数量是自动)error_log  /var/log/nginx/error.log notice;(nginx错误日志记录及位置)
pid        /var/run/nginx.pid; (pid文件)user  nginx; ()
worker_processes  auto;error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;events区域events {worker_connections  1024;((工具人进程可以处理多个连接--每个工具人进程最大的连接数)
}http区域(7层区域网站上的配置各种层都在这里)http {include       /etc/nginx/mime.types;(引用的媒体类型)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;(提高nginx性能)keepalive_timeout  65;#gzip  on;include /etc/nginx/conf.d/*.conf;(文件包含或引用nginx配置文件中获取其他文件引用nginx子配置文件)
}

vim /etc/nginx/mimetypes

egrep -v ‘^$|#’ /etc/nginx/conf.d/default.conf
在这里插入图片描述

[root@web01 /etc/nginx]#cd /etc/nginx/conf.d
[root@web01 /etc/nginx/conf.d]#vim hs.wulin.cn.conf

在这里插入图片描述

[root@web01 /etc/nginx/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
[root@web01 /etc/nginx/conf.d]#systemctl reload nginx

创建放置代码目录

mkdir -p /app/code/hswulin
这里是部署hswulin网站,不推荐直接传输到web服务器(安全隐患)

在这里插入图片描述
解压

[root@web01 ~]#unzip -t  hswulin网易云案例.zip

在这里插入图片描述
解压到当前目录

[root@web01 ~]#unzip   hswulin网易云案例.zip -d /app/code/wulin/
Archive:  hswulin网易云案例.zip

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

配置linux和windows hosts解析

#win:C:\Windows\System32\drivers\etc\hosts

windows下面win+r

#linux: /etc/hosts

保存域名:
在这里插入图片描述
然后在浏览器访问:hs.wulinlinux.cn
在这里插入图片描述

nginx处理用户请求流程

上面搭建的hs.wulinlinux.cn网站,使用域名或者ip访问进行了成功

那么将liulan.hs.wulinlinux.cn.conf使用域名或者ip访问?

结果:

  • 域名访问网站没有任何的问题
  • 使用ip访问则是静态页面,另外的一个网站

使用域名访问网站流程

  1. DNS解析:域名-》ip地址
  2. tcp3次握手与网站的80端口建立连接
  3. http请求报文:请求方法,URL,HOST
  • GET /index.html

  • HOST :hs.wulinlinux.cn

  • User-angent:chrom/xxx

  1. nginx处理:
  • http请求,http区域

  • 不同的server{}区域(子配置文件)处理

  • 端口

  • 域名:用户请求的域名与子配置文件server_name进行匹配

  • 匹配成功,就让对应的子配置文件(server{})处理

  • 根据子匹配文件的,root,location规则,index进行处理查找文件

  1. http响应报文:
  • 状态码:200 ok
  • server信息
  • 其他信息
  • 文件内容
  1. 客户收到文件内容,浏览器进行解析,进行展示

不管你是进行域名访问还是,ip访问我们只需再nginx下的default.conf设置

设置default_server
看看是否默认server处理

  • 如果没有则对应的server{}
  • 如果没有则安装配置文件顺序第一个进行处理
    在这里插入图片描述

虚拟主机(网站)

  • 再nginx中通过server{}区域进行实现

  • nginx中虚拟主机有不同的类型(配置不同)

域名的虚拟主机-不同域名访问的不同网站—生产环境使用

端口虚拟主机-----不同端口访问不同的站点------保护设置特殊端口

基于IP的虚拟主机—不同ip访问不同的站点----保护,用户只能通过某个ip连接进来,用来限制网站只能通过ip进行访问指定ip访问内网的IP

在这里插入图片描述
在这里插入图片描述
nginx日志
在这里插入图片描述
如何给每个虚拟主机指定独立的错误日志/访问日志

错误日志:发生故障 通过错误级别指定 error_log

访问日志 : 记录用户什么时候进行访问,网站那些页面及客户端信息–通过log_format定义访问日志格式

access_log

搭建大型直播购物平台

域名:buy

[root@web01 /etc/nginx/conf.d]#vim buy.wulinlinux.cn.conf
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
[root@web01 /etc/nginx/conf.d]#systemctl reload nginx

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com