综合架构网站服务概念原理/部署安装(二)

网络服务部署安装
yum 官方源安装(目录结构会比较标准/是会下载最稳定版)
第一个历程:更新yum下载源
vim /etc/yum.repos.d/nginx.repo
[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 ~]# yum install -y nginx
编译安装nginx
第一个历程:需要解决依赖问题
yum install -y pcre-devel openssl-devel
pcre-devel		可以实现兼容perl语言正则表达式
openssl-devel	可以实现基于HTTPS协议方式进行数据传输
第二个历程:创建服务进程管理用户
useradd -M -s /sbin/nologin nginx
第三个历程:下载编译安装源码包
wget xxxxxx(包的网址)
tar xf nginx-xxxxxx.tar.gz
cd nginx-xxxxx/
第四个历程:进行编译安装

在这里插入图片描述

编译:

make

安装:

make install

第五个历程:启动nginx服务程序

网站服务目录结构信息

[root@web01 ~]# rpm -ql nginx
/etc/logrotate.d/nginx			--保存日志切割文件的
---------------------------------------------
补充:系统默认日志切割程序logrotate服务配置信息
logrotate服务使用方法:
第一个历程:查看logrotate服务配置信息
/etc/logrotate.conf
weekly			---日志切割周期时间(每天 每小时 每周 每月)
rotate 4		---最多保留几份切割后的日志文件
create			---再次创建新的日志文件信息
dateext			---日志切割后的文件以时间信息作为后缀
compress		---是否压缩切割后的日志信息
include /etc/logrotate.d	---单独加载额外服务日志切割配置文件

第二个历程:查看不同服务日志切割配置:
[root@web01 ~]# cd /etc/logrotate.d/
[root@web01 logrotate.d]# cat nginx 
/var/log/nginx/*.log {
        daily
        missingok
        rotate 52
        compress
        delaycompress
        notifempty
        create 640 nginx adm
        sharedscripts
        postrotate
                if [ -f /var/run/nginx.pid ]; then
                        kill -USR1 `cat /var/run/nginx.pid`
                fi
        endscript
}
=============================================================
如果是编译安装,默认是没有切割处理的
需要手动对服务日志做切割处理---定时任务
定时时间:0 0 * * *
任务信息:sh nginx_cut.sh &>/dev/null
#!/bin/bash
mv /var/log/nginx/www_access.log /var/log/nginx/www_access_$(date_%F_%H).log
systemctl restart nginx

问题:为什么切割日志后,需要重启服务程序
原日志文件inode信息在被服务进程占用着,需要重启服务解除原有占用,让服务进程识别新的日志文件(识别新文件的inode)
==============================================================
/etc/nginx						--保存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		---保存nginx服务启动文件信息
/usr/lib/systemd/system/nginx.service
/usr/lib64/nginx								---保存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									---保存nginx服务命令信息
命令参数介绍:
 -V            : show version and configure options then exit
 				显示nginx服务版本/显示默认配置信息
 -t            : test configuration and exit
 				测试配置文件语法信息是否符合要求
 -s signal     : send signal to a master process: stop, quit, reopen, reload
 				控制服务运行状态 nginx -s stop 停止服务程序 nginx -s reload 平滑重启nginx
 				

/usr/sbin/nginx-debug
/usr/share/doc/nginx-1.20.2					---nginx服务相关文档信息
/usr/share/doc/nginx-1.20.2/COPYRIGHT
/usr/share/man/man8/nginx.8.gz
/usr/share/nginx
/usr/share/nginx/html						---nginx服务代码存放的站点目录
/usr/share/nginx/html/50x.html					
/usr/share/nginx/html/index.html
/var/cache/nginx							---缓存数据保存目录信息
/var/log/nginx								---日志文件保存路径

网站服务配置信息介绍

nginx服务主配置文件:

​ /etc/nginx/nginx.conf

[root@web01 logrotate.d]# grep -Ev "^$|#" /etc/nginx/nginx.conf
user  nginx;							---指定Nginx服务worker进程用户
											master进程:控制服务运行状态
											worker进程:用于处理用户请求
worker_processes  auto;					---指定worker进程数量
											worker数量<=服务器总核心数
error_log  /var/log/nginx/error.log notice;		---定义错误日志保存路径/以及错误日志级别
pid        /var/run/nginx.pid;			---定义服务程序进程pid文件(master进程数值)保存路径
events {
    worker_connections  1024;			---定义worker进程并发最大连接
    										并发连接总数=worker_connection*worker_processes<=系统打开文件数据
    										如何优化增加系统打开文件数限制
    										------------------------
    										永久增加打开文件数方法(重启生效)
    										/etc/security/limits.conf 
    										* soft nofile 65535
    										* hard nofile 65535
    										-------------------------
}
http {
    include       /etc/nginx/mime.types;		---包含加载其他的文件信息
    												mime.types 媒体资源类型文件,可以指定nginx服务可以处理静态资源
    												可以访问静态资源,是会显示在页面上
    												不可以访问动态资源,会默认进行下载处理
    
    default_type  application/octet-stream;		---定义默认识别文件类型
    											xxx.html 				解析里面代码内容信息
    											xxx.txt xxx.doc xxx.pdf  直接显示内容信息
    											xxx				采用默认方式处理 现在所默认的是会将信息默认下载
    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;
    keepalive_timeout  65;							---连接的超时时间 可以避免空闲连接占用服务资源
    include /etc/nginx/conf.d/*.conf;				---加载其他网站配置信息
}

服务无法正常启动95%原因 配置文件有错误

PS:避免nginx配置文件出错注意点:

  • 配置文件指令信息请放在正确区域中
  • 配置文件区域花括号信息必须成对出现
  • 配置文件指令信息后面必须有分号(英文)

nginx服务主配置文件: nginx.conf

nginx服务扩展配置文件:cof.d/xxx.conf
在这里插入图片描述

网站服务多虚拟主机访问

第一个历程:创建多个网站配置文件
cd /etc/nginx/conf.d/
cp www.conf bbs.conf
cp www.conf blog.conf
[root@web01 conf.d]cat www.conf
server {
	listen		80;
	server_name www.oldboy.com;
	location / {
		root /html/www;
		index index.hyml index.htm;
	}
}

[root@web01 conf.d]cat bbs.conf
server {
	listen		80;
	server_name bbs.oldboy.com;
	location / {
		root /html/bbs;
		index index.hyml index.htm;
	}
}

[root@web01 conf.d]cat blog.conf
server {
	listen		80;
	server_name blog.oldboy.com;
	location / {
		root /html/blog;
		index index.hyml index.htm;
	}
}
第二个历程:创建站点目录,并上传网站代码信息
mkdir /html/{www.bbs.blog} -p
上传代码信息:代码资源

网站服务客户端访问方式

基于域名方式进行访问:需要进行域名解析配置(本地)

基于端口方式进行访问:需要配置监听地址信息 负载均衡/反向代理

基于地址方式进行访问:需要配置监听地址信息 用于企业内部访问页面信息(了解)

PS:如果监听地址配置改动了,必须重启服务程序,不能平滑重启

网站服务日志文件部署配置

网站服务有两个日志文件:

用户访问网站相关:access.log 访问日志

服务运行状态相关:error.log 错误日志 错误级别

错误级别:
debug	(调试级别--信息显示会更全)
info	(信息级别--提示输出信息)
notice	(通知级别)
warn	(警告级别)			***
error	(错误级别)			***
crit	(严重级别)
alert	(极其严重的错误)
emerg	(灾难级别)

access.log 可以自定义日志格式信息

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

不同网站服务日志配置

[root@web01 conf.d]cat www.conf
server {
	listen		80;
	server_name www.oldboy.com;
	error_log  /var/log/nginx/error_www.log notice;
	access_log  /var/log/nginx/access_www.log  main;
	location / {
		root /html/www;
		index index.hyml index.htm;
	}
}

访问日志信息介绍

$remote_addr			--记录访问服务端客户地址信息
$remote_user			--记录登录网站用户信息
$time_local				--用户访问网站时间信息
$request				--请求行信息
$status					--网站返回给用户状态码
$body_bytes_sent		--访问资源消耗流量信息
$http_referer			--是哪个网站给我引流过来资源(记录盗链信息)
$http_user_agent		--记录用户浏览器客户端信息
$http_x_forwarded_for		

网站服务实现数据共享功能

​ ----yum仓库

第一个历程:需要创建共享目录/存放资源信息
[root@web01 nginx]# mkdir /html/data
[root@web01 nginx]# cd /html/data/
[root@web01 data]# ll
总用量 0
[root@web01 data]# mkdir 运维资料数据
[root@web01 data]# mkdir 开发资料数据
[root@web01 data]# mkdir 资料数据

[root@web01 data]# echo 开发资源 >开发资料数据/data.txt
[root@web01 data]# echo 网络资源 >网络资料数据/data.txt
[root@web01 data]# echo 运维资源 >运维资料数据/data.txt
第二个历程:编写配置共享资源网站文件

PS:页面显示403错误状态码:

  1. 用户被禁止访问了
  2. 用户访问网站没有首页文件存在
[root@web01 conf.d]# cat data.conf
server {
    listen       80;
    server_name  data.nana.com;
    error_log  /var/log/nginx/error_data.log notice;
    access_log  /var/log/nginx/access_data.log  main;
    location / {
        root   /html/data;
        autoindex on;			---在没有首页文件存在时,将站点目录下数据信息全部展现在页面上
        charset utf-8;			---设置字符集

    }

网站服务安全访问控制功能

[root@web01 conf.d]# cat data.conf 
server {
    listen       80;
    server_name  data.nana.com;
    error_log  /var/log/nginx/error_data.log notice;
    access_log  /var/log/nginx/access_data.log  main;
    location / {
        root   /html/data;
	autoindex on;
	charset utf-8;
    }
    location /隐私文件/ {
	allow 10.0.0.1;
	allow  10.0.0.2;
	deny all;
}

实现网站页面访问认证功能

第一个历程:生成服务端密码文件

#下载工具
[root@web01 conf.d]# yum install -y httpd-tools
#创建新的密码文件:
[root@web01 conf.d]# htpasswd -bc /etc/nginx/password.txt oldboy 123456
Adding password for user oldboy
#密码文件添加用户信息
[root@web01 conf.d]# htpasswd -b /etc/nginx/password.txt oldgirl 123456
#删除用户信息
[root@web01 conf.d]# htpasswd -D /etc/nginx/password.txt oldgirl

第二个历程:编写配置文件信息实现

[root@web01 conf.d]# cat data.conf 
server {
    listen       80;
    server_name  data.nana.com;
    error_log  /var/log/nginx/error_data.log notice;
    access_log  /var/log/nginx/access_data.log  main;
    location / {
        root   /html/data;
	autoindex on;
	charset utf-8;
    }
    location /隐私文件/ {
	root   /html/data;
        autoindex on;
        charset utf-8;
	auth_basic	"查看隐私文件";
	auth_basic_user_file /etc/nginx/password.txt;
}

网络服务访问状态检测信息

第一个历程:开启nginx服务状态信息检测功能

[root@web01 conf.d]# cat default.conf 
server {
    listen       80;
    server_name  www.nana.com;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /html/www;
        index  index.html index.htm;
    }
    location = /nginx_status {
	stub_status;
}

打开网址
http://www.nana.com/nginx_status
出现以下信息
Active connections: 1 				
server accepts handled requests		
          21      21       54 
Reading: 0 Writing: 1 Waiting: 0 

Active connections		---网站服务并发访问量
accepts					---服务运行开始,总的接收连接请求数量
handled					---服务运行开始,总得处理连接请求数量
requests				---客户端总的请求数据包数量
Reading					---服务端读取HTTP报文数量  服务器负载压力过大时
Writing					---服务端响应HTTP报文数量
Waiting					---等待处理HTTP请求数量

epoll模型: 异步队列处理机制
服务器负载压力过大 nginx服务处理性能降低 5000 队列

思考:以上数据信息如何单独调取出来

[root@web01 conf.d]# vi /etc/hosts
[root@web01 conf.d]# curl www.nana.com/nginx_status
Active connections: 1 
server accepts handled requests
 22 22 55 
Reading: 0 Writing: 1 Waiting: 0 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值