当前位置: 首页 > news >正文

Nginx实战

虚拟主机

虚拟主机指的就是⼀个独⽴的站点,具有独⽴的域名,有完整的www服务,例如⽹站、FTP、邮件等 。Nginx⽀持多虚拟主机,在⼀台机器上可以运⾏完全独⽴的多个站点。⼀些草根流量站⻓,常会搭建个⼈站点进⾏资源分享交流,并且可能有多个不同业务的站点,如果每台服务器只运⾏⼀个⽹站,那么将造成资源浪费,成本浪费。利⽤虚拟主机的功能,就不⽤为了运⾏⼀个⽹站⽽单独配置⼀个Nginx服务器,或是单独再运⾏⼀组Nginx进程。虚拟主机可以在⼀台服务器,同⼀个Nginx进程上运⾏多个⽹站。

搭建网站

搭建一个静态网站,修改nginx.conf,⾃上⽽下找到第⼀个server{}指令块, 修改如下
 server {listen 80;server_name localhost;#默认编码charset utf-8;# access_log logs/host.access.log  main;location / {#定义虚拟主机的资源目录,无论win或linux都要写成正斜杠root C:/Users/zhang/Desktop/new;#定义首页文件的名字index index.html index.htm;}}

执行命令 

// 检查配置是否正确
nginx -t
// 启动
nginx
// 重新加载Nginx配置文件
nginx -s reload

准备资源

访问localhost

访问静态资源

 

 nginx⽀持gzip对资源压缩传输,经过gzip压缩后的⻚⾯⼤⼩可以为原本的30%甚⾄更⼩,⽤户浏览体验会快很多


#user  nobody;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {worker_connections  1024;
}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;#keepalive_timeout  0;keepalive_timeout  65;// 开启压缩gzip on;gzip_http_version 1.1;gzip_comp_level 4;gzip_types text/plain application/javascriptapplication/x-javascript text/css application/xmltext/javascript application/x-httpd-php image/jpeg image/gifimage/png;server {listen 80;server_name localhost;#默认编码charset utf-8;# access_log logs/host.access.log  main;location / {#定义虚拟主机的资源目录,无论win或linux都要写成正斜杠root C:/Users/zhang/Desktop/new;#定义首页文件的名字index index.html index.htm;}}}

目录游览功能

修改nginx.conf支持游览目录


#user  nobody;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {worker_connections  1024;
}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;#keepalive_timeout  0;keepalive_timeout  65;# gzip on;#第一个虚拟主机server {#监听的端口和iplisten 80;#主机域名server_name www.test1.com;charset utf-8;access_log logs/host.access.log;#url匹配location / {#HTML文件存放的目录root C:/Users/zhang/Desktop/new/web2;#开启目录索引功能autoindex on;#关闭详细文件大小统计,让文件大小显示MB,GB单位,默认为b; autoindex_exact_size off;#开启以服务器本地时区显示文件修改日期!  autoindex_localtime on;        }}}

 访问

基于IP多虚拟主机

修改 nginx.conf ⽀持多虚拟主机

#user  nobody;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {worker_connections  1024;
}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;#keepalive_timeout  0;keepalive_timeout  65;gzip on;gzip_http_version 1.1;gzip_comp_level 4;gzip_types text/plain application/javascriptapplication/x-javascript text/css application/xmltext/javascript application/x-httpd-php image/jpeg image/gifimage/png;#第一个虚拟主机server {#监听的端⼝和iplisten 127.0.0.1:80;#主机域名server_name 127.0.0.1;charset utf-8;access_log logs/host.access.log;#url匹配location / {#HTML文件存放的目录root C:/Users/zhang/Desktop/new/web1;#默认首页文件,从左往右寻找,index.html或是index.htmindex index.html index.htm;}}#第二个虚拟主机server {listen 192.168.52.100:80;server_name 192.168.52.100;location / {index index.html index.htm;root C:/Users/zhang/Desktop/new/web2;}}
}

执行命令

#重载nginx
nginx -s reload

访问站点一

访问站点二

基于域名多虚拟主机

 基于多IP的虚拟主机可能会造成IP地址不⾜的问题,如果没有特殊需求,更常⽤的是基于多域名的形式。只需要你单独配置DNS服务器,将主机名对应到正确的IP地址,修改Nginx配置,可以识别到不同的主机即可,这样就可以使得多个虚拟主机⽤同⼀个IP,解决了IP不足的隐患。

打开C:\Windows\System32\drivers\etc,配置域名。 

修改 nginx.conf ⽀持多域名的虚拟主机

#user  nobody;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {worker_connections  1024;
}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;#keepalive_timeout  0;keepalive_timeout  65;gzip on;gzip_http_version 1.1;gzip_comp_level 4;gzip_types text/plain application/javascriptapplication/x-javascript text/css application/xmltext/javascript application/x-httpd-php image/jpeg image/gifimage/png;#第一个虚拟主机server {#监听的端?和iplisten 80;#主机域名server_name www.test1.com;charset utf-8;access_log logs/host.access.log;#url匹配location / {#HTML文件存放的目录root C:/Users/zhang/Desktop/new/web1;#默认首页文件,从左往右寻找,index.html或是index.htmindex index.html index.htm;}}#第二个虚拟主机server {listen 80;server_name www.test2.com;location / {index index.html index.htm;root C:/Users/zhang/Desktop/new/web2;}}
}

执行命令

#重载nginx
nginx -s reload

访问域名1

访问域名2

基于端口多虚拟机

基于端⼝的配置在⽣产环境⽐较少⻅,⽤于特殊场景,例如公司内部测试平台⽹站,使⽤特殊端⼝的后台,OA 系统、⽹站后台, CRM 后台等。

修改nginx.conf⽀持多域名的虚拟主机


#user  nobody;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {worker_connections  1024;
}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;#keepalive_timeout  0;keepalive_timeout  65;gzip on;gzip_http_version 1.1;gzip_comp_level 4;gzip_types text/plain application/javascriptapplication/x-javascript text/css application/xmltext/javascript application/x-httpd-php image/jpeg image/gifimage/png;#第一个虚拟主机server {#监听的端口和iplisten 80;#主机域名server_name www.test1.com;charset utf-8;access_log logs/host.access.log;#url匹配location / {#HTML文件存放的目录root C:/Users/zhang/Desktop/new/web1;#默认首页文件,从左往右寻找,index.html或是index.htmindex index.html index.htm;}}#第二个虚拟主机server {listen 81;server_name www.test1.com;location / {index index.html index.htm;root C:/Users/zhang/Desktop/new/web2;}}
}

执行命令

#重载nginx
nginx -s reload

访问端口80

访问端口81

root和alias区别

1. Nginx的配置文件server中指定两个location执行,分别为root和alias的指令

location /test/{alias /www/test/;
}

按照上述配置,则访问/test/目录里面的文件时,nginx会去/www/test目录找文件

location /test/{root /www/test;
}

按照上述配置,则访问/test/目录下的文件时,nginx会去/www/test/test/目录下找文件

2.alias是一个目录别名的定义,root则是最上层目录的定义。

3,另一个区别是alias后面必须要用"/"结束,否则会找不到文件,而root则对"/"可有可无

4.不少人都有误区,认为root是指的/www/test目录下,但是应该是/www/test/test目录

相关文章:

Nginx实战

虚拟主机 虚拟主机指的就是⼀个独⽴的站点,具有独⽴的域名,有完整的www服务,例如⽹站、FTP、邮件等 。Nginx⽀持多虚拟主机,在⼀台机器上可以运⾏完全独⽴的多个站点。⼀些草根流量站⻓,常会搭建个⼈站点进⾏资源分享交…...

day-57 代码随想录算法训练营(19)动态规划 part 17

647.回文子串 思路&#xff1a;动态规划 1.dp存储&#xff1a;判断以i开始&#xff0c;j结尾的字符串是否是回文串2.动态转移方程&#xff1a;当s[i]s[j]时&#xff0c;如果j-i<1,d[i][j]true; 如果 dp[i1][j-1]true&#xff0c;那么dp[i][j…...

在项目中,关于前端实现数据可视化的技术选择

前言 在项目中&#xff0c;数据可视化以图表、报表类型为主。 需求背景 技术框架是Vue2.x版本&#xff0c;组件库是Ant Design of Vue能够支撑足够多的图表类型开发图表大小/位置能够随意变动图表样式需要支持丰富多样的用户配置强大、开放的图表语法支持复杂的数据可视化场景…...

DT 卡通材质学习 一

渐变着色器 相交线 笔刷和卡通结合使用 修改器...

【游戏引擎架构】6.2 资源管理器

资源管理器可以分为离线部分系统和运行时系统 文章目录 离线资源管理数据库资产管道 运行时资源管理文件结构内存管理文件间引用 离线资源管理 数据库 UE的数据库可以直接浏览、编辑资产&#xff0c;看到运行时的状态&#xff1b;但也存在两个较大的缺点&#xff1a; 版本管…...

spring的ThreadPoolTaskExecutor装饰器传递调用线程信息给线程池中的线程

概述 需求是想在线程池执行任务的时候&#xff0c;在开始前将调用线程的信息传到子线程中&#xff0c;在子线程完成后&#xff0c;再清除传入的数据。 下面使用了spring的ThreadPoolTaskExecutor来实现这个需求. ThreadPoolTaskExecutor 在jdk中使用的是ThreadPoolExecutor…...

转载 - 洞察问题本质,解决工作难题

作者&#xff1a;关苏哲 高效管理者的三大技能 问题界定的6个问题 1.你所需要解决的问题是什么&#xff1f; 2.你为什么需要解决这个问题&#xff1f; 3.你期待的理想结果是什么&#xff1f; 4.这个问题包括哪些子问题&#xff1f; 5.你曾经尝试过哪些解决方式&#xff1f…...

关于计算机找不到d3dx9_43.dll,无法继续执行代码修复方法

d3dx9_43.dll是一个动态链接库文件&#xff0c;它是DirectX的一个组件&#xff0c;主要用于处理游戏中的图形、声音等多媒体元素。当这个文件丢失时&#xff0c;可能会导致以下问题&#xff1a; 1. 游戏无法正常运行&#xff1a;由于d3dx9_43.dll负责处理游戏中的多媒体元素&a…...

《从零开始的Java世界》01基本程序设计

《从零开始的Java世界》系列主要讲解Javase部分&#xff0c;从最简单的程序设计到面向对象编程&#xff0c;再到异常处理、常用API的使用&#xff0c;最后到注解、反射&#xff0c;涵盖Java基础所需的所有知识点。学习者应该从学会如何使用&#xff0c;到知道其实现原理全方位式…...

【数据开发】数据全栈知识架构,数据(平台、开发、管理、分析)

文章目录 一、数据全栈知识架构1、数据方法&#xff08;思维&#xff0c;统计学&#xff0c;实践&#xff0c;北极星&#xff09;2、数据工具&#xff1a;数据仓库3、数据规范 二、数据分析工具1、大数据平台2、数据开发&#xff1a;入库计算&#xff08;重点&#xff09;3、数…...

基于STM32的宠物托运智能控制系统的设计(第十七届研电赛)

一、功能介绍 使用STM32作为主控设备&#xff0c;通过DHT11温湿度传感器、多合一空气质量检测传感器以及压力传感器对宠物的托运环境中的温湿度、二氧化碳浓度和食物与水的重量进行采集&#xff0c;将采集到的信息在本地LCD显示屏上显示&#xff0c;同时&#xff0c;使用4G模块…...

数据结构的奇妙世界:实用算法与实际应用

文章目录 数据结构和算法的基本概念数据结构数组链表栈队列树图 算法 常见的数据结构和算法排序算法快速排序示例 数据结构的应用数据库管理系统图像处理网络路由 数据结构和算法的性能分析时间复杂度空间复杂度 如何更好地编写代码避免常见错误结论 &#x1f389;欢迎来到数据…...

uniapp实现表格冻结

效果图如下&#xff1a; 思路&#xff1a; 1.由于APP项目需要&#xff0c;起初想去插件市场直接找现成的&#xff0c;结果找了很久没找到合适的&#xff08;有的不支持vue2有的不能都支持APP和小程序&#xff09; 2.后来&#xff0c;就只能去改uni-table源码了&#xff0c;因…...

Spring面试题11:什么是Spring的依赖注入

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:说一说Spring的依赖注入 依赖注入(Dependency Injection)是Spring框架的一个核心特性,它是指通过外部容器将对象的依赖关系注入到对象中,从而…...

用于设计 CNN 的 7 种不同卷积

一 说明 最近对CNN架构的研究包括许多不同的卷积变体&#xff0c;这让我在阅读这些论文时感到困惑。我认为通过一些更流行的卷积变体的精确定义&#xff0c;效果和用例&#xff08;在计算机视觉和深度学习中&#xff09;是值得的。这些变体旨在保存参数计数、增强推理并利用目标…...

备受以太坊基金会青睐的 Hexlink,构建亿级用户涌入 Web3的入口

早在2021年9月&#xff0c;以太坊创始人Vitalik Buterin就曾提出了EIP-4337&#xff08;账户抽象&#xff09;提案&#xff0c;并在去年10月对该提案进一步更新&#xff0c;引发行业的进一步关注。在今年3月&#xff0c;EIP-4337提案正式通过审计&#xff0c;并成为了ERC-4337标…...

合约升级标准 ERC2535 的设计解析和不足

合约升级标准 ERC2535 的设计解析和不足 Safful最近审计了钻石标准的一份实现代码&#xff0c;这一标准是一种新的可升级合约模式。撰写标准是一项值得赞许的事业&#xff0c;但钻石标准及其实现有许多引人担忧的地方。这份代码是过度工程的产物&#xff0c;附带了许多不必要的…...

【Vue】ElementUI实现登录注册

一、搭建项目 二、后台交互 三、CORS跨域 好啦今天到这了&#xff0c;希望能帮到你&#xff01;&#xff01;&#xff01;...

linux 安装 wordpress

文章目录 linux 安装 wordpress1. wordpress 简介2. wordpress功能和特点3. 部署要求4. 环境搭建4.1 部署 nginx4.1.1 新增配置文件 4.2 部署 PHP74.2.1 查看当前版本4.2.2 YUM 安装 PHP74.2.3 查看 PHP 版本4.2.4 启动PHP-FPM4.2.5 修改配置文件4.2.6 重启服务 4.3 部署 mysql…...

LeetCode902最大为 N 的数字组合(相关话题:数位DP问题,递归遍历和减枝)

目录 题目描述 方法一递归遍历和减枝 方法二动态规划 数位DP问题拓展 通用方法论引入 <...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API&#xff0c;查询的是单条数据&#xff0c;比如根据主键ID查询用户信息&#xff0c;sql如下&#xff1a; select id, name, age from user where id #{id}API默认返回的数据格式是多条的&#xff0c;如下&#xff1a; {&qu…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...