[Linux] nginx配置的主配置文件

一、六个模块的作用

        全局块:全局配置,对全局生效;

        events块:配置影响 Nginx 服务器与用户的网络连接;

        http块:配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置;

        server块:配置虚拟主机的相关参数,一个 http 块中可以有多个 server 块;

        location块:用于配置匹配的 uri ;

        upstream:配置后端服务器具体地址,负载均衡配置不可或缺的部分。

二、认识Nginx服务的主配置文件

2.1 全局配置模块

是配置文件从头开始到 events 块之间的内容,主要设置的是影响nginx服务器整体运行的配置指令。比如 worker_process值越大,可以支持的并发处理量也越多,但是还是和服务器的硬件相关。

vim /usr/local/nginx/conf/nginx.conf  #主配置文件位置

#user nobody; 				    #运行用户,若编译时未指定则默认为 nobody
worker_processes 1; 			#工作进程数量,一般设置为和 CPU 核数一样;设置为auto,nginx将会自己获取这个数值
#error_log logs/error.log; 		#错误日志文件的位置
#pid logs/nginx.pid; 			#PID 文件的位置
worker_rlimit_nofile 60000;		#设置所有worker进程最大可以打开的文件数,默认为1024

 2.2 I/O 事件配置

events {use epoll; 			        #使用 epoll I/O模型,2.6及以上版本的系统内核,建议使用epoll模型以提高性能worker_connections 60000; 	#每个进程处理 60000 个连接默认是1024个multi_accept on;            #是否一次性将监听到的连接全接收进来,默认为off,关闭时一次接收一条连接accept_mutex on;            #默认为on,开启时表示以串行方式接入新连接,否则将通报给所有worker。这可能会浪费资源并产生不可预计的后果,例如惊群问题
}

如果提高每个进程的连接数还需执行“ulimit -n 65535”命令临时修改本地每个进程可以同时打开的最大文件数。

永久修改的方式:

[root@CXK /opt/nginx-1.24.0/conf]#vim /etc/security/limits.conf 

#在Linux平台上,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。#可使用ulimit -a命令查看系统允许当前用户进程打开的文件数限制。#epoll是Linux内核为处理大批句柄而作改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著的减少程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。(实现异步非阻塞)

 2.3 HTTP配置

http {include       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  logs/access.log  main;    ##访问日志位置sendfile        on;   ##开启文件传输模式#tcp_nopush     on;   ##只在sendfile on时有效。调用tcp_cork方法,让数据包不会马上传送出去,等到数据包最大时,一次性的传输出去,这样有助于解决网络堵塞。默认为off。#keepalive_timeout  0;  ##连接保持超时时间,单位是秒keepalive_timeout  65;  ##连接保持超时时间,单位是秒#gzip  on;   ##gzip模块设置,设置是否开启gzip压缩输出

 2.4 web服务监听设置

server {listen 80;   ##监听地址及端口server_name www.kgc.com;   ##站点域名,可以有多个,用空格隔开charset utf-8;   ##网页的默认字符集location / {     ##根目录配置root html;     ##网站根目录的位置/usr/local/nginx/htmlindex index.html index.php;   ##默认首页文件名}error_page 500 502 503 504 /50x.html;     ##内部错误的反馈页面location = /50x.html {      ##错误页面配置root html;}}
}

 2.5 其他设置 

日志格式设定:
$remote_addr与$http_x_forwarded_for用以记录客户端的ip地址;
$remote_user:用来记录客户端用户名称;
$time_local: 用来记录访问时间与时区;
$request: 用来记录请求的url与http协议;
$status: 用来记录请求状态;成功是200,
$body_bytes_sent :记录发送给客户端文件主体内容大小;
$http_referer:用来记录从哪个页面链接访问过来的;
$http_user_agent:记录客户浏览器的相关信息;
通常web服务器放在反向代理的后面,这样就不能获取到客户的IP地址了,通过$remote_add拿到的IP地址是反向代理服务器的iP地址。反向代理服务器在转发请求的http头信息中,可以增加x_forwarded_for信息,用以记录原有客户端的IP地址和原来客户端的请求的服务器地址。

location常见配置指令,root、alias、proxy_pass
root(根路径配置):root /var/www/html

处理方式: root路径+location路径
请求www.kgc.com/test/1.html,会返回文件/var/www/html/test/1.html

alias(别名配置):alias /var/www/html

处理方式:alias路径替换location路径
请求www.yang.com/test/1.html,会返回文件/var/www/html/1.html

root和alias对比

当设置  location /test{     }

alias /var/www/html  和   root /var/www/html  有什么区别?

alias是别名设置,将设置的网页放在/var/www/html下,访问

root 是根目录设置 ,将设置的网页放在 /var/www/html/test 下,访问

 三、nginx访问状态统计

1. 查看访问统计配置的相关模块 
cat /opt/nginx-1.24.0/auto/options | grep YES   #可查看 nginx 已安装的所有模块

[root@CXK ~]#/usr/local/nginx/sbin/nginx -V 或者nginx -V  查看已安装的 Nginx 是否包含 HTTP_STUB_STATUS 模块

2. 修改主配置文件,添加访问状态统计模块  
#主配置备份,防止设置错误,无法还原
cd /usr/local/nginx/conf
cp nginx.conf nginx.conf.bak

 修改主配配置具体操作:


vim /usr/local/nginx/conf/nginx.confserver {listen       80;server_name  www.cxk.com;   #主机名设置charset utf-8;              #万国字符集#access_log  logs/host.access.log  main;location / {root   html;            #Nginx默认网页设置index  index.html index.htm;}#访问位置为/statuslocation /status {stub_status on;  #打开状态统计功能access_log off;  #关闭此位置的日志记录}

3.重启nginx服务,访问测试:
nginx -t #检查nginx配置文件是否有错误
kill -1 11799

四、nginx授权访问控制

 1. 生成用户密码认证文件 
yum install -y httpd-tools
htpasswd -c /usr/local/nginx/passwd.db lisi
chown nginx /usr/local/nginx/passwd.db
chmod 400 /usr/local/nginx/passwd.db

2. 修改主配置 
vim /usr/local/nginx/conf/nginx.confserver {location / {......##添加认证配置##auth_basic "secret";				#设置密码提示框文字信息auth_basic_user_file /usr/local/nginx/passwd.db;  #密码认证模块的加载配置}}

3. 重启服务,进行访问测试 
nginx -t #检查nginx配置文件是否有错误
kill -1 11799

 五、nginx客户端访问控制

 设置方式类似于黑白名单

 1. 设置前的访问,其他主机访问测试:

访问控制规则如下:
deny IP/IP 段:拒绝某个 IP 或 IP 段的客户端访问。
allow IP/IP 段:允许某个 IP 或 IP 段的客户端访问。
规则从上往下执行,如匹配则停止,不再往下匹配。

2. 修改主配置
vim /usr/local/nginx/conf/nginx.conf
......server {location / {......##添加控制规则##allow 192.168.136.100;   #允许当前主机allow 127.0.0.1;         #允许自己allow 192.168.136.1;     #允许真机allow 192.168.136.120;   #允许访问的客户端 IPdeny all;                #拒绝其它IP客户端访问}}

 3. 重启服务,进行访问测试 
nginx -t #检查nginx配置文件是否有错误
kill -1 11799

 

 六、nginx虚拟主机

6.1 基于域名的虚拟主机

1.为虚拟主机提供域名解析

echo "192.168.136.100 www.cxk.com www.kun.com" >> /etc/hosts  添加到本机域名解析
2.为虚拟主机准备网页文档 

mkdir -p /var/www/html/cxk  #分别创建两个不同域名的网页目录
mkdir -p /var/www/html/kun  #分别创建两个不同域名的网页目录
echo "<h1>cxk hhh</h1>" > /var/www/html/cxk/index.html #为两个不同的域名默认首页网页添加内容
echo "<h1>kun hhh</h1>" > /var/www/html/kun/index.html #为两个不同的域名默认首页网页添加内容
3.修改Nginx的配置文件 

vim /usr/local/nginx/conf/nginx.conf
server {listen       80;server_name  www.cxk.com;charset utf-8;access_log  logs/www.cxk.access.log;  #不同虚拟主机的域名访问日志location / {root   /var/www/html/cxk;         #默认网页index  index.html index.htm;  }#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}
}server {listen       80;server_name  www.kun.com;charset utf-8;access_log  logs/www.kun.access.log;location / {root   /var/www/html/kun;index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}
4.重启服务,测试
systemctl restart nginx

6.2 基于IP 的 Nginx 虚拟主机 

 1. 设置虚拟主机IP 
[root@localhost conf]#ifconfig ens33:0 192.168.136.200/24
[root@localhost conf]#ifconfig ens33:0 

2. 修改主配置文件

vim nginx.confserver {listen  192.168.136.100:80;server_name  localhost;charset utf-8;access_log  logs/www.cxk.access.log;location / {root   /var/www/html/cxk;index  index.html index.htm;}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}
}
server {listen  192.168.136.200:80;server_name  localhost;charset utf-8;access_log  logs/www.kun.access.log;location / {root   /var/www/html/kun;index  index.html index.htm;}
error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}
3. 重启服务,测试 

 6.3 基于端口的 Nginx 虚拟主机 

1. 修改主配置文件
vim nginx.conf
server {listen  192.168.136.100:8080;server_name  localhost;charset utf-8;access_log  logs/www.cxk.access.log;location / {root   /var/www/html/cxk;index  index.html index.htm;}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}
}
server {listen  192.168.136.200:8848;server_name  localhost;charset utf-8;access_log  logs/www.kun.access.log;location / {root   /var/www/html/kun;index  index.html index.htm;}
error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}
2. 重启测试 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt 输入一组数,排序后用柱状图显示

Qt柱状图&#xff0c;需要使用到QChart模块&#xff0c;因此需要在安装Qt时勾选上QChart模块。然后在工程.pro文件中加上 QT charts 参考代码&#xff1a; //MainWindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QPushButton…

模块一:双指针——1089.复写零

文章目录 题目解析算法原理异地原地 代码实现 题目解析 题目链接&#xff1a;1089.复写零 这题的暴力解法还是很简单的&#xff0c;不过这道题因为加了两个限制之后&#xff0c;多了一些细节需要去处理。我们通过一个例子来讲解这道题目&#xff1a; 在这个示例中&#xff0…

六个自媒体写作方法,提升自媒体创作收益

在自媒体时代&#xff0c;写作成为了一个不可或缺的技能。特别是对于新手来说&#xff0c;掌握一些有效的写作方法&#xff0c;可以事半功倍&#xff0c;更好地展现个人创意和观点。在这里&#xff0c;我将分享六个适合新手的自媒体写作方法&#xff0c;希望能够为你在写作之路…

贪心算法背包问题c

在背包问题中&#xff0c;贪心算法通常用来解决0-1背包问题&#xff0c;也就是每种物品都有固定数量&#xff0c;你可以选择拿或者不拿&#xff0c;但不可以拿走部分。以下是一个用C语言实现的贪心算法的例子&#xff1a; #include <stdio.h>#define MAX_N 1000#define …

大数据项目——基于Django/协同过滤算法的房源可视化分析推荐系统的设计与实现

大数据项目——基于Django/协同过滤算法的房源可视化分析推荐系统的设计与实现 技术栈&#xff1a;大数据爬虫/机器学习学习算法/数据分析与挖掘/大数据可视化/Django框架/Mysql数据库 本项目基于 Django框架开发的房屋可视化分析推荐系统。这个系统结合了大数据爬虫、机器学…

递增三元组

遍历三层循环,数据量十分地大,可以找第一行小于第二行的 再找第三行大于第二行的,所有方案的和 通过分析测试样例,111,222,333这三个数存在重复计算。可以想办法存一下每个数的出现次数 如果是111666999.不管1和9怎么变,只要第一行小于6,第二行小于9,答案不变 所以可以想办法存…

如何使用 Oracle SQL Developer 连接 pgvector

如何使用 Oracle SQL Developer 连接 pgvector 1. 下载 postgresql 的 jdbc 驱动2. Oracle SQL Developer 配置第三方驱动3. Oracle SQL Developer 配置 postgres 连接 1. 下载 postgresql 的 jdbc 驱动 访问 https://jdbc.postgresql.org/download/&#xff0c;下载驱动&…

力扣刷题day3(移除元素,找出字符串中的第一个不匹配项的下标,搜索插入位置)

题目1&#xff1a;27.移除元素 思路1和代码&#xff1a; //由于题目要求删除数组中等于 val\textit{ val }val 的元素&#xff0c;因此输出数组的长度一定小于等于输入数组的长度&#xff0c;我们可以把输出的数组直接写在输入数组上。可以使用双指针&#xff1a;右指针 righ…

使用Tomcat部署静态项目并处理BUG

--听讲的习惯 Tomcat介绍 tomcat what_Arenaschi的博客-CSDN博客 Tomcat安装及配置教程&#xff08;超详细&#xff09; 那些年我们用过的tomcat_Arenaschi的博客-CSDN博客 简单使用tomcat查看版本信息等_windows查看tomcat版本命令-CSDN博客 Tomcat部署html静态网站的五种方…

银河麒麟安装lnmp,安装chrome。

安装lnmp 下载相关文件 链接&#xff1a;https://pan.baidu.com/s/1YqFLfGpE5DP3Sf_2GsXqNg?pwdptsn –来自百度网盘超级会员V7的分享 上传到服务器 我所选择上传的地方是 /home/npf/nginx-server&#xff0c; php放在跟nginx-server的同级目录 cd / mkdir home /home/npf…

水库大坝安全监测参数与设备

智慧水利中&#xff0c;水库大坝的安全监测必不可少。做好水库大坝的安全监测&#xff0c;是确保水库大坝结构安全和预防灾害的重要手段。对于预防灾害、保护人民生命财产安全、优化工程管理、改进工程设计、保护环境资源和提高公众信任等方面有着重要的意义。 水利水库大坝安全…

CSS、JS文件无法正确加载至页面问题与解决

目录 1. 问题出现 2. 分析与解决 3. 总结 1. 问题出现 自己在写项目是时候&#xff0c;想启动浏览器查询首页面index.jsp的显示效果 预期效果应该是下面这样的&#xff1a; 但是实际上是这样的&#xff1a; 意思也就是说可能是关于CSS、JS相关的引入方面出了问题&#xff…

创建vue项目:vue脚手架安装、vue-cli安装,vue ui界面创建vue工程(vue2/vue3),安装vue、搭建vue项目开发环境(保姆级教程二)

今天讲解 Windows 如何利用脚手架创建 vue 工程&#xff0c;以及 vue ui 图形化界面搭建 vue 开发环境&#xff0c;这是这个系列的第二章&#xff0c;有什么问题请留言&#xff0c;请点赞收藏&#xff01;&#xff01;&#xff01; 文章目录 1、安装vue-cli脚手架2、vue ui创建…

python 涉及opencv mediapipe知识,眨眼计数 供初学者参考

基本思路 我们知道正面侦测到人脸时&#xff0c;任意一只眼睛水平方向上的两个特征点构成水平距离&#xff0c;上下两个特征点构成垂直距离 当头像靠近或者远离摄像头时&#xff0c;垂直距离与水平距离的比值基本恒定 根据这一思路 当闭眼时 垂直距离变小 比值固定小于某一个…

火狐,要完了!

在过去几年中&#xff0c;关于Firefox 浏览器的衰落有过不少讨论。目前来说&#xff0c;很多公共的以及私营的大型网站都缺乏对Firefox的适当支持。但是Firefox也多次试图“自救”&#xff0c;甚至就在不久前&#xff0c;Mozilla 通过官博发文&#xff0c;表示 Firefox 在 2023…

如何使用Matlab完成窗口与子窗口

目录 一、前言 二、主窗口与主窗口按钮 三、子窗口 四、调用函数并显示在子窗口中的文本框中 五、关闭子窗口 一、前言 有时候需要借用Matlab完成一个图窗功能&#xff0c;但是我们的程序不仅拥有功能&#xff0c;还拥有一些子功能&#xff0c;那么我们该如何借助Matlab完…

[linux] 用命令行wget下载google drive的大文件

使用wget命令下载Google drive上的文件_ubuntu上wget下载谷歌云盘文件-CSDN博客 如何用命令行下载Google Drive上的共享文件&#xff1f;-腾讯云开发者社区-腾讯云 举例&#xff1a;https://drive.google.com/drive/folders/1vKj3VvJEKgS_o-uOSmz3I0-GomECpql3 1、在网页上&…

360压缩安装一半不动了怎么办?

360压缩软件是我们常用的压缩软件&#xff0c;但是常常会遇到压缩安装到一半停止的情况&#xff0c;下面提供了一些可能的原因和解决办法&#xff0c;大家可以进行尝试~ 方法一&#xff1a;关闭防火墙和杀毒软件 有时候&#xff0c;防火墙和杀毒软件可能会阻止360压缩的安装过…

CSM2433 一款集成2.4G+125K 和8位RISC 的SOC芯片

CSM2433是一款集成2.4GHz频段发射器、125KHz接收器和8位RISC&#xff08;精简指令集&#xff09;MCU的SOC芯片。 无线收发器特性&#xff1a; 发射工作在 2.4GHz ISM 频段 发射兼容 BLE 4.2 接收工作在 15KHz-150KHz 内置 32 次可编程 NVM 存储器 3.3V 编程电压 集成低电…

RocketMQ-RocketMQ高性能核心原理与源码剖析(中)

二.小试牛刀阶段 ​ 开始理解一些比较简单的业务逻辑 3、Netty服务注册框架 1、关注重点 ​ 网络通信服务是构建分布式应用的基础&#xff0c;也是我们去理解RocketMQ底层业务的基础。这里就重点梳理RocketMQ的这个服务注册框架&#xff0c;理解各个业务进程之间是如何进行…