Nginx 基础

文章目录

  • Nginx
    • 概念
    • 安装
      • 下载上传安装包
      • 执行准备条件
      • 指定安装位置
      • 编译和安装
      • 启动服务
      • 创建启动脚本
    • linux文件目录
    • nginx运行原理
    • nginx配置
    • 域名
      • 概念和原理
      • 域名配置

Nginx

概念

Nginx 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,公开版本1.19.6发布于2020年12月15日。
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2022年01月25日,nginx 1.21.6发布。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。

安装

下载上传安装包

可以直接通过此链接直接下载
http://nginx.org/download/nginx-1.11.1.tar.gz

或者通过命令进行直接下载到linux上面

wget http://nginx.org/download/nginx-1.11.1.tar.gz

将nginx-1.21.6.tar.gz软件上传到 /usr/local文件夹下面,并解压
tar -zxvf nginx-1.21.6.tar.gz

执行准备条件

​	yum install -y gcc                               安装C语言库
​	yum install -y pcre pcre-devel                   安装perl库 
​	yum install -y zlib zlib-devel                   安装zlib库 

指定安装位置

​ 进入nginx文件以后执行
​ ./configure --prefix=/usr/local/nginx

编译和安装

make
​make install
在这里插入图片描述

启动服务

进入进入安装好的目录 /usr/local/nginx/sbin

 	cd /usr/local/nginx/sbin/ 
​	./nginx 启动 
​	./nginx -s stop 快速停止 
​	./nginx -s quit 优雅关闭,在退出前完成已经接受的连接请求 
​	./nginx -s reload 重新加载配置 

在这里插入图片描述
注意:如果启动了以后不能生效,记得关闭防火墙。

systemctl stop firewalld

systemctl disable firewalld

一般在公司里面是不会直接将防火墙关闭的,这样会导致黑客端口扫描,找到相关的漏洞

firewall-cmd --zone=public --add-port=80/tcp --permanent

创建启动脚本

vi /usr/lib/systemd/system/nginx.service

[Unit]
Description=nginx - web server 
After=network.target remote-fs.target nss-lookup.target [Service] 
Type=forking 
PIDFile=/usr/local/nginx/logs/nginx.pid 
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf 
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop 
ExecQuit=/usr/local/nginx/sbin/nginx -s quit 
PrivateTmp=true [Install] 
WantedBy=multi-user.target

重新加载系统服务
systemctl daemon-reload

启动服务
systemctl start nginx.service
systemctl restart nginx.service

开机启动
systemctl enable nginx.service

linux文件目录

在这里插入图片描述

  • sbin: 存放二进制启动文件
  • conf:存放配置文件
  • logs:存放日志文件
  • html:存放静态页面
  • uwsgi_temp:存放的是临时文件

修改html中的index.html文件,重新启动nginx
在这里插入图片描述

注意:/usr/lib/systemd/system/nginx.service 文件复制以后要看看格式是否正确,如果不对,则可能导致重启失败。

nginx运行原理

在这里插入图片描述

1 系统启动以后就会有一个nginx的主进程

2 主进程读取nginx.conf配置文件,确认文件的位置

3 主进程创建多个work进程

4 当用户请求进来以后,work进程就可以读取解析用户的请求,并返回信息。

nginx配置

从nginx服务器上将nginx.conf配置文件下载到本地
在这里插入图片描述
将注释后的代码先删除,得到一个最简化的配置文件,如下

worker_processes  1;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;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;}}
}
  • worker_processes 1; 配置worker进程的数量,这个数字跟cpu的核心数相关,nginx优化的一个参数

  • worker_connections 1024; 一个worker进程的最大连接数。

  • include: 引入其他的文件

  • mime.types: 这个文件的作用是,当用户请求资源文件的时候,我们将不同文件根据后缀,告诉用户解析方式,其实当用户浏览器拿到服务器给的资源的时候,即使给了后缀名,浏览器也是不能完全解析的,需要在请求头的地方告诉浏览器解析方式。比如png格式的文件,需要image/png的方式解析。

  • keepalive_timeout 65; 保持长连接的时长。

  • server 配置资源文件的,相当于一个完整的服务器站点 vhost,可以通过端口号来区分。

  • listen 80; 站点监听的端口

  • server_name 域名; 站点的域名(是一个网路能解析的域名)

  • location 用来匹配uri的 域名:端口/uri

  • root html; 当用户的请求和location的uri匹配的时候,要进入的目录资源

  • index index.html index.htm;当用户的请求和location的uri匹配的时候,默认的请求主页

错误提示
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
当服务器发生内部错误的时候,比如500,502…就会将请求转发到 /50x.html,从html目录中找到 50x.html文件

在这里插入图片描述

域名

概念和原理

域名(Domain Name),是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置,地理上的域名,指代有行政自主权的一个地方区域)。域名使一个IP地址有"面具" 。一个域名的目的是成为便于记忆和沟通的一组服务器的地址(网站,电子邮件,FTP等),世界上第一个注册的域名是在1985年1月注册的。

DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。在RFC文档中RFC 2181对DNS有规范说明,RFC 2136对DNS的动态更新进行说明,RFC 2308对DNS查询的反向缓存进行说明。

通俗的说:因为我们的IP地址都一连串的数字,不好记忆,所以我们用一个很好记的一串单词来代替ip地址。然后通过DNS服务器来记录我们域名和IP的对应关系,以后我们访问IP的时候就可以通过域名的方式,间接的去访问我们的IP地址了。

域名配置

以下以腾讯云为案例:

  • https://console.dnspod.cn/dns/hanmh2020.work/record

  • 配置域名和ip的对应关系,然后启动解析

  • 在linux home目录下创建www文件夹

  • 在www文件夹下面创建 www文件夹保存主站点信息,vod文件夹保存视频站点

  • 在www和vod文件夹下面分别创建index.html,并写入信息

  • 修改配置文件

worker_processes  1;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;server {listen       80;server_name  www.xxxxxx.work;location / {root   /home/www/www;index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}server {listen       88;server_name  vod.xxxxxx.work;location  /{root   /home/www/vod;index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}
}

注意这里的域名修改成自己的
访问 http://www.hanmh2020.work:88/ 和 http://vod.hanmh2020.work:88/
www.hanmanhong2022.cloud vod.hanmanhong2022.cloud:88

注意:可以使用 .,$d 删除整个配置文件里的内容。

说明:这里其实配置了两个虚拟主机,两个主机可以各自管理自己的文件,互不影响。

下期续写 反向代理,以及动静分离和反向代理,以及动静分离,以及Nginx跨域问题

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

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

相关文章

【Java八股面试系列】Arraylist和HashMap的底层原理

文章目录 ArrayList源码总:构造方法扩容机制remove HashMap总:构造方法细节问题putVal()方法resize()方法Hash值 HashMap常见问题 ConcurrentHashMap总:putVal()方法自己的测试 为什么重写HashCode和equals ArrayList源码 总: *…

3.28号arm

can总线相关理论 1. 概念 控制器局域网(Controller Area Network,CAN),其特点是可拓展性好,可承受大量数据的高速通信,高度稳定可靠,因此常应用于汽车电子领域、工业自动化、医疗设备等高要求…

Java JSON字符串相关问题

一、依赖包 <!--json包--><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.15</version></dependency> 二、举例 1.实体对象转Json字符串 1.1 代码实现 Dog.java: pack…

python_web1(前端开发之HTML、CSS、Bootstap、Javascript、JQuery)

文章目录 一、Flask网页开发1.1创建一个名为web1.py的python文件1.2 templates目录创建文件index.html 二、html标签2.1 编码2.2title < head >2.3 标题< h>2.4 div和span2.5超链接1.在index.xml文件中补充。2.修改web1.py文件3.添加get_self.html4.效果 2.6图片1.…

Java 堆外内存及调优

文章目录 直接内存简介为什么DirectByteBuffer可以优化 IO 性能 直接内存的分配直接内存的回收直接内存跟踪与诊断 直接内存简介 直接内存(Direct Memory) 并不是虚拟机运行时数据区的一部分&#xff0c;并非Java虚拟机规范中定义的内存区域。但是这部分内存的频繁使用&#x…

【LeetCode】三月题解

文章目录 [2369. 检查数组是否存在有效划分](https://leetcode.cn/problems/check-if-there-is-a-valid-partition-for-the-array/)思路&#xff1a;代码&#xff1a; [1976. 到达目的地的方案数](https://leetcode.cn/problems/number-of-ways-to-arrive-at-destination/) 思路…

C++教学——从入门到精通 5.单精度实数float

众所周知&#xff0c;三角形的面积公式是(底*高)/2 那就来做个三角形面积计算器吧 到吗如下 #include"bits/stdc.h" using namespace std; int main(){int a,b;cin>>a>>b;cout<<(a*b)/2; } 这不对呀&#xff0c;明明是7.5而他却是7&#xff0c;…

让IIS支持.NET Web Api PUT和DELETE请求

前言 有很长一段时间没有使用过IIS来托管应用了&#xff0c;今天用IIS来托管一个比较老的.NET Fx4.6的项目。发布到线上后居然一直调用不同本地却一直是正常的&#xff0c;关键是POST和GET请求都是正常的&#xff0c;只有PUT和DELETE请求是有问题的。经过一番思考忽然想起来了I…

YOLOv9改进策略 :主干优化 | 极简的神经网络VanillaBlock 实现涨点 |华为诺亚 VanillaNet

💡💡💡本文改进内容: VanillaNet,是一种设计优雅的神经网络架构, 通过避免高深度、shortcuts和自注意力等复杂操作,VanillaNet 简洁明了但功能强大。 💡💡💡引入VanillaBlock GFLOPs从原始的238.9降低至 165.0 ,保持轻量级的同时在多个数据集验证能够高效涨点…

每日学习笔记:C++ STL算法分类

非更易型 更易型 移除型 变序型 排序型 已排序区间算法 数值型算法

【滑动窗口】Leetcode 将 x 减到 0 的最小操作数

题目解析 1658. 将 x 减到 0 的最小操作数 算法讲解 这道题按照题目要求的话会变得很难&#xff0c;因为不仅需要考虑数字减到0&#xff0c;还需要考虑最小的操作数。正难则反&#xff0c;按照这个思路&#xff0c;我们来解析题目 这道题本质上无非就是在左边寻找一段区间&a…

HCIP第三次作业(综合)

一、实验要求 二、实验步骤 1、配置IP地址部分 PC1&#xff1a; PC2&#xff1a; PC3&#xff1a; PC4&#xff1a; R1&#xff1a; R2&#xff1a; R3&#xff1a; R4&#xff1a; R5&#xff1a; 环回&#xff1a; 2.通过配置缺省路由让公网互通 [R1]ip route-static 0.0.…

代码随想录第27天| 39. 组合总和

39. 组合总和 39. 组合总和 - 力扣&#xff08;LeetCode&#xff09; 代码随想录 (programmercarl.com) 带你学透回溯算法-组合总和&#xff08;对应「leetcode」力扣题目&#xff1a;39.组合总和&#xff09;| 回溯法精讲&#xff01;_哔哩哔哩_bilibili 给你一个 无重复元…

思考:开启MMU瞬间可能出现的多种问题以及多种解决方案

快速链接: 【精选】ARMv8/ARMv9架构入门到精通-[目录] &#x1f448;&#x1f448;&#x1f448; (说明本文的介绍都是基于armv8-aarch64或armv9硬件架构) 在mmu未开启阶段&#xff0c;PC操作的都是物理地址执行程序&#xff0c;这样看起来一切正常&#xff0c;没啥问题。 例如…

Windows Server 2022 使用ApacheDS用户远程桌面登录服务器

Windows Server 2022 使用ApacheDS用户远程桌面登录服务器 1、接上篇 Windows Server 2022 使用ApacheDS用户认证 使用Administrator用户远程登录192.168.1.100windows server&#xff0c;打开pGina软件 2、输入刚刚在ApacheDS中的新添加的用户测试一下&#xff0c;会自动添加…

如何在极狐GitLab 配置 邮件功能

本文作者&#xff1a;徐晓伟 GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 本文主要讲述了在极狐GitLab 用户…

【带你了解下前端开发语言有那些】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

爱上数据结构:二叉树的基本概念

​ ​ &#x1f525;个人主页&#xff1a;guoguoqiang. &#x1f525;专栏&#xff1a;数据结构 ​ 一、树的基本概念 1.概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因 为它看起…

计算机网络数据链路层知识总结

物理层知识总结传送门 计算机网络物理层知识点总结-CSDN博客 功能 功能概述 一些基本概念 结点:主机、路由器链路﹔网络中两个结点之间的物理通道&#xff0c;链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路。数据链路︰网络中两个结点之间的逻辑通道&a…

Prometheus+grafana环境搭建rabbitmq(docker+二进制两种方式安装)(二)

搭建完Prometheusgrafana基础环境后参见&#xff1a;Prometheusgrafana环境搭建方法及流程两种方式(docker和源码包)(一)-CSDN博客&#xff0c;对我本地的一些常用法人服务进行一个监控。基本都可以根据官方文档完成搭建&#xff0c;因为docker和二进制方式安装各有优缺点。 d…