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 server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: active (running) since 二 2024-05-21 14:21:50 CST; 13s ago
Docs: 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访问则是静态页面,另外的一个网站
使用域名访问网站流程
- DNS解析:域名-》ip地址
- tcp3次握手与网站的80端口建立连接
- http请求报文:请求方法,URL,HOST
-
GET /index.html
-
HOST :hs.wulinlinux.cn
-
User-angent:chrom/xxx
- nginx处理:
-
http请求,http区域
-
不同的server{}区域(子配置文件)处理
-
端口
-
域名:用户请求的域名与子配置文件server_name进行匹配
-
匹配成功,就让对应的子配置文件(server{})处理
-
根据子匹配文件的,root,location规则,index进行处理查找文件
- http响应报文:
- 状态码:200 ok
- server信息
- 其他信息
- 文件内容
- 客户收到文件内容,浏览器进行解析,进行展示
不管你是进行域名访问还是,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