[Linux安全运维] Nginx相关

Nginx相关

1. 概述

Nginx是一种Web服务器,其具有高并发、高负荷的能力,具有以下优点:

  1. 稳定、系统资源消耗少、占用内存较少。
  2. 软件安装包小且定制化强。
  3. 具有高并发能力,可处理30000-50000个请求。

Nginx作为静态页面的web服务器,其主要考量其性能,非常注重效率。

配置文件(最基本的配置文件):

配置文件主要分为三个区块:全局块、events块和http块。

# 全局块
worker_processes  1;  
# 事件区块
events {worker_connections  1024;
}
# http区块
http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;server {listen       80;server_name  localhost; #改为IP地址# 反向代理location / {root   html; #存放目录index  index.html index.htm;}# 错误页面路由error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}
}

全局块:用于存放niginx服务器的整体配置,包括相关的进程数、进程ID、存放路径、日志存放路径、用户组等信息。

events块:用于存放niginx服务器和用户连接的相关配置。

http块:用于存放一些服务器访问控制和第三方配置,包括http全局块和server块。

2. 反向代理

2.1 反向代理相关

客户端访问时,不需要进行配置就可以进行访问。反向代理服务器会接收客户端的请求,然后反向代理服务器去选择访问,将获取的数据返回给客户端。这样的好处是,使用反向代理服务器可以隐藏真实服务器的IP,暴露的是代理服务器的IP

配置文件:

#接口端
location /police/ {proxy_pass   http://192.168.1.1:8852/police/;proxy_redirect default;proxy_http_version 1.1;proxy_connect_timeout   60;proxy_send_timeout      60;proxy_read_timeout      90;
}

如果遇到以/police 请求开头的接口,访问http://192.168.1.1:8852/police/。

若想要定义多个端口的反向代理,需要修改代理头(location /police/)和访问的IP地址(proxy_pass http://192.168.1.1:8852/police/;)。

2.2 正向代理

局域网中用户要访问Internet,通过代理服务器来访问服务器,则需要正向代理服务器。

3. 负载均衡

将请求从发送到单个服务器上变为发送到多个服务器上,由此实现负载均衡。

#动态服务器组
upstream dynamic_zuoyu {server localhost:8080;  #tomcat 7.0server localhost:8081;  #tomcat 8.0server localhost:8082;  #tomcat 8.5server localhost:8083;  #tomcat 9.0}

实现负载均衡有4种基本方法:轮询法、weight权重模式、ip_hash、least_conn。

方法解释
轮询法默认方式
weight权重根据权重分配
ip_hash依据ip分配
least_conn依据最少连接时间分配

3.1 实现方式

  1. 轮询法(default):

    每个请求按照时间顺序逐一分配到各个服务器

    #动态服务器组
    upstream dynamic_zuoyu {server localhost:8080;  #tomcat 7.0server localhost:8081;  #tomcat 8.0server localhost:8082;  #tomcat 8.5server localhost:8083;  #tomcat 9.0# server 参数#fail_timeout 最大失败时间#max_fails	设置在fail_timeout参数设置的时间内最大失败次数,超过则认为停机#fail_time	服务器会被认为停机的时间长度,默认为10s#backup	标记该服务器为备用服务器,当主服务器停止时,请求会被发送到它这里#down	标记服务器永久停机
    }
    
  2. weight权重(加权轮询):

    指定轮询机率,通过weight的权重来控制访问,访问比率和weight成正比。

    #动态服务器组
    upstream dynamic_zuoyu {server localhost:8080   weight=2;  #tomcat 7.0server localhost:8081;  #tomcat 8.0server localhost:8082   backup;  #tomcat 8.5server localhost:8083   max_fails=3 fail_timeout=20s;  #tomcat 9.0
    }
    
  3. ip_hash:

    通过哈希算法处理请求,当用户再次访问某服务器时,会自动进行定位,每个请求按访问ip的hash结果进行分配,实现每个用户固定访问一个后端服务器。

    #动态服务器组
    upstream dynamic_zuoyu {ip_hash;    #保证每个访客固定访问一个后端服务器server localhost:8080   weight=2;  #tomcat 7.0server localhost:8081;  #tomcat 8.0server localhost:8082;  #tomcat 8.5server localhost:8083   max_fails=3 fail_timeout=20s;  #tomcat 9.0
    }
    
  4. least_conn:

    把请求转发给连接数较少的后端服务器。

    #动态服务器组
    upstream dynamic_zuoyu {least_conn;    #把请求转发给连接数较少的后端服务器server localhost:8080   weight=2;  #tomcat 7.0server localhost:8081;  #tomcat 8.0server localhost:8082 backup;  #tomcat 8.5server localhost:8083   max_fails=3	fail_timeout=20s;  #tomcat 9.0
    }
    

4. 动静分离

将动态页面与静态页面由不同的服务器来解析。

配置文件:

#访问静态资源服务器
location /image/ {root   /var/filecenter/;
}
location /static/ {root   /var/filecenter/;
}
location /car/ {root   /var/filecenter/;
}
location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|js|css)$ {root /Users/dalaoyang/Downloads/static;
}
#动态页面访问后台服务
#接口端location /police/ {proxy_pass   http://192.168.1.1:8852/police/;proxy_redirect default;proxy_http_version 1.1;proxy_connect_timeout   60;proxy_send_timeout      60;proxy_read_timeout      90;}

5. 常用命令

yum install nginx	安装nginx
netstat -anput|grep nginx 查看nginx进程
netstat -nltp	查看服务器端口占用情况
cd /usr/local/nginx/sbin/
./nginx  启动
./nginx -s stop  停止
./nginx -s quit  安全退出
./nginx -s reload  重新加载配置文件  如果我们修改了配置文件,就需要重新加载。
ps aux|grep nginx  查看nginx进程

6. 完整配置文件


#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 {listen       80;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {root   html;index  index.html index.htm;}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {#    proxy_pass   http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {#    root           html;#    fastcgi_pass   127.0.0.1:9000;#    fastcgi_index  index.php;#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;#    include        fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {#    deny  all;#}}# another virtual host using mix of IP-, name-, and port-based configuration##server {#    listen       8000;#    listen       somename:8080;#    server_name  somename  alias  another.alias;#    location / {#        root   html;#        index  index.html index.htm;#    }#}# HTTPS server##server {#    listen       443 ssl;#    server_name  localhost;#    ssl_certificate      cert.pem;#    ssl_certificate_key  cert.key;#    ssl_session_cache    shared:SSL:1m;#    ssl_session_timeout  5m;#    ssl_ciphers  HIGH:!aNULL:!MD5;#    ssl_prefer_server_ciphers  on;#    location / {#        root   html;#        index  index.html index.htm;#    }#}}

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

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

相关文章

【《流畅的python》3.2-3.3节学习笔记】

目录 前言字典推导dict.setdefault总结 前言 本文为《流畅的python》的3.2-3.3节的学习笔记。 字典推导 DIAL_CODES [(86, China),(91, India),(1, United States),(62, Indonesia),(55, Brazil),(92, Pakistan),(880, Bangladesh),(234, Nigeria),(7, Russia),(81, Japan),…

linux命令: ssh的使用

ssh隧道连通aws亚马逊云 ssh -D 7017 -i "/cygdrive/e/tbqapps2/cfg/*****.pem" adminec2-43-207-84-117.ap-northeast-1.compute.amazonaws.com ssh -o ServerAliveInterval30 -fN -D 8080 root39.105.185.11ssh -fN -D 7002 -i "D:\tbqapps2\cfg\******.pem&…

Oracle 23ai 中的重要新特性 VECTOR 数据类型

Oracle 23ai 中的 VECTOR 数据类型是 Oracle 数据库在 AI 领域的一个重要新特性,它允许用户以向量的形式存储数据,并在这些向量的基础上进行高效的搜索和分析。以下是对 Oracle 23ai VECTOR 数据类型的详细解析: 参考官方文档地址 https://d…

【Ubuntu-18.04.6 LTS (Bionic Beaver)】串口无法root登录解决方案

root用户无法再窗口登录 用户界面登录提示 soory that didnot work 解决方案 GDM 配置 /etc/gdm3/custom.conf 中增加或删除注释 [security] AllowRoottrue重启服务 service gdm restart确认 PAM 配置 GDM 使用 PAM 进行认证,可能 PAM 配置中限制了 root 登录…

GitHub网页打开慢的解决办法

有时候看资料絮叨github网页打不开,经百度后,发下下面的方法有效。 1)获取github官网ip 我们首先要获取github官网的ip地址,方法就是打开cmd,然后ping 找到github的地址:20.205.243.166 2)配…

体验升级!贵州“森林之城”携苏州金龙新V系谱写高端旅运新篇章

自今年出台文旅“四免一多一减”方案以来,贵州省围绕旅游资源,着力打造亮点,不断提升产品供给水平,旅游市场持续火爆。近日,贵州森林之城旅运公司从苏州金龙批量采购50座海格新V系豪华大巴,为贵州高端旅游市…

域名系统DNS的工作原理和服务搭建

文章目录 域名解析和DNSDNS概念 DNS服务工作原理递归查询迭代查询递归和迭代的区别DNS缓存 DNS服务器的安装whoisDNS软件bind DNS主服务器实现1.在主配置文件中定义区域2.定义区域解析库文件各种资源类型解析库记录定义项 3.配置识别区域库文件4.重启named服务启用DNS客户端缓存…

【EasyExcel】动态替换表头内容并应用样式

1.定义实体类 import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ContentStyle; import com.alibaba.excel.metadata.BorderStyleEnum; import com.alibaba.excel.metadata.VerticalAlignmentEnum; import com.alibaba.excel.metadata.…

Java--static详解

1.static静态的意义,加在属性面前就为静态属性;加在方法面前就为静态方法 2.如图,定义了一个静态属性age,一个非静态属性score; 输出语句一共四句,其中第三句报错,由于静态和非静态的区别&…

微气象仪的工作原理

型号推荐:云境天合TH-WQX5】风力发电传感器在风力发电系统中起着至关重要的作用,它们能够实时监测和记录各种关键参数,为风力发电机组的控制提供数据支持,从而确保风力发电系统的安全、高效运行。以下是对风力发电传感器的详细解析…

程序员有哪些职位?

互联网行业中的岗位种类繁多、五花八门,学习一门技术后,重要的是找到合适的职业发展方向,程序员有哪些职业发展方向?一起来看看吧! 1.架构师 架构师需要程序员有强大的技术实力和深厚的技术积累。建筑师的成长需要经…

使用Docker制作python项目镜像

各docker桌面版本集合:如果提示新版本系统不支持,可下载旧版本 我也分享在下面。 链接: https://pan.baidu.com/s/1HvaO2wOIE3pNE0bM7Qm3sA?pwdg7ky 提取码: g7ky –来自百度网盘超级会员v2的分享 来源参考:https://zhuanlan.zhihu.com/p/65…

one-hot编码案例

import jieba from tensorflow.keras.preprocessing.text import Tokenizer # 安装了新版本的tensorflow # from keras.preprocessing.text import Tokenizer # 系统里面没有按照新版本的tensorflow 直接使用keras# pytroch tensorflow1.xxxx (keras) # 导入用于对象保存与加…

uniapp 九宫格抽奖

<template><view class"container"><view class"navleft" click"navback"><image src"/static/cj/left.png" mode""></image></view><view class"navtitle">抽奖</…

SAP S4 销售组的定义和分配

spro-企业结构-定义-销售与分销-维护销售组 新增一个记录 spro-企业结构-分配-销售与分销-给销售办公室分配销售组

JavaScript-map方法

map可以遍历数组处理数据&#xff0c;并返回新的数组 语法&#xff1a; ​const arr[元素1&#xff0c;元素2&#xff0c;元素3] const newarrarr.map(function(数组的元素,数组的索引)){return 新元素 } const arr[blue,red,green]const newarrarr.map(function(ele,index){co…

详细介绍TS中的枚举

在 TypeScript 中&#xff0c;枚举&#xff08;Enums&#xff09;是一个用于表示常见常量集合的便利特性。枚举是一种特殊的类型&#xff0c;它们允许你为一组值定义一个固定的命名空间。枚举常用于模式匹配的 switch 语句和提供更可读的类型检查。 枚举的基本语法&#xff1a…

应用案例 | 台积电为保证光罩运输质量选择MSR冲击振动记录仪!内含台积电工程师专访

晶圆运输需要注意什么&#xff1f; 晶圆运输是半导体制造过程中极为关键和敏感的一环。在晶圆运输过程中&#xff0c;需要注意以下几点&#xff1a; 1.静电防护 晶圆非常容易受到静电的干扰&#xff0c;因此在运输过程中需要遵守严格的静电防护措施。使用适当的静电防护包装…

Bugly并非无所不能

在 iOS 应用因为内存占用过大而被系统 killed 的情况下&#xff0c;Bugly 以及大多数崩溃报告工具是无法捕获到这种类型的崩溃信息的。原因在于&#xff0c;当系统由于内存压力过大而终止应用时&#xff0c;是直接将应用进程杀死&#xff0c;不会触发常规的崩溃处理流程&#x…

Blender 中导出模型fbx

准备模型&#xff1a;确保你的模型已经完成&#xff0c;并且所有的材质、纹理等都已设置好。 应用所有变换&#xff1a; 选择模型&#xff0c;按下 CtrlA&#xff0c;选择 "All Transforms" 以应用所有的变换&#xff08;位置、旋转和缩放&#xff09;。 导出模型&a…