nginx.conf配置文件

1、全局模块

worker_processes 1;

工作进程数,一般设置成服务器内核数的2倍(一般不超过8个,超过8个反而会降低性能,一般是4个,1-2个也可以)

处理进程的过程必然涉及配置文件和展示页面,也就是涉及打开文件的数量

linux默认打开的文件数是1024个

修改最大文件数 /etc/security/limits.conf

 alias和root之间匹配工作目录的区别:

root的匹配模式是拼接

root的工作目录/opt/test1,访问的uri /xy102

location /xy102

工作目录/opt/test1

访问的是/opt/test1/xy102

alias匹配nginx的工作目录,路径是绝对路径

location /xy102

alias /opt/test1/xy102/;

alias只能写在http模块当中server模块的location模块当中

root可以写在server模块,也可以在http,也可以在location

使用alias匹配工作目录不能够使用重定向功能

2、events模块

events {

​       workers_connections 1024;

}

决定了nginx能够处理的连接数,连接数和worker_processes的数值相乘

3、stream四层代理模块

4、http模块

转发和处理http请求,设置代理(正向代理,反向代理),缓存,定义日志格式,重定向配置 

在http模块当中,包含:

server模块,http里面可以有多个server模块

在server模块当中包含:location模块

在server当中可以有多个location

5、实验

5.1统计访问状态

修改配置文件

 各行的含义:

Active connections 当前活动的连接数

server accepts handled requests 表示已经处理的连接数

2 2 21

从左往右表示已经处理的连接数,成功建立连接的次数,已经处理的请求数

Reading:0 writing:1 waiting:1

reading:表示服务端正在从客户端读取请求的数据

writing:表示服务端正在把响应数据发送给客户端

waiting:表示有连接处于空闲状态,等待新的请求

5.2基于密码的授权进行访问控制

先安装httpd-tools,htpasswd的工具

 生成一个passwd.db的文件,用户abc可以对这个文件进行处理,设置密码为123

 将passwd.db的所有者改为nginx,并修改权限为400

 修改配置文件

 加密用户才可以访问

5.3基于客户端的访问控制

根据ip地址进行控制

拒绝192.168.233.62访问,允许其他所有访问

5.4基于域名的nginx的主机

修改配置文件

 vim /etc/hosts做一个本地映射

 访问成功

多个server,修改配置文件

 

 本地映射

访问成功

5.5基于ip地址的虚拟主机

创建虚拟网卡

 更改监听地址

 访问成功

5.6基于端口实现多个虚拟主机

更改端口号(范围1-65535)

访问8080端口

 访问8888端口

5.7多个配置文件

进入配置文件,添加一个include

 创建conf.d目录

mkdir conf.d

 创建新的文件test1.conf,添加server作为独立的配置文件

 创建目录test1、test2

[root@localhost opt]# mkdir -p conf/test1
[root@localhost opt]# mkdir -p conf/test2

 分别在test1、test2输入内容

[root@localhost conf]# echo "this is test1" > test1/index.html
[root@localhost conf]# echo "this is test2" > test2/index.html

 访问成功

6、nginx的优化与防盗链

6.1隐藏版本号

vim nginx.conf

无版本号

6.2修改用户与组  

6.3设置页面的缓存时间,主要是针对动态页面

设置图片的缓存

6.4日志分割

apache是自带日志分割的,按天来进行收集日志

apache的日志access.log error.log

nginx没有自动分割的功能,借助脚本来实现分割

6.5更改进程数以及设置cpu绑定

6.6连接超时

 

6.7配置页面压缩

gzip on
gzip_min_length 1k;
#最小的压缩文件,小于等于1k的文件就不压缩了
gzip_buffers 4 64k;
#设置压缩的缓冲区,4个,每个缓冲区的大小为64k
gzip_comp_level 6;
#压缩比例为1-9,数字越小,压缩的比例越小,速度越快;数字越大,压缩的比例就越高,速度越慢

gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss image/jpg image/jpeg image/png image/gif application/x-httpd-php application/javascript application/json;
#支持压缩的类型

6.8回收TIME_WAIT

time_wait是tcp连接当做的一种状态,出现在四次挥手之后,处于等待状态,双方不再发送数据

time_wait所占用的系统资源很小,数量比较少,完全可以忽略不计,但是太多了就有一定的影响。

连接断开(四次挥手)之后,尽快的把time_wait状态的连接进行回收

netstat -n | awk '/^tcp/ {++s[$NF]} END {for (a in s) print a s[a]}
#统计当前系统的连接状态

 修改内核文件

 sysctl -p   

#立即生效

6.9防盗链

 vim index.html

echo "192.168.230.10 www.xy102.com" >> /etc/hosts

echo "192.168.230.20 www.xy103.com" >> /etc/hosts

7、lnmp+DIS架构

是论坛的一个服务

l:linux 操作系统

n:nginx 前端页面的web服务

php:动态请求转发的中间件

m:mysql 数据库,保存用户和密码以及论坛的相关内容

7.1安装数据库

将mysql的包拖进去,并且解压

 将包改名为mysql,移动到/usr/local

 创建mysql的程序用户

[root@localhost opt]# useradd -M -s /sbin/nologin mysql

修改所有者和所在组

[root@localhost opt]# chown -R mysql.mysql /usr/local/mysql

修改mysql主配置文件的所有者和所在组

[root@localhost opt]# chown mysql.mysql /etc/my.cnf

 修改主配置文件

vim /etc/my.cnf

 port = 3306
[client]
port = 3306
#客户端访问的端口
socket=/usr/local/mysql/mysql.sock
#指定mysql的通信套接字文件

[mysqld]
#mysql的安装目录
datadir=/usr/local/mysql/data
#mysql数据保存的目录
port = 3306
character-set-server=utf8
#字符集的编码
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
#任意地址都可以访问数据库
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
#mysql默认的存储引擎
max_allowed_packet=16M
server-id = 1
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
#mysql支持的数据类型和相关的模块

 将文件放到/etc/profile里,让系统可以识别

echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile

 source /etc/profile

 初始化数据库

./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

 将文件复制到mysqld

 给一个执行权限

chmod +x /etc/init.d/mysqld

 读取配置文件,重启mysqld

systemctl daemon-reload

systemctl restart mysqld

 查看是否有3306这个端口

 初始化数据库的密码

数据库安装完毕

 

 在数据库中创建用户

mysql> create user 'root'@"%" identified by '123456';

Query OK, 0 rows affected (0.01 sec)

 赋权

mysql> grant all privileges on *.* to 'root'@'%';

Query OK, 0 rows affected (0.00 sec)

 刷新权限

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

 navicat远程登录,修改加密方式,刷新

mysql> alter user 'root'@'%' identified with mysql_native_password by "123456";
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

安装php的依赖环境

 yum -y install gd \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel \
oniguruma-devel \
sqlite-devel

将php的安装包拖进来并解压

编译安装,开始配置

 ./configure \
--prefix=/usr/local/php \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-pdo-mysql \
--with-openssl \
--with-sqlite-devel \
--with-oniguruma-devel \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip

 配置成功

安装

 make -j 4 && make install

 安装完成

 优化两个线路,让系统识别到

[root@nginx1 php-8.1.27]# ln -s /usr/local/php/bin/* /usr/local/bin/

[root@nginx1 php-8.1.27]# ln -s /usr/local/php/sbin/* /usr/local/sbin/

 将主配置文件php.ini-development复制到/usr/local/php/lib,改名为php.ini

cp php.ini-development /usr/local/php/lib/php.ini

 打开/usr/local/php/lib/php.ini,修改976和1181行的内容

修改进程服务的配置文件

复制php-fpm.conf.default

 打开php-fpm.conf,取消17行的注释

调整扩展配置文件

复制www.conf.default

启动php

/usr/local/php/sbin/php-fpm -c

/usr/local/php/lib/php.ini

 查看端口号

 添加系统配置

 配置nginx的动态转发

 

 <?php
phpinfo();
?>

 浏览器访问成功

 进入数据库,创建专门用来保存论坛信息的用户和库

mysql -u root -p123456

 创建库,名为bbs

create database bbs;

 

 创建用户bbsuser,任意地址都可以连接,密码为admin123

create user 'bbsuser'@'%' identified by 'admin123'

赋权,刷新

 mysql> grant all privileges on bbs.* to 'bbsuser'@'%';
Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

 创建本地连接用户

create user 'bbsuser'@'localhost' identified by 'admin123';

 赋权,刷新

mysql> grant all privileges on bbs.* to 'bbsuser'@'localhost';
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

指定用户登录

 连接数据库成功

7.2安装discuz论坛

将discuz安装包拖进去,解压

unzip Discuz_X3.5_SC_UTF8.zip -d /opt/dis

 复制upload

 修改所有者所在组和权限

[root@localhost html]# chown -R nginx.nginx bbs/

[root@localhost html]# chmod -R 777 bbs/

 开始访问

安装成功

 论坛搭建成功

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/775114.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI Agent技术的最新进展与改变世界的典型项目巡礼

AI Agent 探索 1. AI Agent 技术发展以及典型项目 1.0 前 AI Agent 时代 在学术探索的浩瀚星空中&#xff0c;机器人技术领域的璀璨明珠莫过于Agent技术的深入研究&#xff0c;这一领域历来是创新与突破的温床。回溯至大模型浪潮兴起之前&#xff0c;Agent技术的辉煌篇章便已…

G9 - ACGAN理论与实战

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 目录 环境步骤环境设置数据准备工具方法模型设计模型训练模型效果展示 总结与心得体会 上周已经简单的了解了ACGAN的原理&#xff0c;并且不经实践的编写了部分…

Spring Boot集成jacoco实现单元测试覆盖统计

1.什么是jacoco&#xff1f; JaCoCo&#xff0c;即 Java Code Coverage&#xff0c;是一款开源的 Java 代码覆盖率统计工具。支持 Ant 、Maven、Gradle 等构建工具&#xff0c;支持 Jenkins、Sonar 等持续集成工具&#xff0c;支持 Java Agent 技术远程监控 Java 程序运行情况…

便携式气象站:预测天气的得力助手

在户外探险、农业种植、环境监测等领域&#xff0c;气象信息的准确性对于决策至关重要。 一、便携式气象站的工作原理 便携式气象站是一种集成了多种气象传感器的设备&#xff0c;能够实时监测和记录环境中的温度、湿度、气压、风速、风向、降雨量等气象参数。 二、便携式气象站…

模板初阶和string容器

目录 1.模板 函数模板 函数模板的调用规则&#xff1a; 类模板 容器与迭代器 string的简单介绍 iterator&#xff08;迭代器&#xff09; begin()与end() rbegin&#xff08;&#xff09;和rend&#xff08;&#xff09; Capacity&#xff08;容量&#xff09; shrink…

Alibaba Cloud Toolkit前端使用proxy代理配置

1、vscode 先安装插件 Alibaba Cloud Toolkit 2、前端代码: /personnel: {// target: http://xxx.xx.xxx.xx:9100, // 测试环境// target: http://xxx.xx.xxx.xx:9200, // 线上环境target: http://127.0.0.1:18002, // toolkit 代理changeOrigin: true

如何取消闪迪Micro SD卡的写保护?这个技巧很有效!

由于受写保护影响&#xff0c;无法格式化闪迪Micro SD卡&#xff1f;别担心&#xff01;通过本文你可以学习如何解除闪迪Micro SD卡的写保护。 我的闪迪SD卡有写保护怎么办&#xff1f; “我打算格式化我的闪迪SD卡。但当我进行格式化时&#xff0c;提示我磁盘被写保护。我想用…

机器人具身智能Embodied AI

强调智能体&#xff08;如机器人&#xff09;通过物理身体在物理世界中的实时感知、交互和学习来执行任务。 通过物理交互来完成任务的智能系统。它由“本体”&#xff08;即物理身体&#xff09;和“智能体”&#xff08;即智能核心&#xff09;耦合而成&#xff0c;能够在复…

MaxKB开源知识库问答系统发布v1.3.0版本,新增强大的工作流引擎

2024年4月12日&#xff0c;1Panel开源项目组正式发布官方开源子项目——MaxKB开源知识库问答系统&#xff08;github.com/1Panel-dev/MaxKB&#xff09;。MaxKB开源项目发布后迅速获得了社区用户的认可&#xff0c;成功登顶GitHub Trending趋势榜主榜。 截至2024年7月4日&…

Git 安装

目录 Git 安装 Git 安装 在使用 Git 前我们需要先安装 Git。Git 目前支持 Linux/Unix、Solaris、Mac 和 Windows 平台上运行。Git 各平台安装包下载地址为&#xff1a;http://git-scm.com/downloads 在 Linux 平台上安装&#xff08;包管理工具安装&#xff09; 首先&#xff0…

基于Spring Boot框架的EAM系统设计与实现

摘 要&#xff1a;文章设计并实现一个基于Spring Boot框架的EAM系统&#xff0c;以应对传统人工管理模式存在的低效与信息管理难题。系统利用Java语言、JSP技术、MySQL数据库等技术栈&#xff0c;构建了一个B/S架构的高效管理平台&#xff0c;提升了资产管理的信息化水平。该系…

固态继电器的未来浅析

固态继电器(SSR)已成为传统机电继电器的可靠替代品&#xff0c;具有开关速度更快、使用寿命更长、电磁干扰更少等诸多优势。随着技术的不断进步&#xff0c;SSR的未来有望在设计和应用的各个方面实现更显著的改进和创新。 1.小型化和集成化&#xff1a; 固态继电器开发的主要趋…

当火热的Mamba遇到火热的YOLO,会发生怎么样的反应吗?

作者&#xff1a;浙江师范大学 论文地址&#xff1a;https://arxiv.org/pdf/2406.05835 代码地址&#xff1a;https://github.com/HZAI-ZJNU/Mamba-YOLO 目录 前言一、摘要二、介绍二、相关工作2.1 实时目标检测器2.2 端到端的目标检测器2.3 视觉状态空间模型 三 方法3.1 基础知…

服务器数据恢复—DS5300存储raid5阵列数据恢复案例

服务器存储数据恢复环境&#xff1a; 某单位一台某品牌DS5300存储&#xff0c;1个机头4个扩展柜&#xff0c;50块硬盘组建2组RAID5磁盘阵列&#xff08;一组raid5阵列有27块成员盘&#xff0c;存放Oracle数据库文件&#xff1b;另外一组raid5阵列有23块成员盘&#xff09;。存储…

OpenCV 车牌检测

OpenCV 车牌检测 级联分类器算法流程车牌检测相关链接 级联分类器 假设我们需要识别汽车图像中车牌的位置&#xff0c;利用深度学习目标检测技术可以采取基于锚框的模型&#xff0c;但这需要在大量图像上训练模型。 但是&#xff0c;级联分类器可以作为预训练文件直接使用&…

python通过COM Interface控制CANoe

python通过COM Interface控制CANoe 介绍打开示例工程python代码示例介绍 通过python可以控制CANoe的启动和停止等其他操作,在做高阶的自动化项目时可以用到。 打开示例工程 python代码示例 # --------------------------------------------------------------------------…

C++ 类和对象 构造函数

一 类的6个默认成员函数&#xff1a; 如果一个类中什么成员都没有&#xff0c;简称为空类。 例&#xff1a; #include <iostream> class Empty {// 空类&#xff0c;什么成员都没有 }; 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何类在什么都不写时&a…

ONNX Runtime入门示例:在C#中使用ResNet50v2进行图像识别

ONNX Runtime简介 ONNX Runtime 是一个跨平台的推理和训练机器学习加速器。ONNX 运行时推理可以实现更快的客户体验和更低的成本&#xff0c;支持来自深度学习框架&#xff08;如 PyTorch 和 TensorFlow/Keras&#xff09;以及经典机器学习库&#xff08;如 scikit-learn、Lig…

文件打开的系统错误分析流程

当用户出现“Open file failed”错误时&#xff0c;手动产生dump文件。 &#xff08;1&#xff09;打开资源管理器&#xff0c;选择AppNameXXX.exe进程&#xff0c;右击鼠标选择“创建转储文件” (2) 生成转储文件 3.获取用户转储文件 4.用Visual studio2015打开dump文件分析…

深入讲解C++基础知识(二)

目录 一、复合类型1.引用1.1 引用的定义和使用1.2 引用的注意事项 2. 指针2.1 指针的定义和使用2.2 指针的四种状态2.3 指针的注意事项2.4 其他指针操作2.5 void* 指针 3. 理解复合类型变量的声明4. const 限定符4.1 const 对象的注意事项4.2 const 和引用4.2.1 术语&#xff1…