Nginx安装与配置

news2024/11/29 4:35:44

Nginx安装与配置

    • 一、简介
    • 二、安装
    • 三、功能与配置
      • 3.1、正向代理
      • 3.2、反向代理
      • 3.3、负责均衡
      • 3.4、ip_hash
      • 3.5、轮询
      • 3.6、加权轮询
    • 四、nginx安全相关配置
    • 五、常用命令

一、简介

Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。

二、安装

安装命令
yum -y install nginx

启动命令
/usr/sbin/nginx -c /etc/nginx/nginx.conf

主要配置文件
/etc/nginx/nginx.conf
/etc/nginx/conf.d/default.conf
在nginx.cong中  include /etc/nginx/conf.d/*.conf; 表示默认加载 conf.d下所有配置文件

三、功能与配置

3.1、正向代理

客户端 <一> 代理 一>服务端
正向代理服务器位于客户端和服务器之间,为了从服务器获取数据,客户端要向代理服务器发送一个请求,并指定目标服务器,代理服务器将目标服务器返回的数据转交给客户端。
这里客户端需要要进行一些正向代理的设置的。

正向代理中被代理的是客户端的请求

在这里插入图片描述

3.2、反向代理

客户端 一>代理 <一> 服务端
反向代理,客户端对代理是无感知的,客户端不需要任何配置就可以访问,客户端将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址。

反向代理为常用配置,至于访问哪一个服务器,交给代理服务器处理

在这里插入图片描述

3.3、负责均衡

分为:内置策略、扩展策略。
内置策略:ip_hash、轮询、加权轮询。
扩展策略:自定义。

3.4、ip_hash

ip_hash:通过固定IP请求分配到固定IP服务器
在这里插入图片描述
nginx配置:

upstream web_serverr {
   ip_hash;
   server localhost:8080 weight=1 max_conns=10000 max_fails=3 fail_timeout=15;
   server localhost:8081 weight=1 max_conns=10000 max_fails=3 fail_timeout=15;
   server localhost:8082 weight=1 max_conns=10000 max_fails=3 fail_timeout=15;
}
server {
    listen      8888;
    server_name  127.0.0.1;

    location /web-api{
        access_log /etc/nginx/logs/https_web_api.log;
        proxy_pass             http://web_server/web-api;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    }

    location  /web-h5/ {
        add_header Access-Control-Allow-Origin *;
        alias   /web/h5/;
    }
    
       
}

3.5、轮询

在这里插入图片描述
nginx配置:

upstream web_serverr {
   server localhost:8080 weight=1 max_conns=10000 max_fails=3 fail_timeout=15;
   server localhost:8081 weight=1 max_conns=10000 max_fails=3 fail_timeout=15;
   server localhost:8082 weight=1 max_conns=10000 max_fails=3 fail_timeout=15;
}
server {
    listen      8888;
    server_name  127.0.0.1;

    location /web-api{
        access_log /etc/nginx/logs/https_web_api.log;
        proxy_pass             http://web_server/web-api;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    }

    location  /web-h5/ {
        add_header Access-Control-Allow-Origin *;
        alias   /web/h5/;
    }
    
       
}

3.6、加权轮询

在这里插入图片描述
nginx配置:

upstream web_serverr {
   server localhost:8080 weight=2 max_conns=10000 max_fails=3 fail_timeout=15;
   server localhost:8081 weight=3 max_conns=10000 max_fails=3 fail_timeout=15;
   server localhost:8082 weight=5 max_conns=10000 max_fails=3 fail_timeout=15;
}
server {
    listen      8888;
    server_name  127.0.0.1;

    location /web-api{
        access_log /etc/nginx/logs/https_web_api.log;
        proxy_pass             http://web_server/web-api;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    }

    location  /web-h5/ {
        add_header Access-Control-Allow-Origin *;
        alias   /web/h5/;
    }
    
       
}

四、nginx安全相关配置

4.1、http中的配置

server_tokens off;
    server_names_hash_bucket_size 128;
    client_header_buffer_size 32k;
    large_client_header_buffers 4 64k;

    client_max_body_size 50m;

    sendfile on;
    tcp_nopush  on;
    tcp_nodelay on;

    keepalive_timeout 80;

    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    fastcgi_buffer_size 64k;
    fastcgi_buffers 4 64k;
    fastcgi_busy_buffers_size 128k;
    fastcgi_temp_file_write_size 256k;
    proxy_buffer_size 64k;
    proxy_buffers   4 32k;
    proxy_busy_buffers_size 64k;

    gzip on;
    gzip_min_length  1k;
    gzip_buffers     4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 2;
    gzip_types       text/plain application/x-javascript text/css application/xml;
    gzip_vary on;

    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  /var/log/nginx/access.log  main;

4.2、X-XSS-Protection配置

add_header X-XSS-Protection 1;

4.3、静态资源安全配置

Access-Control-Allow-Origin配置为固定IP

location  /web-pc/ {
    #add_header Access-Control-Allow-Origin *;
	add_header Access-Control-Allow-Origin http://192.169.80.1;
	add_header X-XSS-Protection 1;
	add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
	add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
    if ($request_method = 'OPTIONS') {
       	return 204;
   	}
   	add_header X-Frame-Options SAMEORIGIN;
   	add_header Content-Security-Policy "worker-src 'self'";
   	add_header X-Content-Type-Options nosniff;
   	alias   /web/h5/;
}

4.4、静态文件下载配置

location  /web-download/ {
	valid_referers 192.168.80.1 192.168.80.2;
	if ($invalid_referer) {
		return 403;
	}
	if ($request_uri ~* ^.*\/(.*)\.(xls|xlsx|java|txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx|jpg|png)(\?attname=([^&]+))$) {
		add_header Content-Disposition "attachment;filename=$arg_attname";
	}
	add_header Access-Control-Allow-Origin *;
	alias   /web/download/;
}

五、常用命令

启动命令
/usr/sbin/nginx -c /etc/nginx/nginx.conf

重新加载配置文件
nginx -s reload

强制停止服务
nginx -s stop

安全退出服务
nginx -s quit

参考链接:
https://www.cnblogs.com/Lxxv5/p/16529477.html#DHrQB2bW
https://www.fke6.com/html/93207.html

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

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

相关文章

Windows11 安装 CUDA/cuDNN+Pytorch

一、准备工作&#xff1a; 查看torch版本&#xff1a;进入python交互环境&#xff1a; >>>import torch >>>torch.__version__ 查看cuda版本&#xff1a;CMD窗口 nvcc --version 如果版本不一致&#xff0c;需要卸载再重装。 二、安装 Windows 安装 CU…

【裸机开发】指定外设根时钟配置实验(三)—— 寄存器分析篇(PERCLK_CLK_ROOT、IPG_CLK_ROOT)

前面已经完成了 PLL1 和 8 路 PFD 的初始化&#xff0c;至于其他 PLL 路&#xff0c;等实际需要的时候再初始化也不迟。接下来我们就挑选几个具体的外设时钟进行配置。 假设我们要初始化下面两个根时钟PERCLK_CLK_ROOT、IPG_CLK_ROOT。&#xff08;中途可能还涉及到根时钟 AHB…

【01】如何在电脑上使用wink一键高清短视频

如何在电脑上使用wink一键高清优化短视频画质 文章目录 如何在电脑上使用wink一键高清优化短视频画质1.软件简介1.1痛点1.2解决方案 2.实际操作2.1准备工作2.1.1下载雷电模拟器2.1.2下载wink 2.2.安装软件2.2.1安装雷电模拟器2.2.2安装wink2.2.2.1在雷电模拟器中安装wink2.2.2.…

【操作系统】计算机操作系统知识点总结

文章目录 前言一、操作系统的概念与发展二、操作系统的结构与功能1、操作系统的结构2、操作系统的功能 三、进程管理1、进程2、进程的创建3、进程管理的实现4、进程控制块 四、内存管理1、内存2、内存管理3、内存管理的实现 五、文件系统1、文件系统2、文件系统的主要任务3、文…

微服务springcloud 03.Eureka实现高可用

01.运行时候项目图存在两个item service&#xff0c;和两个Eureka注册中心 02.在已有的项目中扩展service服务数量&#xff08;item service的数量变成两个&#xff09; 第一步&#xff1a;配置item service的启动参数 启动参数的优先级要高于yml文件的优先级 具体参数是&#…

两万字深入浅出yolov5+deepsort实现目标跟踪,含完整代码, yolov,卡尔曼滤波估计,ReID目标重识别,匈牙利匹配KM算法匹配

目录 一&#xff1a;前言 二&#xff1a;跟踪部分&#xff1a; ReID结构​编辑 第一帧&#xff08;生成track&#xff09; 第二帧 更新先验的预测值 状态矩阵的初始化 对预测值进行更新&#xff08;矫正&#xff09;&#xff1a; 匹配完成&#xff0c;进行矫正的更新&…

CSC改派+延期|影像学医生赴英国伦敦国王学院从事访学研究

因美国拒签&#xff0c;又临近派出截止期限。为避免出国指标作废&#xff0c;Q医生希望获得英国高校的邀请函&#xff0c;以申请CSC的改派并延期。我们为其落实了世界名校-英国伦敦国王学院访问学者职位&#xff0c;导师的研究方向属前沿热点&#xff0c;具有广阔的发展前景。Q…

C++【二叉树进阶试题】

✨个人主页&#xff1a; 北 海 &#x1f389;所属专栏&#xff1a; C/C相关题解 &#x1f383;操作环境&#xff1a; Visual Studio 2019 版本 16.11.17 文章目录 606. 根据二叉树创建字符串102. 二叉树的层序遍历107. 二叉树的层序遍历 II236. 二叉树的最近公共祖先JZ36 二叉搜…

位姿估计 | 从目标特征点检测到目标体坐标系相对于相机坐标系的位姿估计过程

目录 引言技术流程1. PNP介绍2. ICP介绍a. 利用ICP求解目标相对相机的位姿b. 利用ICP求解相机帧间运动 引言 本文接着分享空间目标位姿跟踪和滤波算法中用到的一些常用内容&#xff0c;希望为后来者减少一些基础性内容的工作时间。以往分享总结见文章&#xff1a;位姿跟踪 | 相…

当你全力以赴世界也会为你让路,23级人大女王金融硕士准备中

当你全力以赴&#xff0c;世界也会为你让路&#xff0c;在申报人民大学与加拿大女王大学金融硕士&#xff08;国际班&#xff09;项目的路上你真的努力了吗&#xff1f; 记得曾经在知乎上看过一个问题“什么事情给你的生活带来什么改变”&#xff0c;下边有很多人回答说&#x…

【每日算法】【202. 快乐数】

☀️博客主页&#xff1a;CSDN博客主页 &#x1f4a8;本文由 我是小狼君 原创&#xff0c;首发于 CSDN&#x1f4a2; &#x1f525;学习专栏推荐&#xff1a;面试汇总 ❗️游戏框架专栏推荐&#xff1a;游戏实用框架专栏 ⛅️点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd;&…

【Linux】—— 详解计算机体系结构

前言&#xff1a; 在之前&#xff0c;我们已经对Linux环境开发的基本工具进行了详细的学习。接下来&#xff0c;我们将要学习的第一大块便是关于计算机体系结构的知识&#xff01;&#xff01; 目录 前言 &#xff08;一&#xff09;冯诺依曼体系结构 基本介绍 木桶原理 …

SpringSecurity实现前后端分离登录授权详解

在介绍完SpringSecurity实现前后端分离认证之后&#xff0c;然后就是SpringSecurity授权&#xff0c;在阅读本文章之前可以先了解一下作者的上一篇文章SpringSecurity认证SpringSecurity实现前后端分离登录token认证详解_山河亦问安的博客-CSDN博客。 目录 1. 授权 1.1 权限系…

线程间的通信机制与生产者消费者案例

线程间的通信机制与生产者消费者案例 线程间通信 为什么要处理线程间通信&#xff1a; 当我们需要多个线程来共同完成一件任务&#xff0c;并且我们希望他们有规律的执行&#xff0c;那么多线程之间需要一些通信机制&#xff0c;可以协调他们的工作&#xff0c;以此实现多线…

中空百叶玻璃隔断怎么组装

以下是中空百叶玻璃隔断的组装步骤&#xff1a; 1. 准备材料&#xff1a;中空百叶玻璃、接头、U型槽、挂件、固定螺钉等。 2. 根据实际需要&#xff0c;将中空百叶玻璃按照尺寸进行切割。 3. 在地面上铺上一张软垫&#xff0c;将切好的玻璃放置在垫子上&#xff0c;然后在两侧标…

自动化部署工具 drone 部署文档 (使用于 vue java 部署 其他自行研究)

1.准备好docker环境 drone 官网 Drone CI – Automate Software Testing and Delivery 推荐使用宝塔傻瓜式一键安装宝塔面板 - 简单好用的Linux/Windows服务器运维管理面板 安装好docker环境之后开始部署容器 这里用到的git版本软件是gogs,其他自己研究 docker版的gogs和实…

Linux内存管理 —— 文件系统缓存和匿名页的交换

转自&#xff1a;https://www.cnblogs.com/wangshaowei/p/14089132.html 文件页 内存回收&#xff0c;也就是系统释放掉可以回收的内存&#xff0c;比如缓存和缓冲区&#xff0c;就属于可回收内存。它们在内存管理中&#xff0c;通常被叫做文件页&#xff08;File-backed Pag…

B045-jQuery案例实战BootStrap

目录 一、BootStrap概述二、BootStrap使用1.起步1.下载或放入BootStrap文件到本地工程里2.在html代码中引入1个css文件和两个js文件3.复制模板代码到本地html文件里会自动应用成bootStrap图样中的效果0.实战案例-环境准备0.实战案例-基本模板 2.布局容器3.栅格系统4.常用组件表…

echarts里type为custom,自定义配置renderItem为柱状形状

echarts里type为custom&#xff0c;自定义配置renderItem为柱状形状 echarts里type为custom&#xff0c;自定义配置renderItem为柱状形状 echarts里type为custom&#xff0c;自定义配置renderItem为柱状形状 主要功能&#xff1a;文本超过柱状形状就隐藏否则就显示&#xff0c;…

风口上的AIGC,技术人才动不动就年薪百万?

2023年&#xff0c;职场人都在讨论什么&#xff1f; 自今年3月以来&#xff0c;随着ChatGPT应用持续走俏&#xff0c;AIGC领域抢人大战盛况空前。随之而来的便是“AI取代人类”“10亿打工人被革命”&#xff0c;AI的发展速度和步伐&#xff0c;超乎我们预期&#xff0c;也影响…