主頁 > 作業系統 > linux入門系列18--Web服務之Apache服務1

linux入門系列18--Web服務之Apache服務1

2020-09-25 02:38:37 作業系統

前面系列文章講解了Linux下通過檔案傳輸、檔案共享、郵件系統來分享和獲取資源,本文講解網路資源獲取和共享的另外一種形式,通過Apache服務程式來提供Web服務,

本文先講解目前主流的Web服務程式以及各自的特點和優勢,然后以Apache服務為例講解Linux下Web網站的部署,并在部署程序中穿插講解SELinux的使用,最后在以示例講解Apache的虛擬主機功能及訪問控制,

一、Web服務程式分類

我們平時在互聯網上訪問的網站服務就是Web服務,比如我們常用的百度網站,他就是一個Web網站,Web網路服務,一般是指允許用戶通過瀏覽器訪問到其中各種資源的服務,

Web網路服務是一種被動訪問的服務程式,當接入到互聯網中的用戶主機發出請求后,Web服務才會回應并通過HTTP或HTTPS把請求的內容回傳給用戶,示意圖如下:

在這里插入圖片描述

目前提供Web服務的程式有:IIS、Apache、Ngnix等,

1.1 IIS

IIS(Internet Information Services):互聯網資訊服務,是Windows系統中默認的Web服務程式,它是一款帶圖形化界面的網站管理工具,不僅提供Web網站服務,還可以提供FTP、SMTP等服務,功能豐富,但是由于它是用在Windows系統中,因此不介紹它,

1.2 Apache

Apache程式是目前市場上占有率很高的Web服務程式之一,其特點是跨平臺、安全性高、API擴展簡單可靠,

Apache服務程式可以運行在Linux、UNIX、 Windows系統中,支持基于IP、域名及埠號的虛擬主機功能,支持多種認證方式,集成有代理服務器模塊、安全Socket層(SSL),能夠實時監視服務狀態與定制日志訊息,有著各類豐富的模塊支持,

由于它是RHEL5、6、7中默認的Web服務程式,并且作為老牌的Web服務程式,市場占用率還是很高的,因此本文主要以Apache為例進行Web服務的演示,

1.3 Ngnix

2004年,為俄羅斯知名門戶站點開發的Web服務程式Nginx橫空出世,它作為一款輕量級的網站服務軟體,因其穩定性和豐富的功能而快速占領服務器市場,

它因系統資源消耗低、并發能力強的特點,在國內受到諸如新浪、騰訊、網易等門戶網站的青睞,Ngnix作為后起之秀,截至本文寫作時為止市場占有率幾乎與Apache齊平,以后有機會再單獨對其進行演示和講解,

二、Apache安裝及操作案例

2.1 Apache安裝及配置

2.1.1 Apache安裝

Apache是RHEL7默認的web程式,以包含在默認的安裝鏡像中,因此可以直接掛載安裝鏡像直接安裝,也可以用遠程Yum倉庫進行安裝,

需要注意的是,在CentOS和RHEL上,Apache軟體包和服務稱為httpd而非apache,

  • 安裝Apache

先檢查Apache是否安裝,如果未安裝,通過yum倉庫安裝即可

[root@apache ~]# rpm -q httpd
package httpd is not installed
[root@apache ~]# yum install httpd
Loaded plugins: fastestmirror, langpacks
...省略部分內容
Complete!
[root@apache ~]# rpm -q httpd
httpd-2.4.6-90.el7.centos.x86_64
[root@apache ~]# 

安裝完成后,httpd服務是沒有啟動的,還需要將其啟動,并加入到開機啟動中

[root@apache ~]# systemctl start httpd
[root@apache ~]# systemctl enable httpd
ln -s '/usr/lib/systemd/system/httpd.service' '/etc/systemd/system/multi-user.target.wants/httpd.service'
[root@apache ~]# 

此時在虛擬機Centos內部,打開瀏覽器,即可看到apache部署成功

在這里插入圖片描述

如果要讓外部機器(如宿主機)訪問此Web,則需要對防火墻進行設定,當然直接關閉防火墻也可以,不過這樣存在風險,

根據前文講解的防火墻知識,打開HTTP和HTTPS的80和443埠

[root@apache ~]# firewall-cmd --permanent --zone=public --add-service=http
success
[root@apache ~]# firewall-cmd --permanent --zone=public --add-service=https
success
[root@apache ~]# firewall-cmd --reload 
success
[root@apache ~]#

這樣宿主機上也可以直接訪問該Web,如下圖

在這里插入圖片描述

  • 查看httpd版本資訊:
[root@apache ~]# httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built:   Aug  8 2019 11:41:18
[root@apache ~]# 
  • 查看httpd運行狀態
[root@apache ~]# systemctl status httpd
httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
   Active: active (running) since Mon 2020-02-10 10:52:35 CST; 7min ago
     Docs: man:httpd(8)
           man:apachectl(8)
...省略部分內容
2.1.2 Apache配置

只有掌握httpd服務相關組態檔以及各自的用途,才能更好地對其進行配置了,

  • 主要組態檔

httpd服務程式默認主要組態檔(這些默認配置是可以進行修改的)如下:

用途 檔案
服務目錄 /etc/httpd
主組態檔 /etc/httpd/conf/httpd.conf
網站資料目錄 /var/www/html
訪問日志 /var/log/httpd/access_log
錯誤日志 /var/log/httpd/error_log

主組態檔為:/etc/httpd/conf/httpd.conf,在此檔案中存存在三種型別的型別:注釋行資訊、全域配置、區域配置,

從主組態檔中截取部分進行說明如下:

在這里插入圖片描述

全域配置引數

全域配置引數就是一種全域性的配置引數,可作用于對所有的子站點,既保證了子站點的正常訪問,也有效減少了頻繁寫入重復引數的作業量,

區域配置引數

區域配置引數則是單獨針對于每個獨立的子站點進行設定的,

  • 主要引數

httpd服務程式最常用的引數如下

引數 用途
ServerRoot 服務目錄
ServerAdmin 管理員郵箱
User 運行服務的用戶
Group 運行服務的用戶組
ServerName 網站服務器的域名
DocumentRoot 網站資料目錄
Directory 網站資料目錄的權限
Listen 監聽的 IP 地址與埠號
DirectoryIndex 默認的索引頁頁面
ErrorLog 錯誤日志檔案
CustomLog 訪問日志檔案
Timeout 網頁超時時間,默認為 300 秒
  • 案例演示:修改網站首頁內容

分析:既然上表中提到DocumentRoot是用于定義網站資料的保存路徑,那我們查看下其引數的默認值,然后把對應網頁內容放入該目錄,就可以實作網頁替換,靜態網頁名稱一般為index.html,

打開主組態檔

[root@apache ~]# vim /etc/httpd/conf/httpd.conf 

在這里插入圖片描述

查看到看默認網站資料目錄為:/var/www/html,默認該目錄為空,向目錄中創建index.html檔案,并通過瀏覽器進行查看,

如果忘記VI或VIM編輯器使用方法的,請回傳復習前面的文章:“linux入門系列4--vi&vim編輯器”,

[root@apache ~]# ll /var/www/html/
total 0
[root@apache ~]# echo "hi,this is heimatengyun's blog">/var/www/html/index.html
[root@apache ~]# ll /var/www/html/
total 4
-rw-r--r--. 1 root root 31 Feb 10 11:59 index.html
[root@apache ~]# 

在宿主機通過瀏覽器再次查看,即可查看剛才新加的網頁檔案內容

在這里插入圖片描述

通過這樣的操作,我們應該明白,如果你已經做好你的網頁內容,只需要往/var/www/html/目錄存放,即可實作網站的訪問,

但實際作業中,有可能我們會更換網站目錄,把網站內容存放到一個指定的目錄中,而非默認的/var/www/html/,這該怎么做呢?這就會涉及到SELinux的問題,因此請繼續下邊的實驗,

2.2 SELinux相關知識

2.2.1 問題引出

假設我們把系統根目錄下的website目錄作為網站目錄,我們進行如下操作:

(1)創建自定義網站目錄和網頁檔案

[root@apache /]# mkdir /website
[root@apache /]# cd /website/
[root@apache website]# echo "this is my custom directory">index.html
[root@apache website]# ll
total 4
-rw-r--r--. 1 root root 28 Feb 10 12:21 index.html
[root@apache website]#

(2)主組態檔中配置目錄

[root@apache website]# vim /etc/httpd/conf/httpd.conf 

在這里插入圖片描述

主要修改DocumentRoot引數指定網站目錄為/website,同時修改定義目錄權限的區域引數Directory,

(3)訪問驗證

配置完成后,重啟httpd服務

[root@apache website]# systemctl restart httpd

在宿主機中瀏覽器查看

在這里插入圖片描述

見鬼,怎么顯示的還是httpd默認的頁面呢?

一般情況只有網站的首頁頁面檔案不存在或用戶權限不足時,才顯示httpd默認的頁面,比如后文的4.1,設定禁止的ip訪問后,就直接跳轉到此頁面,

我們在加上檔案名試下呢

在這里插入圖片描述

可以看到提示權限不足,看到這里,你應該想到是SELinux在搞鬼,為了驗證一下,讓我們把SELinux關閉后在試試看

[root@apache website]# getenforce 
Enforcing
[root@apache website]# setenforce 0
[root@apache website]# getenforce  
Permissive
[root@apache website]# 

再次在宿主機瀏覽器訪問

在這里插入圖片描述

發現可以訪問了,那說明果然是SELinux在搞鬼,但生產環境不建議直接關閉SELinux,接下來我們就來看看SELinux相關的知識,掌握之后我們在來開啟SELinux并進行設定,使其在SELinux開啟的情況下依然可以訪問我們Web網站,

2.2.2 SELinux相關知識

在前面的檔案傳輸、檔案共享、郵件系統的文章中或多或少都講解了SELinux相關的知識,本文再次集中總結一下,

2.2.2.1 SELinux概述

SELinux(Security-Enhanced Linux)是美國國家安全域在Linux開源社區的幫助下開發的 一個強制訪問控制(MAC,Mandatory Access Control)的安全子系統,

RHEL7系統使用SELinux技術的目的是為了讓各個服務行程都受到約束,使其僅獲取到本應獲取的資源,它的重要性不言而喻,舉個例子,比如你從網上下載了一個軟體用于編輯檔案,但是這個軟體“不老實”,當你正在努力碼字的同時,它卻悄悄監視你在各個網站登錄時輸入的密碼,然后悄悄上傳到黑客指定的地址,SELinux就是為了防止這種情況的發生而開發的,從而更好的保護你的電腦,

SELinux具體從兩個方面進行限制:SELinux域和背景關系

SELinux域對服務程式的功能進行限制,可以確保服務程式做不了出格的事情,

SELinux背景關系對檔案資源的訪問限制,確保檔案資源 只能被其所屬的服務程式進行訪問,

開啟SELinux后,這樣就等于開啟了系統雙保險,系統內的服務程式只能規規矩矩地拿到自己所應該獲取的資源,這樣即便黑客入侵了系 統,也無法利用系統內的服務程式進行越權操作,

SELinux配置有三種模式,如下:

引數值 作用
enforcing 強制啟用安全策略模式,將攔截服務的不合法請求
permissive 遇到服務越權訪問時,只發出警告而不強制攔截
disabled 對于越權的行為不警告也不攔截

正如2.2.1中,通過setenforce 0命令將SELinux關閉后,我們的Web就可以訪問了,就是這個道理,

SELinux組態檔對應為:/etc/selinux/config ,

[root@apache website]# cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 
[root@apache website]# 

該檔案中的值定義的是SELinux默認的運行狀態,也就是系統重啟后的狀態,因此修改它不會立即生效

2.2.2 SELinux相關命令
  • getenforce命令

用于查看SELinux的運行模式

[root@apache website]# getenforce 
Enforcing
[root@apache website]# 
  • setenforece命令

setenforce 0或1,用于禁用(0)或啟用(1)SELinux,注意這個命令的修改只是臨時的,系統重啟后就會失效

[root@apache website]# getenforce 
Enforcing
[root@apache website]# setenforce 0
[root@apache website]# getenforce  
Permissive
[root@apache website]

因此,如果原來系統的SELinux是關閉的,如果要開啟它,需要在組態檔中將進行設定SELINUX=enforcing,并同時要通過setenforce 1進行設定,這樣即使系統重啟,依然生效,

  • semanage命令

用于設定SELinux背景關系的值,管理SELinux的策略,

語法格式:semanage [選項] [檔案]”

引數

引數 作用
-l 查詢
-a 添加
-m 修改
-d 洗掉

具體使用細節可以通過幫助命令man semanage進行查看,

  • getseboll命令

該命令用于查看SELinux域相關的安全策略,

語法格式:getsebool -a(其中-a引數表示查看所有域相關的安全策略)

[root@apache ~]# getsebool 
usage:  getsebool -a or getsebool boolean...
[root@apache ~]# getsebool -a
abrt_anon_write --> off
abrt_handle_event --> off
abrt_upload_watch_anon_write --> on
antivirus_can_scan_system --> off
...省略部分內容

其中,on表示允許狀態,off表示禁止狀態,

  • setsebool命令

該命令用于修改SELinux域相關的策略規則,

語法格式:setsebool -P 規則項=on或off (其中-P引數表示立即讓修改永久生效)

[root@apache ~]# getsebool -a | grep xdm_write_home
xdm_write_home --> off
[root@apache ~]# setsebool -P xdm_write_home=on
[root@apache ~]# getsebool -a | grep xdm_write_home
xdm_write_home --> on
[root@apache ~]# setsebool -P xdm_write_home=off
[root@apache ~]# getsebool -a | grep xdm_write_home
xdm_write_home --> off
[root@apache ~]# getsebool xdm_write_home
xdm_write_home --> off

以上實驗,我們先查看grep xdm_write_home狀態,然后將其改為on,查看修改是否生效,然后再將其改回原值,查看某一項的值可以通過正則匹配,也可以直接通過該具體項獲取,

有了以上這些儲備知識,我們再繼續完成開啟SELinux的情況下讓我們自定義目錄的網站也能訪問,

2.3 Apache案例1:修改網站目錄

通過上邊的講解,我們大概已經知道了前面的問題就是SELinux背景關系引起,因此我們通過以下命令來查看下默認的/var/www/html和我們自定義的/website他們的SELinux背景關系的值究竟有什么不同

[root@apache website]# ll -Z /var/www/html/
-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 index.html
[root@apache website]# ll -Z /website/
-rw-r--r--. root root unconfined_u:object_r:default_t:s0 index.html
[root@apache website]# 

我們通過ll命令的-Z引數進行查看,很明顯就看到了不同,(-Z引數專門用于查看SELinux域相關設定)

可以看到在檔案上設定的SELinux安全背景關系是由用戶段、角色段以及型別段等多個資訊項共同組成的,以上示例中,用戶段system_u代表系統行程的身份,角色段object_r代表檔案目錄的角色, 型別段httpd_sys_content_t代表網站服務的系統檔案,

搞清楚區別后,我們直接用前邊講解的semanage命令添加SELinux安全背景關系即可,使其目錄及里邊的所有檔案能夠被httpd服務程式訪問到

[root@apache website]# ll -Z /var/www/html/
-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 index.html
[root@apache website]# ll -Z /website/
-rw-r--r--. root root unconfined_u:object_r:default_t:s0 index.html
[root@apache website]# semanage fcontext -a -t httpd_sys_content_t /website
[root@apache website]# semanage fcontext -a -t httpd_sys_content_t /website/*
[root@apache website]# ll -Z /website/
-rw-r--r--. root root unconfined_u:object_r:default_t:s0 index.html
[root@apache website]# restorecon -Rv /website/
restorecon reset /website context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
restorecon reset /website/index.html context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
[root@apache website]# ll -Z /website/         
-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 index.html
[root@apache website]# 

需要注意的是,設定背景關系值后并非立即生效,還需要執行restorecon才會生效,程序如上,請自行體驗,

經過這樣設定后,就可以正常訪問了,

在這里插入圖片描述

本案例演示了SELinux背景關系對資源的限制導致的web不能訪問,以及設定背景關系值,

2.4 Apache案例2:用戶個人主頁功能

上一個案例演示了SELinux背景關系的設定,本案例再通過Apache的個人用戶主頁功能來演示SELinux域的設定,

假設有這樣有一個需求:需要為Linux每一位系統用戶建立一個獨立的網站,我們該怎么做呢?

方法有很多,httpd服務程式提供的個人用戶主頁功能完全可以實作這個需求,它可以讓系統內所有的用戶在自己的家目錄中管理個人的網站,而且訪問起來也非常容易,

步驟如下:

2.4.1 開啟個人主頁功能

個人用戶主頁功能組態檔為:/etc/httpd/conf.d/userdir.conf ,主要修改2處:注釋掉UserDir disabled使其開啟個人主頁功能,同時設定個人網站目錄,取消UserDir public_html 前的注釋即可,

[root@apache website]# vim /etc/httpd/conf.d/userdir.conf 

在這里插入圖片描述

2.4.2 創建網站目錄及檔案

在用戶家目錄中建立用于保存網站資料的目錄及首頁面檔案,

[root@apache website]# useradd heima
[root@apache website]# echo "123456" | passwd --stdin heima
Changing password for user heima.
passwd: all authentication tokens updated successfully.
[root@apache website]# su - heima
[heima@apache ~]$ ls
[heima@apache ~]$ pwd
/home/heima
[heima@apache ~]$ mkdir public_html
[heima@apache ~]$ echo "this is heima's website">public_html/index.html
[heima@apache ~]$ ll public_html/
total 4
-rwxrwxr-x. 1 heima heima 24 Feb 10 16:11 index.html
[heima@apache ~]$ chmod -Rf 775 /home/heima/

另外,還需要把家目錄的權限修改為755,保證其他人也有權限讀取里面的內容,

2.4.3 設定SELinux安全域策略

文章最開始已經設定了防火墻,此時我們大致一想,應該是可以訪問個人網頁了吧,我們先切換到root用戶,重啟httpd服務,然后進行訪問,結果很不幸,這次又提示權限不足,

[root@apache ~]# systemctl restart httpd

在這里插入圖片描述

訪問地址為ip/~用戶名,其中的波浪號是必需的,而且網址、波浪號、用戶名之間沒有空格,

我們回想一下,這個現象和案例1遇到的癥狀有幾分相似,當時是因為我們新建了一個目錄/website,而沒有設定SELinux背景關系所導致,那這次是不是也是因為SELinux的背景關系導致呢?

很顯然不是,httpd服務程式在提供個人用戶主頁功能時,該用戶的網站資料目錄本身就應該是存放到與這位用戶對應的家目錄中的,所以應該不需要修改家目錄的 SELinux 安全背景關系,如果你實在不放心,也可以執行如下命令驗證:

[heima@apache ~]$ ll -Z /home/heima/
drwxrwxr-x. heima heima unconfined_u:object_r:httpd_user_content_t:s0 public_html
[heima@apache ~]$

對吧,很明顯不是SELinux背景關系導致,因為httpd默認就給用戶目錄添加了背景關系值,

那是什么原因呢,我們還是按照之前的方法來排查,先把SELinux關閉,然后在此訪問,結果可以正常訪問了,那說明就是SELinux的問題,再回想我們前面提到的SELinux通過背景關系和域這兩個方面進行限制和保護,既然背景關系沒問題,因此自然而然,我們應該知道這就是SELinux域導致的,

Linux 域確保服務程式不能執行違規的操作,只能本本分分地為用戶提供服務,httpd 服務中突然開啟的這項個人用 戶主頁功能到底有沒有被SELinux域默認允許呢?

給個人主頁相關的域規則項為:httpd_enable_homedirs,如果不知道記住即可,我們看下他的狀態確實為off,因此將其改為on就可以了,切換到root用戶進行操作

[root@apache ~]# getsebool httpd_enable_homedirs
httpd_enable_homedirs --> off
[root@apache ~]# setsebool httpd_enable_homedirs=on
[root@apache ~]# 

此時,我們再次訪問,即可正常訪問了,

在這里插入圖片描述

2.4.4 設定需要用戶密碼才能登陸

有時候我們不希望別人直接就可以訪問個人網站,需要通過身份認證才能進行查看,這就需要在網站中添加口令功能來實作,

(1)生成密碼資料庫

[root@apache ~]# htpasswd -c /etc/httpd/passed heima
New password: 
Re-type new password: 
Adding password for user heima
[root@apache ~]# 

注意,檔案名任意取,在下一步中保持一致即可,-c引數表示第一次生成,設定密碼為888888,以區別之前heima用戶登錄系統的密碼123456,這樣做的目的是為了區分說明不此處設定的密碼不是用戶登錄系統的密碼,

(2)修改組態檔

[root@apache ~]# vim /etc/httpd/conf.d/userdir.conf 
<Directory "/home/*/public_html">
#    AllowOverride FileInfo AuthConfig Limit Indexes
#    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
#    Require method GET POST OPTIONS
   AllowOverride all
   authuserfile "/etc/htppd/passed"
   authname "heima website"
   authtype basic
   require user heima
   Require method GET POST OPTIONS
</Directory>

將文末的內容注釋并按如下進行修改即可

在這里插入圖片描述

修改完成后,重啟httpd

[root@apache ~]# systemctl restart httpd

再次訪問,就要求輸入密碼了,

在這里插入圖片描述

此時輸入用戶名heima,以及剛才創建的888888密碼(注意不是heima登錄系統的密碼)即可登錄網站,

在這里插入圖片描述

這個案例演示了SELinux域對行程的控制,以及如何對其進行設定,

通過案例1和案例2,不僅完整演示了Apache常用操作,還特別演示了生產級別的SELinux域和背景關系的設定,

下一篇文章繼續演示Apache的虛擬主機功能和訪問控制的實作方法,

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/122587.html

標籤:Linux

上一篇:linux下怎么找到某些命令出自于哪個包

下一篇:(8)route命令(每周一個linux命令系列)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • CA和證書

    1、在 CentOS7 中使用 gpg 創建 RSA 非對稱密鑰對 gpg --gen-key #Centos上生成公鑰/密鑰對(存放在家目錄.gnupg/) 2、將 CentOS7 匯出的公鑰,拷貝到 CentOS8 中,在 CentOS8 中使用 CentOS7 的公鑰加密一個檔案 gpg -a ......

    uj5u.com 2020-09-10 00:09:53 more
  • Kubernetes K8S之資源控制器Job和CronJob詳解

    Kubernetes的資源控制器Job和CronJob詳解與示例 ......

    uj5u.com 2020-09-10 00:10:45 more
  • VMware下安裝CentOS

    VMware下安裝CentOS 一、軟硬體準備 1 Centos鏡像準備 1.1 CentOS鏡像下載地址 下載地址 1.2 CentOS鏡像下載程序 點擊下載地址進入如下圖的網站,選擇需要下載的版本,這里選擇的是Centos8,點擊如圖所示。 決定選擇Centos8后,選擇想要的鏡像源進行下載,此 ......

    uj5u.com 2020-09-10 00:12:10 more
  • 如何使用Grep命令查找多個字串

    如何使用Grep 命令查找多個字串 大家好,我是良許! 今天向大家介紹一個非常有用的技巧,那就是使用 grep 命令查找多個字串。 簡單介紹一下,grep 命令可以理解為是一個功能強大的命令列工具,可以用它在一個或多個輸入檔案中搜索與正則運算式相匹配的文本,然后再將每個匹配的文本用標準輸出的格式 ......

    uj5u.com 2020-09-10 00:12:28 more
  • git配置http代理

    git配置http代理 經常遇到克隆 github 慢的問題,這里記錄一下幾種配置 git 代理的方法,解決 clone github 過慢。 目錄 git配置代理 git單獨配置github代理 git配置全域代理 配置終端環境變數 git配置代理 主要使用 git config 命令 git單獨 ......

    uj5u.com 2020-09-10 00:12:33 more
  • Linux npm install 裝包時提示Error EACCES permission denied解

    npm install 裝包時提示Error EACCES permission denied解決辦法 ......

    uj5u.com 2020-09-10 00:12:53 more
  • Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包

    Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包。 18 (flaskApi) [root@67 flaskDemo]# yum -y install nginx 19 已加載插件:fastestmirror, langpacks 20 Loading ......

    uj5u.com 2020-09-10 00:13:13 more
  • Linux查看服務器暴力破解ssh IP

    在公網的服務器上經常遇到別人爆破你服務器的22埠,用來挖礦或者干其他嘿嘿嘿的事情~ 這種情況下正確的做法是: 修改默認ssh的22埠 使用設定密鑰登錄或者白名單ip登錄 建議服務器密碼為復雜密碼 創建普通用戶登錄服務器(root權限過大) 建立堡壘機,實作統一管理服務器 統計爆破IP [root ......

    uj5u.com 2020-09-10 00:13:17 more
  • CentOS 7系統常見快捷鍵操作方式

    Linux系統中一些常見的快捷方式,可有效提高操作效率,在某些時刻也能避免操作失誤帶來的問題。 ......

    uj5u.com 2020-09-10 00:13:31 more
  • CentOS 7作業系統目錄結構介紹

    作業系統存在著大量的資料檔案資訊,相應檔案資訊會存在于系統相應目錄中,為了更好的管理資料資訊,會將系統進行一些目錄規劃,不同目錄存放不同的資源。 ......

    uj5u.com 2020-09-10 00:13:35 more
最新发布
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:43:21 more
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:42:36 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:26:53 more
  • 設定Windows主機的瀏覽器為wls2的默認瀏覽器

    這里以Chrome為例。 1. 準備作業 wsl是可以使用Windows主機上安裝的exe程式,出于安全考慮,默認情況下改功能是無法使用。要使用的話,終端需要以管理員權限啟動。 我這里以Windows Terminal為例,介紹如何默認使用管理員權限打開終端,具體操作如下圖所示: 2. 操作 wsl ......

    uj5u.com 2023-04-19 09:25:49 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:19:04 more
  • Linux學習筆記

    IP地址和主機名 IP地址 ifconfig可以用來查詢本機的IP地址,如果不能使用,可以通過install net-tools安裝。 Centos系統下ens33表示主網卡;inet后表示IP地址;lo表示本地回環網卡; 127.0.0.1表示代指本機;0.0.0.0可以用于代指本機,同時在放行設 ......

    uj5u.com 2023-04-18 06:52:01 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:50 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:01 more
  • 你是不是暴露了?

    作者:袁首京 原創文章,轉載時請保留此宣告,并給出原文連接。 如果您是計算機相關從業人員,那么應該經歷不止一次網路安全專項檢查了,你肯定是收到過資訊系統技術檢測報告,要求你加強風險監測,確保你提供的系統服務堅實可靠了。 沒檢測到問題還好,檢測到問題的話,有些處理起來還是挺麻煩的,尤其是線上正在運行的 ......

    uj5u.com 2023-04-05 16:52:56 more
  • 細節拉滿,80 張圖帶你一步一步推演 slab 記憶體池的設計與實作

    1. 前文回顧 在之前的幾篇記憶體管理系列文章中,筆者帶大家從宏觀角度完整地梳理了一遍 Linux 記憶體分配的整個鏈路,本文的主題依然是記憶體分配,這一次我們會從微觀的角度來探秘一下 Linux 內核中用于零散小記憶體塊分配的記憶體池 —— slab 分配器。 在本小節中,筆者還是按照以往的風格先帶大家簡單 ......

    uj5u.com 2023-04-05 16:44:11 more