RHCE——四:web服務器的高級優化方案

文章目錄

    • 一、基于https協議的靜態網站
      • 1.概念解釋
      • 2. SSL協議提供的服務:
      • 3.web服務的配置詳解
        • web服務的常用種類
        • nginx的基本配置參數
      • 4.使用nginx的http_ssl模塊建立加密認證網站
        • 查看
        • 配置文件:
        • ssl配置文件的主要參數
        • 實驗一:搭建nginx+ssl的加密認證web服務器
          • 代碼解釋:
        • 實驗二:組建多個子目錄網站www.openlab.com

一、基于https協議的靜態網站

1.概念解釋

HTTPS(全稱:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext TransferProtocol Secure,超文本傳輸安全協議),是以安全為目標的HTTP通道。

HTTPS并不是一個新協議,而是HTTP+SSL(TLS)。原本HTTP先和TCP(假定傳輸層是TCP協議)直接通信,而加了SSL后,就變成HTTP先和SSL通信,再由SSL和TCP通信,相當于SSL被嵌在了HTTP和TCP之間

SSL 是“Secure Sockets Layer”的縮寫,中文叫做“安全套接層”

2. SSL協議提供的服務:

**

  • 認證用戶和服務器,確保數據發送到正確的客戶機和服務器

  • 加密數據以防止數據中途被竊取

  • 維護數據的完整性,確保數據在傳輸過程中不被改變

注:關于https的安全通信機制,我會專門出一篇博文來介紹,這里不做過多贅述

3.web服務的配置詳解

web服務的常用種類

Apache
Nginx
openresty
大廠自研

nginx的基本配置參數

nginx全局配置

http {
include /etc/nginx/mime.types; #可解析的靜態資源類型
default_type application/octet-stream; #用來配置Nginx響應前端請求默認的MIME類
型
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; #訪問日志
sendfile on; # Nginx服務器是否使用sendfile()傳輸文件
#tcp_nopush on; # 當包累計到一定大小后就發送,默認0.2s一次
keepalive_timeout 65; # 長連接超時時間
子配置文件
3.5.Nginx配置
3.5.1.nginx虛擬主機
默認情況下nginx只能發布一個站點
如果要發布多個站點需要搭建多臺nginx來滿足,如果這樣會浪費太多資源
為解決上述問題,啟用nginx的虛擬主機即可
虛擬主機有兩種模式,基于IP或者基于域名
3.5.2基于IP的虛擬主機
#gzip on; #可以使網站的css、js 、xml、html 等靜態資源在傳輸時
進行壓縮
include /etc/nginx/conf.d/*.conf; #指定子配置文件
}

子配置文件

/etc/nginx/conf.d/default.conf
server {
listen 80; #監聽端口
server_name localhost; #服務器的名字
location / {
root /usr/share/nginx/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 /usr/share/nginx/html;
}
}

4.使用nginx的http_ssl模塊建立加密認證網站

查看
[root@server ~]# nginx  -V
# 看是否有--with-http_ssl_module模塊,否則需要安裝mod_ssl
配置文件:
  • 證書文件:/……/xxxx.crt
  • 私鑰文件:/……/xxxx.key
ssl配置文件的主要參數
[root@server ~]# vim  /etc/nginx/nginx.conf   # 主配置文https段,默認為注釋,可以取消注釋
# Settings for a TLS enabled server.
#
#    server {
#        listen       443 ssl http2;    # 監聽443端口
#        listen       [::]:443 ssl http2;   
#        server_name  _;                  # 域名
#        root         /usr/share/nginx/html;    # 網頁默認
#
#        ssl_certificate "/etc/pki/nginx/server.crt";   # 證書路徑
#        ssl_certificate_key "/etc/pki/nginx/private/server.key";  # 私鑰文件路徑
#        ssl_session_cache shared:SSL:1m;
#        ssl_session_timeout  10m;
#        ssl_ciphers PROFILE=SYSTEM;
#        ssl_prefer_server_ciphers on;
#
#        # Load configuration files for the default server block.
#        include /etc/nginx/default.d/*.conf;
#
#        error_page 404 /404.html;
#            location = /40x.html {
#        }
#
#        error_page 500 502 503 504 /50x.html;
#            location = /50x.html {
#        }
實驗一:搭建nginx+ssl的加密認證web服務器

第一步:準備工作

# 恢復快照
[root@server ~]# setenforce  0           [root@server ~]# systemctl stop  firewalld[root@server ~]# systemctl disable  firewalld[root@server ~]# yum  install  nginx  mod_ssl -y[root@server ~]# systemctl start  nginx   # 啟動httpd[root@server ~]# systemctl enable  nginx  # 設置開機啟動

第二步:新建存儲網站數據文件的目錄

[root@server ~]# mkdir  -p  /www/zy
# 私用xftp將windows的zy網站數據文件上傳到/www/zy目錄中

第三步:制作證書

# 在/etc/nginx目錄下制作整數所用的私鑰文件zy.key
[root@server ~]# openssl  genrsa  -aes128  2048 > /etc/nginx/zy.key
Generating RSA private key, 2048 bit long modulus (2 primes)
............+++++
......................................................................................................................................................................................................+++++
e is 65537 (0x010001)
Enter pass phrase:             # 輸入加密私鑰的密碼123456
Verifying - Enter pass phrase: # 再輸一遍# 制作證書
[root@server ~]# openssl  req  -utf8  -new  -key  /etc/nginx/zy.key  -x509  -days  365  -out  /etc/nginx/zy.crt
Enter pass phrase for /etc/nginx/zy.key:    # 需要輸入加密私鑰的密碼
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
# 注意:下列證書信息項目,在面試時常問
Country Name (2 letter code) [AU]:86							  # 國家代碼
State or Province Name (full name) [Some-State]:shanxi			  # 省份
Locality Name (eg, city) []:xi'an								  # 城市
Organization Name (eg, company) [Internet Widgits Pty Ltd]:openlab# 公司
Organizational Unit Name (eg, section) []:RHCE                    # 部門
Common Name (e.g. server FQDN or YOUR name) []:server             # 主機名
Email Address []:andy@qq.com									  # 郵箱# 在加載SSL支持的Nginx并使用上述私鑰時除去必須的口令
[root@server ~]# cd  /etc/nginx
[root@server nginx]# cp  zy.key  zy.key.org
[root@server nginx]# openssl rsa -in zy.key.org -out zy.key
Enter pass phrase for zy.key.org:  # 輸入加密私鑰的密碼
writing RSA key

第五步:修改配置文件

[[root@server nginx]# cd  ~
[root@server ~]# vim  /etc/nginx/nginx.confserver {listen       443 ssl http2;server_name  172.25.254.101;root         /www/zy;ssl_certificate  /etc/nginx/zy.crt;ssl_certificate_key  /etc/nginx/zy.key;}
server {      # 輸入http跳轉到httpslisten 80;server_name 172.25.254.101;return 301 https://172.25.254.101;}

第六步:重啟服務

[root@server nginx]# cd  ~
[root@server ~]# nginx  -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@server nginx]# systemctl start nginx

第七步:測試

在windows端打開瀏覽器,輸入https://172.25.254.101,點擊高級->接受風險并繼續

在這里插入圖片描述
在這里插入圖片描述

代碼解釋:
openssl  genrsa  -aes128  2048 > /etc/nginx/zy.key

這條命令 openssl genrsa -aes128 2048 > /etc/nginx/zy.key 是用來生成一個帶有AES-128加密的2048位RSA私鑰,并將結果輸出到 /etc/nginx/zy.key 文件中。

具體來說:

openssl genrsa: 這是 OpenSSL 命令,用于生成RSA私鑰。
-aes128: 這個選項指定生成的私鑰使用AES-128位加密。
2048: 這個參數指定生成的RSA密鑰長度為2048位。
/etc/nginx/zy.key: 這部分將生成的私鑰輸出到 /etc/nginx/zy.key 文件中。
生成的私鑰文件 /etc/nginx/zy.key 將會被用作Nginx配置中的 ssl_certificate_key 指令所指定的SSL證書私鑰文件。這對于建立安全的HTTPS連接至關重要,確保通信的保密性和完整性。

server {listen       443 ssl http2;         # 服務器監聽在443端口上,使用SSL加密和HTTP/2協議server_name  192.168.48.130;      # 服務器名設置為IP地址192.168.48.130root         /www/zy;               # 網站的根目錄設置為/www/zyssl_certificate  /etc/nginx/zy.crt; # SSL證書文件路徑設置為/etc/nginx/zy.crtssl_certificate_key  /etc/nginx/zy.key; # SSL證書私鑰文件路徑設置為/etc/nginx/zy.key
}
實驗二:組建多個子目錄網站www.openlab.com

組建多個子目錄網站www.openlab.com,該網站有2個子目錄www.openlab.com/file和www.openlab.com/ftp,要求:

  • file數據使用http讀取
  • ftp數據使用https讀取

第一步:準備工作

# 恢復快照
[root@server ~]# setenforce  0           [root@server ~]# systemctl stop  firewalld[root@server ~]# systemctl disable  firewalld[root@server ~]# yum  install  nginx -y[root@server ~]# systemctl start  nginx   # 啟動nginx[root@server ~]# systemctl enable  nginx  # 設置開機啟動

第二步:新建網頁目錄并建立網頁

[root@server ~]# mkdir  -p  /www/file
[root@server ~]# mkdir  -p  /www/ftp
[root@server ~]# echo  "file"  >  /www/file/index.html  # 寫入網站數據
[root@server ~]# echo  "ftp"  >  /www/ftp/index.html

第三步:建立本地hosts域名映射

[root@server ~]# vim  /etc/hosts   # 添加如下內容
192.168.48.130  www.openlab.com

第四步:建立file網站

[root@server ~]# vim  /etc/nginx/nginx.conf 
server {listen       80;server_name  www.openlab.com;location   /file {alias /www/file/;index index.html index.htm;}}

第五步:建立https的ftp網站

# 制作私鑰
[root@server ~]# openssl  genrsa  -aes128  2048 > /etc/nginx/ftp.key
Generating RSA private key, 2048 bit long modulus (2 primes)
............+++++
......................................................................................................................................................................................................+++++
e is 65537 (0x010001)
Enter pass phrase:             # 輸入加密私鑰的密碼123456
Verifying - Enter pass phrase: # 再輸一遍# 制作證書
[root@server ~]# openssl  req  -utf8  -new  -key  /etc/nginx/ftp.key  -x509  -days  365  -out  /etc/nginx/ftp.crt
Enter pass phrase for /etc/nginx/ftp.key:    # 需要輸入加密私鑰的密碼
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
# 注意:下列證書信息項目,在面試時常問
Country Name (2 letter code) [AU]:86							  # 國家代碼
State or Province Name (full name) [Some-State]:shanxi			  # 省份
Locality Name (eg, city) []:xi'an								  # 城市
Organization Name (eg, company) [Internet Widgits Pty Ltd]:openlab# 公司
Organizational Unit Name (eg, section) []:RHCE                    # 部門
Common Name (e.g. server FQDN or YOUR name) []:server             # 主機名
Email Address []:andy@qq.com									  # 郵箱# 在加載SSL支持的Nginx并使用上述私鑰時除去必須的口令
[root@server ~]# cd  /etc/nginx
[root@server nginx]# cp  ftp.key  ftp.key.org
[root@server nginx]# openssl rsa -in ftp.key.org -out ftp.key
Enter pass phrase for ftp.key.org:  # 輸入加密私鑰的密碼
writing RSA key
[root@server ~]# vim  /etc/nginx/nginx.conf      # 編輯配置文件
server {listen       443 ssl http2;server_name  www.openlab.com;location /ftp {alias         /www/ftp;index  index.html  index.htm;}ssl_certificate       "/etc/nginx/ftp.crt";ssl_certificate_key   "/etc/nginx/ftp.key";}

第六步:重啟服務

[root@server ~]# systemctl  restart  nginx

第七步:測試

# 輸入www.openlab.com/file
# 輸入https://www.openlab.com/ftp,點擊高級->接受風險并繼續

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/38515.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/38515.shtml
英文地址,請注明出處:http://en.pswp.cn/web/38515.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

sed 保持空間命令之 x 的執行邏輯

目錄 1. 將模式空間和保持空間的內容互換并打印 2. 將保持空間的內容交換回模式空間 3. 使用保持空間保存狀態信息 4. 交換模式空間與保持空間隔行匹配 sed 有兩個內置的緩存空間: 模式空間:該空間是 sed 內置的一個緩沖區,是 sed 執行的…

基于Hadoop平臺的電信客服數據的處理與分析③項目開發:搭建基于Hadoop的全分布式集群---任務9:HBase的安裝和部署

任務描述 任務內容為HBase的安裝部署與測試。 任務指導 HBase集群需要整個集群所有節點安裝的HBase版本保持一致,并且擁有相同的配置 具體配置步驟如下: 1. 解壓縮HBase的壓縮包 2. 配置HBase的環境變量 3. 修改HBase的配置文件,HBase…

怎樣在《好作文》期刊上發表文章?

怎樣在《好作文》期刊上發表文章? 《好作文》知網 G4 2版2500字符 小學語文閱讀寫作方向 24年8-9月不要摘要參考文獻(小學語文閱讀寫作方向內容,不收純教學文章,以學生角度為主,出刊晚2-3個月左右,一周內…

Python基礎002

Python數據類型 1、字符串&#xff08;str&#xff09; str3 """I miss you so much""" print("str3 ", str3,type(str3)) str3 I miss you so much <class str>2、整數&#xff08;int&#xff09; str1 55 print(&quo…

[從0開始軌跡預測][NMS]:NMS的應用(目標檢測、軌跡預測)

非極大值抑制&#xff08;Non-Maximum Suppression&#xff0c;簡稱NMS&#xff09;是一種在計算機視覺中廣泛應用的算法&#xff0c;主要用于消除冗余和重疊的邊界框。在目標檢測任務中&#xff0c;尤其是在使用諸如R-CNN系列的算法時&#xff0c;會產生大量的候選區域&#x…

中介者模式在金融業務中的應用及其框架實現

引言 中介者模式&#xff08;Mediator Pattern&#xff09;是一種行為設計模式&#xff0c;它通過引入一個中介對象來封裝對象之間的交互&#xff0c;從而使對象不需要顯式地相互引用&#xff0c;從而降低了對象之間的耦合性。在金融業務中&#xff0c;中介者模式常用于實現復…

借教室(題解)

P1083 [NOIP2012 提高組] 借教室 - 洛谷 | 計算機科學教育新生態 (luogu.com.cn) 思路&#xff1a;二分前綴和 我們將和質檢員那題差不多&#xff0c;只需要將候選人二分即可 #include<bits/stdc.h> using namespace std; #define int long long int n,m; int r[100000…

vue 中使用element-ui實現錨點定位表單

效果圖&#xff1a; 代碼&#xff1a; html代碼&#xff1a; <div class"content-left"><el-tabs :tab-position"left" tab-click"goAnchor"><el-tab-pane v-for"(item,index) in anchorNameList"v-anchor-scroll:ke…

【Vue】vue3 hooks 中使用 useRouter 報錯 push undefined 報錯解決方法

報錯原因&#xff1a; 在 Vue 3 中&#xff0c;如果你在自定義 Hooks 中嘗試使用 useRouter 并遇到錯誤&#xff0c;特別是沒有 push 方法的問題&#xff0c;這通常是因為 useRouter 和 useRoute 需要在 Vue 組件的 setup 函數內部使用&#xff0c;而不是在自定義 Hooks 外部直…

【論文閱讀】自動駕駛光流任務 DeFlow: Decoder of Scene Flow Network in Autonomous Driving

再一次輪到講自己的paper&#xff01;耶&#xff0c;宣傳一下自己的工作&#xff0c;順便完成中文博客的解讀 方便大家討論。 Title Picture Reference and pictures paper: https://arxiv.org/abs/2401.16122 code: https://github.com/KTH-RPL/DeFlow b站視頻: https://www.b…

設計?個?性能可?撐分桶多分?的庫存中?,提供單庫存分?不?扣減的合并庫存功能,并提供商 品操作庫存?庫的漸進性?緩存的實現

設計一個高性能的庫存中心&#xff0c;需要考慮多個方面&#xff0c;包括數據結構設計、存儲優化、庫存管理策略、緩存策略以及高并發處理能力。以下是設計這樣一個系統的一些關鍵點&#xff1a; ### 1. 系統架構設計 - **微服務架構**&#xff1a;采用微服務架構&#xff0c;…

基于1bitDAC的MU-MIMO的非線性預編碼算法matlab性能仿真

目錄 1.算法運行效果圖預覽 2.算法運行軟件版本 3.部分核心程序 4.算法理論概述 4.1 基于1-bit DAC的非線性預編碼背景 4.2 ZF&#xff08;Zero-Forcing&#xff09; 4.3 WF&#xff08;Water-Filling&#xff09; 4.3 MRT&#xff08;Maximum Ratio Transmission&…

uniapp做小程序內打開地圖展示位置信息

使用場景&#xff1a;項目中需要通過位置信息打開地圖查看當前位置信息在地圖那個位置&#xff0c;每個酒店有自己的經緯度和詳細地址&#xff0c;點擊地圖按鈕打開內置地圖如圖 方法如下&#xff1a; <view class"dttu" click"openMap(info.locationY,info.…

快照讀與當前讀 是怎樣的?

在數據庫系統中&#xff0c;快照讀&#xff08;Snapshot Read&#xff09;和當前讀&#xff08;Current Read&#xff09;是兩種不同的數據讀取方式&#xff0c;它們與事務的隔離級別和一致性保證緊密相關。 快照讀&#xff08;Snapshot Read&#xff09; 快照讀是一種讀取操…

Vue使用vue-cropper裁剪圖片作頭像

1.安裝 工程目錄下運行cmd npm install vue-cropper -S2.引用組件 全局引入&#xff0c;在main.js中添加 import VueCropper from vue-cropper Vue.use(VueCropper)3.使用裁剪框 這里httpUrl可以隨意選擇一張網絡圖片的連接作測試 <!-- 圖片裁剪框 --><div style…

(18)GPS/指南針(一)

文章目錄 前言 1 GPS/指南針 2 RTK GPS 3 GPS驅動程序選項 4 GPS自動切換 5 高級用途 前言 Copter/Plane/Rover 支持與 GPS、指南針和其他定位技術的整合&#xff1a; 1 GPS/指南針 Avionics Anonymous GNSS CompassAvionics Anonymous CompassBeitain BN-220 GPS / B…

源碼解讀:如何正確使用并區分@Resource和@Autowired注解?

環境&#xff1a;Spring5.3.23 源碼解讀&#xff1a;如何正確使用Resource和Autowired注解&#xff1f; 1.注解區別 Resource 和 Autowired 都可以用于&#xff0c;依賴注入。但它們之間存在一些明顯的區別。 1.提供方&#xff1a; Autowired 是 Spring 提供的注解。Resour…

[Labview] 改寫表格內容并儲存覆蓋Excel

在上一個功能的基礎上&#xff0c;新增表格改寫保存功能 [Labview] Excel讀表 & 輸出表單中選中的單元格內容https://blog.csdn.net/Katrina419/article/details/140120584 Excel修改前&#xff1a; 修改保存后&#xff0c;動態改寫儲存Excel&#xff0c;并重新寫入新的表…

[21] Opencv_CUDA應用之使用Haar級聯的對象檢測

Opencv_CUDA應用之使用Haar級聯的對象檢測 Haar級聯使用矩形特征來檢測對象,它使用不同大小的矩形來計算不同的線和邊緣特征。矩形包含一些黑色和白色區域,如下圖所示,它們在圖像的不同位置居中 類Haar特征檢測算法的思想是計算矩形內白色像素和黑色像素之間的差異這個方法的…

【HDC.2024】云原生中間件,構筑軟件安全可信的連接橋梁

近日&#xff0c;在華為云開發者大會2024期間&#xff0c;來自華為云PaaS服務&#xff0c;中間件領域產品團隊的資深專家、技術總監、高級產品經理等大咖們發表了以“云原生中間件&#xff0c;構筑軟件安全可信的連接橋梁”為主題的專題演講。 演講伊始&#xff0c;華為云產品…