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/

 开始访问

安装成功

 论坛搭建成功

 

相关推荐

  1. RT-1配置文件

    2024-07-10 02:30:01       40 阅读
  2. Nginx conf文件配置

    2024-07-10 02:30:01       42 阅读
  3. nginx配置文件

    2024-07-10 02:30:01       53 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 02:30:01       51 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 02:30:01       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 02:30:01       44 阅读
  4. Python语言-面向对象

    2024-07-10 02:30:01       55 阅读

热门阅读

  1. 每周算法(week2)【leetcode11~30】

    2024-07-10 02:30:01       21 阅读
  2. 常见的设计模式

    2024-07-10 02:30:01       20 阅读
  3. C++基础

    2024-07-10 02:30:01       21 阅读
  4. 量化机器人能否实现无缝交易?

    2024-07-10 02:30:01       21 阅读
  5. Jvm 垃圾回收算法

    2024-07-10 02:30:01       22 阅读
  6. 二进制部署k8s

    2024-07-10 02:30:01       14 阅读
  7. 特征的精粹:SKlearn中自动特征选择技术

    2024-07-10 02:30:01       22 阅读
  8. ADOQuery 查询MSSQL存储过程一个莫名其妙的错误;

    2024-07-10 02:30:01       20 阅读