首页 > 系统相关 >nginx配置的简单介绍

nginx配置的简单介绍

时间:2024-09-17 15:51:00浏览次数:3  
标签:index 匹配 配置 192.168 server nginx html location 简单

Nginx 基础使用


在这里插入图片描述

目录结构


进入Nginx的主目录我们可以看到这些主要文件夹

conf html logs sbin

conf

用来存放配置文件相关

html

用来存放配置文件相关

sbin

nginx的主程序

Nginx配置与应用场景


最小配置

worker_processes

worker_processes 1;默认为1,表示开启一个业务进程

work_connections

work_connections 1024;单个业务进程可以接受连接数

include

include mime.types; 引入http mime类型

default_type

default_type application/octet-stream; 如果mime类型没匹配上,默认使用二进制流的方式传输。

sendfile

sendfile on; 使用linux的 sendfile(socket, file, len) 高效网络传输,也就是数据0拷贝。

keepalive_timeout 65;
server
server {
       listen       80; 监听端口号
       server_name localhost; 主机名
       location / { 匹配路径
           root   html; 文件根目录
           index index.html index.htm; 默认页名称
       }
     
       error_page   500 502 503 504 /50x.html; 报错编码对应页面
       location = /50x.html {
           root   html;
       }
   }

servername匹配规则

我们需要注意的是servername匹配分先后顺序,写在前面的匹配上就不会继续往下匹配了。

完整匹配
server_name www.xxx.com www.xxx.net
通配符匹配
sever_name *.xxx.com
正则匹配
server_name ~^[a-z]+\.xxx\.com$;

反向代理


location / {
	proxy_pass http://xxx.com/;
}

基于反向代理的负载均衡

upstream httpd {
	server 192.168.xx1.yy1:80;
	server 192.168.xx2.yy2:80;
}
轮询
weight(权重)

指定轮询的几率,weigth和访问比率成正比,用于性能不均的情况

upstream httpd {
	server 192.168.xx1.yy1:80;				weight=10 down;
	server 192.168.xx2.yy2:80;				weight=1;
	server 192.168.xx3.yy3:80;				weight=1 backup;
}
  • down:不参与负载
  • weight:默认为1,weight越大,负载的权重就越大。
  • backup: 备用
ip_hash

根据ip计算hash值,选择server

url_hash

根据url计算hash值,选择server

least_conn

最少连接

动静分离

配置
location / {
	proxy_pass http://127.0.0.1:8080;
	root html;
	index index.html index.htm;
}
增加location
location /css {
	root /usr/local/nginx/static;
	index index.html index.htm;
}
location的使用
location 的前缀
/匹配所有请求
=精准匹配
~正则匹配,区分大小写
~*正则匹配,不区分大小写
^~非正则,匹配以指定模式开头
  • 匹配循序
    • 多个正则location直接按书写顺序匹配,成功后就不会继续往后面匹配
    • 普通(非正则)location会一直往下,直到找到匹配度最高的(最大前缀匹配)
    • 当普通location与正则location同时存在,如果正则匹配成功,则不会再执行普通匹配
    • 所有类型location存在时,“=”匹配 > “^~”匹配 > 正则匹配 > 普通(最大前缀匹配)

alias与root

location /css { 
 
 alias /usr/local/nginx/static/css; 
 index index.html index.htm; 
 } 

root用来设置根目录,而alias在接受请求的时候在路径上不会加上location。

UrlRewrite

rewrite		<regex>		<replacement>		[flag]
关键字		正则			替代内容				flag标记
flag标记说明:
  • last 本条规则匹配完成后,继续向下匹配新的location URI规则
  • break 本条规则匹配完成即终止,不再匹配后面的任何规则
  • redirect 返回302临时重定向,浏览器地址会显示跳转后的URL地址
  • permanent 返回301永久重定向,浏览器地址栏会显示跳转后的URL地址
rewrite		^/([0-9]+).html$		/index.jsp?pageNum=$1		break;

同时使用负载均衡

应用服务器防火墙配置
  • 开启防火墙
    systemctl start firewalld
  • 重启防火墙
    systemctl restart firewalld
  • 重载规则
    firewall-cmd --reload
  • 查看已配置规则
    firewall-cmd --list-all
  • 指定端口和ip访问
    firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.xx.yy" port protocol="tcp" port="8080" accept"
  • 移除规则
    firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.xx.yy" port port="8080" protocol="tcp" accept"
网关配置
upstream httpds {  
 	server 192.168.xx1.yy1 weight=8 down; 
 	server 192.168.xx2.yy2:8080 weight=2; 
 	server 192.168.xx3.yy3:8080 weight=1 backup; 
 } 
 
 location / { 
 	rewrite ^/([0-9]+).html$ /index.jsp?pageNum=$1 redirect; 
 	proxy_pass http://httpds ; 
 } 

防盗链配置

valid_referers none | blocked | server_names | strings ....;
  • none, 检测 Referer 头域不存在的情况。
  • blocked,检测 Referer 头域的值被防火墙或者代理服务器删除或伪装的情况。这种情况该头域的值不以
  • “http://” 或 “https://” 开头。
  • server_names ,设置一个或多个 URL ,检测 Referer 头域的值是否是这些 URL 中的某一
valid_referers 192.168.xx.yy;
if ($invalid_referer) {
	return 403;
}

标签:index,匹配,配置,192.168,server,nginx,html,location,简单
From: https://blog.csdn.net/2301_77207909/article/details/142314631

相关文章

  • java计算机毕业设计简单二手车网站(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景:随着汽车消费市场的日益成熟与消费者观念的转变,二手车交易逐渐成为汽车市场的重要组成部分。然而,传统的二手车交易过程往往伴随着信息不对称、交易流......
  • 简单工厂模式
    简单工厂模式简单工厂模式(SimpleFactoryPattern)是一种创建型设计模式,通过一个工厂类来决定实例化哪一个类的对象。它是最常见的设计模式之一,主要用于将对象的创建与使用分离,减少代码重复,提高代码的可维护性。特点工厂角色:负责创建具体产品类的实例,通常是一个包含静态方法的......
  • 简单文本进度条案例
    python用PyCharm软件文本进度条进度条一般以图形的方式显示已完成任务量和未完成任务量,并以动态文字的方式显示任务的完成度。实例目标通过完成本实例,读者应掌握以下知识或技能:熟练使用format()方法格式化字符串。了解time模块中sleep()函数的用法实例分析本实例要实......
  • 使用 Spring Boot 的yml配置文件读取方式
    在Java项目中读取YML(YAML)配置文件有多种方式,尤其在使用SpringFramework(包括SpringBoot)时,更是提供了丰富的支持。以下是几种常见的方式来读取YML配置文件:1.使用SpringBoot的自动配置SpringBoot提供了对YML文件的自动化支持,这也是最常用的方式。1.1使用@Value......
  • C++11 线程同步接口std::condition_variable和std::future的简单使用sk
    合集-C++(1)1.C++11线程同步接口std::condition_variable和std::future的简单使用09-17收起std::condition_variable条件变量std::condition_variable有wait和notify接口用于线程间的同步。如下图所示,Thread2阻塞在wait接口,Thread1通过notify接口通知Thread2继续执行。......
  • 使用 Axios 配置动态域名的基础 URL 和项目打包
    在Web开发中,我们常常需要根据不同的环境(如开发、测试和生产)配置不同的API基础URL。使用Axios作为HTTP客户端,我们可以通过动态配置基础URL来实现这一目标。本文将介绍如何在Axios中配置动态域名,并提供项目打包的示例。为什么需要动态配置基础URL?在开发过程中,我......
  • ZeroTier-One配置moon修改端口
    此处均以linux环境为准1.安装moon,zerotier官方提供了比较方便的安装方式,一条命令即可完成:curl-shttps://install.zerotier.com/|sudobash2.生成moon配置文件cd/var/lib/zerotier-one#安装好zerotier后,自动会安装到此目录sudozerotier-idtoolinitmoonidentity......
  • 十五,Spring Boot 整合连接数据库(详细配置)
    十五,SpringBoot整合连接数据库(详细配置)@目录十五,SpringBoot整合连接数据库(详细配置)最后:JDBC+HikariDataSource(SpringBoot内置的数据库)HikariDataSource:目前市面上非常优秀的数据源,是SpringBoot2默认数据源。演示SpringBoot如何通过jdbc+HikariDataSou......
  • 这段HTML、CSS和JavaScript代码构成了一个简单的网页游戏,名为“Catch The Insect”
    这段HTML、CSS和JavaScript代码构成了一个简单的网页游戏,名为“CatchTheInsect”。以下是对代码的详细分析和说明:HTML部分基础结构:使用<!DOCTYPEhtml>声明文档类型,确保浏览器以标准模式渲染页面。<htmllang="en">标签定义了文档的语言为英语。<head>部分包含了字符集......
  • 储能辅助火电机组二次调频控制策略及容量优化配置研究(Matlab代码和Simulink仿真)
        ......