[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.pswp.cn/diannao/44817.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/44817.shtml
英文地址,請注明出處:http://en.pswp.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…