Nginx安装以及具体应用

文章目录

    • Centos7安装Nginx
    • Nginx命令
    • Nginx具体应用
      • 反向代理
    • location指令说明
      • 负载均衡
      • 动静分离
    • Nginx.conf配置详解

Centos7安装Nginx

下载地址:nginx: download
中间这个就是tar.gz包
在这里插入图片描述

Centos7安装Nginx

  • 下载nginx-1.16.1.tar.gz
  • 上传到Centos7中的/user/local目录下
  • 安装Nginx依赖的包
  • yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
  • 解压 tar -zxvf nginx-1.16.1.tar.gz
  • 在/user/local创建一个目录 mkdir -p /user/local/nginx
  • 在/usr/local/nginx-1.16.1目录下执行configure./configure --prefix=/usr/local/nginx
  • 安装 make && make install

检查配置文件正确性
在/usr/local/nginx/sbin目录下执行./nginx -t
在这里插入图片描述

启动Nginx
在/usr/local/nginx/sbin目录下启动nginx

./nginx

防火墙开启80端口

就能访问到Nginx首页了

image-20220810174511499

Nginx命令

(1)启动命令:在/usr/local/nginx/sbin目录下执行 ./nginx
(2)关闭命令:在/usr/local/nginx/sbin目录下执行 ./nginx -s stop
(3)重新加载命令:在/usr/local/nginx/sbin目录下执行 ./nginx -s reload
(4)查看版本:在/usr/local/nginx/sbin目录下执行 ./nginx -v
(5)查看进程:ps -ef|grep nginx

Nginx具体应用

反向代理

反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获取目标服务器的资源,反向代理服务器负责将请求转发给目标服务器。用户不需要知道目标服务器的地址,也无需在用户端做出任何设定。

配置反向代理:

    server {listen       82;server_name  localhost;location / {proxy_pass http://192.168.205.1:8080; #反向代理配置,将请请求转发到指定服务}

当我们192.168.205.1:80 就会转发到=>http://192.168.205.1:8080

如果location配置如下:

    server {listen       80;server_name  localhost;location ~ /tom/ {proxy_pass http://127.0.0.1:8080; #反向代理配置,将请请求转发到指定服务
}

访问192.168.205.1:80/tom/index.html就会访问=>192.168.205.1:8080/tom/index.html

location指令说明

该指令用于匹配 URL。
语法如下:

1、= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。
2、~:用于表示 uri 包含正则表达式,并且区分大小写。
3、~:用于表示 uri 包含正则表达式,并且不区分大小写。
4、^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。
注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~
标识。

负载均衡

配置负载均衡
upstream称为上游服务器,即真实处理请求的业务服务器。

upstream targetserver{
#定义一组服务器
server 192.168.205.1:8080;
server 192.168.205.1:8081;
}
server{
listen 8080;
server_name localhost;
location / {
proxy_pass http://targetserver;
}
}
名称说明
轮询默认方式
weight权重方式
ip_hash依据ip分配方式
least_conn依据最小连接方式
url_hash依据url分配方式
fair依据响应时间方式

解释:

①轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除
②weight
weight代表权,重默认为1,权重越高被分配的客户端越多
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 例如:

upstream server_pool{   
server 192.168.10.1 weight=1;    
server 192.168.10.2 weight=2; 
server 192.168.10.3 weight=3;   
}

③ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 例如:

upstream server_pool{   
ip_hash;    
server 192.168.10.1:80;   
server 192.168.10.2:80;  
server 192.168.10.3:80;  
}

④fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。

upstream server_pool{   
server 192.168.10.1:80;    
server 192.168.10.2:80;
server 192.168.10.3:80;
fair;    
}

其他参数:
在这里插入图片描述

动静分离

Nginx 动静分离简单来说就是把动态请求跟静态请求分开,Nginx 处理静态请求,Tomcat处理动态请求。
动静分离从目前实现角度来讲大致分为两种:

  • 一种是纯粹把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案;
  • 另外一种方法就是动态跟静态文件混合在一起发布,通过
    nginx 来分开。 通过 location 指定不同的后缀名实现不同的请求转发。

将a.jpg放到tom文件夹下:
通过反向代理访问http://192.168.242.66/tom/a.jpg
=>http://192.168.242.66:8080/tom/a.jpg

Nginx.conf配置详解

Nginx配置文件(conf/nginx.conf)整体分为三个部分:

全局块:和Nginx运行相关的全局配置

events块:和网络连接相关的配置

http块:代理、缓存、日志记录、虚拟主机配置

  • http全局块
  • Server块

servler全局块
location块

#安全问题,建议用nobody,不要用root.
#user  nobody;#worker数和服务器的cpu数相等是最为适宜
worker_processes  2;#work绑定cpu(4 work绑定4cpu)
worker_cpu_affinity 0001 0010 0100 1000#error_log path(存放路径) level(日志等级) path表示日志路径,level表示日志等级,
#具体如下:[ debug | info | notice | warn | error | crit ]
#从左至右,日志详细程度逐级递减,即debug最详细,crit最少,默认为crit。 
#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;  #这个值是表示nginx要支持哪种多路io复用。#一般的Linux选择epoll, 如果是(*BSD)系列的Linux使用kquene。#windows版本的nginx不支持多路IO复用,这个值不用配。use epoll;# 当一个worker抢占到一个链接时,是否尽可能的让其获得更多的连接,默认是off 。multi_accept on; //并发量大时缓解客户端等待时间。# 默认是on ,开启nginx的抢占锁机制。accept_mutex  on; //master指派worker抢占锁
}
http {#当web服务器收到静态的资源文件请求时,依据请求文件的后缀名在服务器的MIME配置文件中找到对应的MIME Type,再根据MIME Type设置HTTP Response的Content-Type,然后浏览器根据Content-Type的值处理文件。include       mime.types;  #/usr/local/nginx/conf/mime.types#如果 不能从mime.types找到映射的话,用以下作为默认值-二进制default_type  application/octet-stream;#日志位置access_log  logs/host.access.log  main;#一条典型的accesslog:#101.226.166.254 - - [21/Oct/2013:20:34:28 +0800] "GET /movie_cat.php?year=2013 HTTP/1.1" 200 5209 "http://www.baidu.com" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MDDR; .NET4.0C; .NET4.0E; .NET CLR 1.1.4322; Tablet PC 2.0); 360Spider"#1)101.226.166.254:(用户IP)#2)[21/Oct/2013:20:34:28 +0800]:(访问时间) #3)GET:http请求方式,有GET和POST两种#4)/movie_cat.php?year=2013:当前访问的网页是动态网页,movie_cat.php即请求的后台接口,year=2013为具体接口的参数#5)200:服务状态,200表示正常,常见的还有,301永久重定向、4XX表示请求出错、5XX服务器内部错误#6)5209:传送字节数为5209,单位为byte#7)"http://www.baidu.com":refer:即当前页面的上一个网页#8)"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; #.NET CLR 3.0.30729; Media Center PC 6.0; MDDR; .NET4.0C; .NET4.0E; .NET CLR 1.1.4322; Tablet PC 2.0); 360Spider": agent字段:通常用来记录操作系统、浏览器版本、浏览器内核等信息log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';#开启从磁盘直接到网络的文件传输,适用于有大文件上传下载的情况,提高IO效率。sendfile        on; //大文件传递优化,提高效率#一个请求完成之后还要保持连接多久,0表示完成请求后直接关闭连接。默认:75skeepalive_timeout  60s; #开启或者关闭gzip模块, 文件压缩,再传输,提高效率#gzip  on ; #设置允许压缩的页面最小字节数,页面字节数从header头中的Content-Length中进行获取。#gzip_min_lenth 1k;# gzip压缩比,1 压缩比最小处理速度最快,9 压缩比最大但处理最慢(传输快但比较消耗cpu)#gzip_comp_level 4;#匹配MIME类型进行压缩,(无论是否指定)"text/html"类型总是会被压缩的。#gzip_types types text/plain text/css application/json  application/x-javascript text/xml   #动静分离#服务器端静态资源缓存,最大缓存到内存中的文件,不活跃期限open_file_cache max=655350 inactive=20s;   #活跃期限内最少使用的次数,否则视为不活跃。open_file_cache_min_uses 2;#验证缓存是否活跃的时间间隔 open_file_cache_valid 30s;upstream  myserver{# ip_hash;server 192.168.161.132:8080 weight=1;server 192.168.161.132:8081 weight=1 backup;#hash $request_uri#hash_method crc32}server {#监听端口号listen       80;#服务名server_name  192.168.137.129;#字符集#charset utf-8;location / {   #匹配任何查询。root   html;#资源查找位置。         /user/local/nginx/html#默认访问首页索引文件的名称index  index.html index.htm;#反向代理路径proxy_pass http://myserver;#反向代理的超时时间proxy_connect_timeout 10;proxy_redirect default;}#普通匹配location  /images/ {    root images ;}#反正则匹配location ^~ /images/jpg/ {  # 匹配任何以 /images/jpg/ 开头的任何查询并且停止搜索。任何正则表达式将不会被测试。 root images/jpg/ ;}#正则匹配location ~*.(gif|jpg|jpeg)$ {       #所有静态文件直接读取硬盘root pic ;#expires定义用户浏览器缓存的时间为3天,如果静态页面不常更新,可以设置更长,这样可以节省带宽和缓解服务器的压力expires 3d; }#error_page  404              /404.html;# redirect server error pages to the static page /50x.htmlerror_page   500 502 503 504  /50x.html;location = /50x.html {root   html;} }
}

在这里插入图片描述

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

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

相关文章

java8 流到底是什么呢?

引入背景: 1、想像写SQL那样操作集合 2、为了提高性能,需要并行处理,并利用多核架构 流到底是什么呢? 流是Java API的新成员,它允许你 以声明性方式处理数据集合(通过查询语句来表达,而不是临时…

springboot+vue3组合,对接支付宝付款第一节:内网穿透

springbootvue3组合,对接支付宝付款第一节:内网穿透!接下来会为大家展示,使用java的springboot搭建一个简单的后台。提供业务接口。实现在线下单,支付。支付宝付款的案例。 前端页面布局我们使用vue3element-plus来实现绘制。 今天是第一个…

海康实时监控预览视频流接入web

我们采取的方案是后端获取视频流返回给前端,然后前端播放 海康开放平台海康威视合作生态致力打造一个能力开放体系、两个生态圈,Hikvision AI Cloud开放平台是能力开放体系的核心内容。它是海康威视基于多年在视频及物联网核心技术积累之上,…

Jmeter连接数据库报错Cannot load JDBC driver class‘com.mysql.jdbc.Driver’解决

问题产生: 我在用jmeter连接数据库查询我的接口是否添加数据成功时,结果树响应Cannot load JDBC driver class com.mysql.jdbc.Driver 产生原因: 1、连接数据库的用户密码等信息使用的变量我放在了下面,导致没有取到用户名密码IP等信息,导致连接失败 2、jmeter没有JDB…

CodeGPT--(Visual )

GitCode - 开发者的代码家园 gitcode.com/ inscode.csdn.net/liujiaping/java_1706242128563/edit?openFileMain.java&editTypelite marketplace.visualstudio.com/items?itemNameCSDN.csdn-codegpt&spm1018.2226.3001.9836&extra%5Butm_source%5Dvip_chatgpt_c…

Elasticsearch介绍以及基本操作

目录 一、Elasticsearch介绍 二、关于Elasticsearch的基本操作 (1)索引操作 (2)文档操作 三、域的属性 (1)index (2)type (3)store 一、Elasticsearc…

使用Go语言编写安全的HTTP代理服务器

构建一个安全的HTTP代理服务器是至关重要的,因为这可以保护用户的数据和隐私。让我们来看看如何使用Go语言编写一个安全的HTTP代理服务器。 首先,确保你的代理服务器使用HTTPS协议进行通信。HTTPS使用SSL/TLS加密来保护数据传输,可以确保数据…

源聚达科技:抖店的专营店怎么开

在数字化浪潮的推动下,抖音平台不仅为人们提供了丰富的娱乐内容,也成为了电商的新战场。不少创业者和品牌商纷纷选择在抖音上开设自己的专营店,以此抓住流量红利,拓宽销售渠道。那么,如何在抖音平台上成功开设一家专营…

每日一题——LeetCode1346.检查整数及其两倍数是否存在

方法一 循环查找 用indexOf查找每个元素的两倍是否存在在数组中&#xff0c;找到了就直接return true&#xff0c;循环结束还没找到就return false var checkIfExist function(arr) {for(let i0;i<arr.length;i){let index arr.indexOf(arr[i]*2)if(index>0 &&…

听力下降为什么会影响到言语感知?

一、听力障碍对阈值、听觉频率范围和分辨能力的影响 听力障碍使得听障者的听敏度降低&#xff0c;提高了阈值&#xff0c;不利于言语信号的接收。听障者听力阈值的变化在不同频率并不相同&#xff0c;一般而言&#xff0c;高频部分的听力损失往往大于低频部分&#xff0c;而言…

fatal error:require():Failed opening required

今天部署网站遇到了个错误 fatal error:require():Failed opening required 这个错误经常遇到 大多是网站 是开启了 open_basedir 但今天这个错误很神奇 先说解决方法 1. 检测一下是不是真的 不存在这个文件 即使100%确定 也建议你再仔细看一下 这个文件存不存在 今天我遇…

Linux:利用匿名管道构建进程池

文章目录 进程池实现进程池创建信道和进程发送任务释放资源 进程池代码总结 本篇的主题是借助前面所学的基础管道实现一个进程池&#xff0c;那么在实现进程池前先了解进程池是什么&#xff0c;进程池有什么意义&#xff0c;进而对于进程池有一个基本的把握 进程池 给定一个进…

学习笔记-李沐动手学深度学习(四)(12-13,权重衰退、L2正则化、Dropout)

总结 【trick】过拟合及正则化项参数的理解 实际数据都有噪音&#xff0c;一般有噪音后&#xff0c;模型实际学习到的权重w就会比 理论上w的最优解&#xff08;即没有噪音时&#xff09;大。&#xff08;QA中讲的&#xff09; 【好问题】 &#xff08;1&#xff09;不使用正…

svg 属性详解:填充与边框

svg 属性详解&#xff1a;填充与边框 1 颜色和透明度2 填充规则 fill-rule3 边框样式3.1 stroke-width3.2 stroke-linecap3.3 stroke-linejoin3.4 stroke-dasharray 1 颜色和透明度 图像都有颜色&#xff0c;svg 中可以使用属性 fill 和 stroke 来修改图形的颜色。fill 属性设置…

九州金榜|家庭教育中孩子厌学原因及解决办法

作为家长我们希望自己的孩子热爱学习&#xff0c;并取得优异成绩。但是&#xff0c;在现实中&#xff0c;孩子往往会出现厌学情绪&#xff0c;作为家长为此感到非常困扰。如何帮助孩子克服厌学情绪&#xff0c;九州金榜家庭教育将会带大家找出背后的原因&#xff0c;并寻找有效…

Tortoise-tts Better speech synthesis through scaling——TTS论文阅读

笔记地址&#xff1a;https://flowus.cn/share/a79f6286-b48f-42be-8425-2b5d0880c648 【FlowUs 息流】tortoise 论文地址&#xff1a; Better speech synthesis through scaling Abstract: 自回归变换器和DDPM&#xff1a;自回归变换器&#xff08;autoregressive transfo…

SpringSecurity(15)——OAuth2密码模式

工作流程 将用户和密码传过去&#xff0c;直接获取access_token&#xff0c;用户同意授权动作是在第三方应用上完成&#xff0c;而不是在认证服务器&#xff0c;第三方应用申请令牌时&#xff0c;直接带用户名和密码去向认证服务器申请令牌。这种方式认证服务器无法判断用户是…

网站服务器中毒或是被入侵该怎么办?

随着互联网的普及和发展&#xff0c;网站服务器已经成为了企业和个人存储数据、展示信息的重要平台。然而&#xff0c;网络安全问题也日益突出&#xff0c;其中网站服务器中毒或被入侵的事件时有发生。一旦发生这种情况&#xff0c;不仅会导致网站无法正常运行&#xff0c;还可…

阿里云负载均衡对接

1 、开通负载均衡产品 2 、ALB / NLB / CLB ALB&#xff1a; 应用型负载均衡 &#xff0c; 给定对应服务域名与当前实例DNS绑定之后即可使用 支持&#xff1a; HTTP/HTTPS/QUIC等应用层流量协议 NLB&#xff1a; 网络型负载均衡 支持&#xff1a; TCP / UDP / TCPSSL C…

浏览器——HTTP缓存机制与webpack打包优化

文章目录 概要强缓存定义开启 关闭强缓存协商缓存工作机制通过Last-Modified If-Modified-Since通过ETag If-None-Match 不使用缓存前端利用缓存机制&#xff0c;修改打包方案webpack 打包webpack 打包名称优化webpack 默认的hash 值webapck其他hash 类型配置webpack打包 web…