導航:首頁 > 程序命令 > linux命令關閉進程

linux命令關閉進程

發布時間:2025-06-23 09:57:35

linux裡面top-sh命令作用是什麼

top命令用於實時查看Linux系統資源使用情況,包括系統摘要信息與內核管理的進程或線程列表。此命令是系統性能與運行信息監控的實用工具,提供動態界面,通過熱鍵進行交互操作。

top命令執行過程中包含多種交互命令,均為單字母指令,例如:Z切換進程排序方式,M切換內存使用顯示,H顯示幫助界面等。

使用top命令,用戶可實時查看系統整體運行信息。例如,查看CPU使用率、內存使用情況、進程狀態等關鍵信息。結果展示詳細說明了系統負載、進程數量、內存使用等指標。

若需了解更多Linux系統命令知識,可參考綜合教程合集,內容涵蓋多種Linux命令使用與技巧。

⑵ linux系統下怎麼關閉tomcat

在Linux系統下,啟動和關閉Tomcat使用命令操作。

進入Tomcat下的bin目錄

停止Tomcat服務命令

執行tomcat ./shutdown.sh 後,雖然tomcat服務不能正常訪問了,但是ps -ef | grep tomcat 後,發現tomcat對應的java進程未隨web容器關閉而銷毀,進而存在僵屍java進程。網上看了下導致僵屍進程的原因可能是有非守護線程(即User Thread)存在,jvm不會退出(當JVM中所有的線程都是守護線程的時候,JVM就可以退出了;如果還有一個或以上的非守護線程則JVM不會退出)。通過一下命令查看Tomcat進程是否結束:

若顯示一下相似信息,說明Tomcat進程未結束

此時我們可強制結束該進程(僵屍進程)

上一命令執行完畢後,重新查看Tomcat進程情況,Tomcat已完全停止。

⑶ 按內存佔用排序和按CPU佔用排序的Linux TOP命令

Linux TOP命令默認是CPU佔用排序,按M可以切換到按內存佔用排序。這是系統維護和電腦內存維護。可以切換的。不同的用法,達到不同的效果。以下是關於這兩個的詳細說明。
P – 以 CPU 佔用率大小的順序排列進程列表
M – 以內存佔用率大小的順序排列進程列表
在系統維護的過程中,隨時可能有需要查看 CPU 使用率,並根據相應信息分析系統狀況的需要。在 CentOS 中,可以通過 top 命令來查看 CPU 使用狀況。運行 top 命令後,CPU 使用狀態會以全屏的方式顯示,並且會處在對話的模式 — 用基於 top 的命令,可以控制顯示方式等等。退出 top 的命令為 q (在 top 運行中敲 q 鍵一次)。
在命令行中輸入 「top」 即可啟動 top ,top 的全屏對話模式可分為3部分:系統信息欄、命令輸入欄、進程列表欄。
第一部分 — 最上部的 系統信息欄 :
第一行(top):
「14:55:59」為系統當前時刻;
「4 days, 5:52」為系統啟動後到現在的運作時間;
「1 user」為當前登錄到系統的用戶,更確切的說是登錄到用戶的終端數 — 同一個用戶同一時間對系統多個終端的連接將被視為多個用戶連接到系統,這里的用戶數也將表現為終端的數目;
「load average」為當前系統負載的平均值,後面的三個值分別為1分鍾前、5分鍾前、15分鍾前進程的平均數,一般的可以認為這個數值超過 CPU 數目時,CPU 將比較吃力的負載當前系統所包含的進程;
第二行(Tasks):
「12 total」為當前系統進程總數;
「1 running」為當前運行中的進程數;
「11 sleeping」為當前處於等待狀態中的進程數;
「0 stoped」為被停止的系統進程數;
「0 zombie」為被復原的進程數;
第三行(Cpus):
分別表示了 CPU 當前的使用率;
第四行(Mem):
分別表示了內存總量、當前使用量、空閑內存量、以及緩沖使用中的內存量;
第五行(Swap):
表示類別同第四行(Mem),但此處反映著交換分區(Swap)的使用情況。通常,交換分區(Swap)被頻繁使用的情況,將被視作物理內存不足而造成的。
第二部分 — 中間部分的內部命令提示欄:
top 運行中可以通過 top 的內部命令對進程的顯示方式進行控制。內部命令如下表:
s – 改變畫面更新頻率
l – 關閉或開啟第一部分第一行 top 信息的表示
t – 關閉或開啟第一部分第二行 Tasks 和第三行 Cpus 信息的表示
m – 關閉或開啟第一部分第四行 Mem 和 第五行 Swap 信息的表示
N – 以 PID 的大小的順序排列表示進程列表
P – 以 CPU 佔用率大小的順序排列進程列表
M – 以內存佔用率大小的順序排列進程列表
h – 顯示幫助
n – 設置在進程列表所顯示進程的數量
q – 退出 top
s – 改變畫面更新周期
第三部分 — 最下部分的進程列表欄:
以 PID 區分的進程列表將根據所設定的畫面更新時間定期的更新。通過 top 內部命令可以控制此處的顯示方式。
一般的,我們通過遠程監控的方式對伺服器進行維護,讓伺服器本地的終端實時的運行 top ,是在伺服器本地監視伺服器狀態的快捷便利之一。
ubuntu進程管理方法
ps 顯示當前進程
ps -l 顯示詳細信息
ps -u 以用戶的格式顯示
相關欄位說明
F 進程狀態標志
S 進程狀態代碼
UID 進程執行者ID
PPID 父進程標識(parent process ID)
PRI 進程執行的優先順序(priority)
NI 進程執行優先順序的nice值,負值表示其優先順序較高
SZ 進程佔用的內存大小
WCHAN 進程或系統調用等待時的地址
%CPU cpu使用百分比
%MEM 內存使用百分比
VSZ 佔用虛擬內存大小
RSS 佔用物理內存大小
START 進程開始時間
kill 刪除進程
kill pid 刪除指定pid的進程
kill -l 查看所有可供傳送的信號
kill -9 pid 強制刪除進程,傳送的是SIGKILL信號
kill -15 pid 強制刪除進程,傳送的是SIGTERM信號
kill -HUP pid 重啟Deamon進程
free 查看內存使用狀態
free -s 10 每10秒檢查內存使用情況
nice 設置執行優先順序,-20~19,19最低
sudo nice –2 vi 將vi的優先順序調為-2
renice 修改執行優先順序,-20~19,19最低
top 動態顯示進程
按」P」鍵 按CPU使用時間排序
按」M」鍵 按內存使用多少排序
按」T」鍵 按執行時間多少排序
按」u」鍵 監視特定用戶
按」K」鍵 刪除進程
top -d 10 指定更新時間
lsof -p 查看進程打開的文件
jobs 命令查看後台作業
ubuntu結束進程方法
1、打開終端
2、敲 ps -ef 查出進程的編號(就是PID那列)
3、敲 kill PID (如果PID是123456,則kill 123456)
4、OK了
在本地Ubuntu Linux系統運行大軟體的時候,或者伺服器長時間運行後,由於有些設計有缺陷的軟體,容易出現假死的情況!
那程序假死了以後,我們該怎麼辦呢?其實這個 問題其實說簡單也簡單,直接結束進程不就OK了嘛!就像我們在Windows下面做的一樣!下面來介紹幾種Ubuntu Linux下面結束進程的幾種方法!
最安全殺死進程的方法
殺死進程最安全的方法是單純使用kill命令,不加修飾符,不帶標志。
首先使用ps -ef命令確定要殺死進程的PID,然後輸入以下命令:
#kill -pid
注釋:標準的kill命令通常都能達到目的。終止有問題的進程,並把進程的資源釋放給系統。然而,如果進程啟動了子進程,只殺死父進程,子進程仍在運行,因此仍消耗資源。為了防止這些所謂的「僵屍進程」,應確保在殺死父進程之前,先殺死其所有的子進程。
還可以使用如下命令來確定要殺死進程的PID或PPID
# ps -ef | grep httpd
以最優雅的方式來結束進程
# kill -l PID
-l選項告訴kill命令用好像啟動進程的用戶已注銷的方式結束進程。當使用該選項時,kill命令也試圖殺死所留下的子進程。但這個命令也不是總能成功--或許仍然需要先手工殺死子進程,然後再殺死父進程。
TERM信號
給父進程發送一個TERM信號,試圖殺死它和它的子進程。
# kill -TERM PPID
killall命令
killall命令殺死同一進程組內的所有進程。其允許指定要終止的進程的名稱,而非PID。
# killall httpd
停止和重啟進程
有時候只想簡單的停止和重啟進程。如下:
# kill -HUP PID
該命令讓Linux和緩的執行進程關閉,然後立即重啟。在配置應用程序的時候,這個命令很方便,在對配置文件修改後需要重啟進程時就可以執行此命令。
絕殺 kill -9 PID
同意的 kill -s SIGKILL
這個強大和危險的命令迫使進程在運行時突然終止,進程在結束後不能自我清理。危害是導致系統資源無法正常釋放,一般不推薦使用,除非其他辦法都無效。
當使用此命令時,一定要通過ps -ef確認沒有剩下任何僵屍進程。只能通過終止父進程來消除僵屍進程。如果僵屍進程被init收養,問題就比較嚴重了。殺死init進程意味著關閉系統。
如果系統中有僵屍進程,並且其父進程是init,而且僵屍進程佔用了大量的系統資源,那麼就需要在某個時候重啟機器以清除進程表了

⑷ linux系統怎麼安裝nginx

這里以CentOS6.6系統(32位)中安裝nginx的源碼包,進行講解。
1. nginx源碼包的下載
nginx官方下載地址:http://nginx.org/
選擇你要安裝的nginx版本,這里,我選擇的是 nginx-1.10.2 。
具體的下載鏈接為:http://nginx.org/download/nginx-1.10.2.tar.gz
可以在其他電腦下載好,通過ftp軟體傳給要安裝的linux電腦。也可以直接在linux電腦上使用wget命令下載。這里我們使用後一種方式。
在linux的根目錄,創建一個多級空目錄 /my_package/source,用來存放下載的源碼包。
mkdir -p /my_package/sourcecd /my_package/source12

執行下載命令:
wget http://nginx.org/download/nginx-1.10.2.tar.gz1

下載完成後,在 /my_package/source 目錄中,就有了 nginx-1.10.2.tar.gz 源碼包壓縮文件。
2. nginx的安裝與配置
2.1 准備工作
安裝nginx之前,需要先安裝pcre庫。如果你的linux系統中沒有pcre,需要先進行安裝。
這里,我們使用yum工具,在線快速安裝pcre:
yum -y install pcre
yum -y install pcre-devel12

可以通過下面的命令,找到已安裝的pcre和pcre-devel的位置:
rpm -ql pcre
rpm -ql pcre-devel或
find / -name "*pcre*"1234

2.2 nginx的安裝
配置nginx安裝的參數,比如:安裝路徑,指定依賴庫的具體位置等。
這里我們使用默認安裝配置:
tar -zxvf nginx-1.10.2.tar.gzcd nginx-1.10.2./configure123

如果這一步執行正確,在提示信息中會告知nginx將要安裝的位置、可執行文件的位置等,如下:
nginx path prefix: "/usr/local/nginx"nginx binary file: "/usr/local/nginx/sbin/nginx"nginx moles path: "/usr/local/nginx/moles"nginx configuration prefix: "/usr/local/nginx/conf"nginx configuration file: "/usr/local/nginx/conf/nginx.conf"nginx pid file: "/usr/local/nginx/logs/nginx.pid"nginx error log file: "/usr/local/nginx/logs/error.log"nginx http access log file: "/usr/local/nginx/logs/access.log"nginx http client request body temporary files: "client_body_temp"nginx http proxy temporary files: "proxy_temp"nginx http fastcgi temporary files: "fastcgi_temp"nginx http uwsgi temporary files: "uwsgi_temp"nginx http scgi temporary files: "scgi_temp"12345678910111213

如果這一步出錯了,根據錯誤提示信息解決問題後,使用 make clean 命令,清除產生的臨時文件,再來重新執行 ./configure
如果想查看具體可以配置哪些安裝參數,可以使用下面的命令查看:
./configure --help1

編譯和安裝
makemake install12

到此,nginx的源碼包就安裝完畢了。
2.3 nginx的配置
如果想修改nginx的配置文件,可使用下面的命令:
vi /usr/local/nginx/conf/nginx.conf1

3. nginx的常用命令
檢查測試nginx的配置信息是否正確
/usr/local/nginx/sbin/nginx -t1

啟動nginx
/usr/local/nginx/sbin/nginx1

啟動nginx伺服器後,可以使用下面的命令檢測nginx是否啟動成功,並查看nginx的埠、主進程號、進程名稱等信息。
netstat -tlunp1

也可以使用下面的命令檢測nginx是否啟動成功,並查看nginx的主進程和子進程的詳細信息。
ps aux | grep nginx1

ps aux 命令(a代表前台進程,x代表後台進程,u代表進程的發起者)列出的進程信息中,主要包含以下信息:USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND 。這里,簡單說明一下:
USER:表示進程的發起者,也就是說,進程是哪個用戶產生的。
PID:表示進程的id,也稱作,進程號。%CPU:表示進程佔用的CPU資源的百分比。%MEM:表示進程佔用的物理內存的百分比。
VSZ:表示進程佔用的虛擬內存的大小,單位KB。
RSS:表示進程佔用的實際物理內存的大小,單位KB。
TTY:表示進程是在哪個終端中運行的。其中tty1到tty7代表本地控制台終端,tty1到tty6是本地的字元界面終端,tty7是圖形終端。pts/0-255代表虛擬終端(即遠程登錄終端)。
STAT:表示進程的狀態。常見的狀態有:R 運行;S 睡眠;T 停止;s 包含子進程;+ 位於後台。
START:表示進程是在什麼時間啟動的。
TIME:表示進程佔用CPU的運算時間,值越大,越耗費資源。
COMMAND:表示產生該進程的命令(通過它可以識別正在運行的進程名)。1234567891011

成功啟動nginx後,就可以在本地電腦或其他電腦中訪問你的nginx伺服器中的網站了。
本地電腦(即nginx所在的電腦)的訪問方式:curl 127.0.0.1
其他電腦(區域網內)的訪問方式:打開瀏覽器,輸入nginx伺服器的區域網IP即可。12

為了更方便的使用 /usr/local/nginx/sbin 中的命令,
我們將其加入linux系統的環境變數,即修改文件 /etc/profile,在最後加入下面的代碼:
export PATH="/usr/local/nginx/sbin:$PATH"1

保存退出後,執行命令:source /etc/profile 可使該配置文件立即生效。
關閉nginx
nginx -s stop 快速關閉nginx
nginx -s quit 平滑關閉nginx
kill -s QUIT 11247 通過linux的kill命令殺死nginx進程,11247為nginx的主進程號123

重新載入nginx的配置文件
nginx -s reload 修改了nginx的配置文件後,可以使用該命令讓新的配置立即生效,而不用重啟整個nginx伺服器

希望我的方法能夠幫助到你

⑸ LINUX操作系統課程設計:企業伺服器的配置與實現怎樣做

一般購買大品牌的伺服器才有相應的驅動程序:
硬體:4核CPU,4G的內存,主板帶RIAD,512G內存,

安裝與配置Web伺服器
Apache伺服器源代碼安裝:
http://httpd.apache.org
Apache RPM軟體下載:
http://updates.redhat.com
Apache模塊和MPM可使用類型的更詳細介紹:
http://httpd.apache.org/docs-2.0/mod/N
Apache對模塊的使用有兩種方法,一種是將其永久性地編譯Apache內核中,即採用靜態編譯;另一種是採取動態編譯,將其編譯成DSO(Dynamic shared object,動態共享對象)模塊,DSO模塊的存儲是獨立於內核的,可被內核在需要時調用,具體是由mod_so模塊提供的運行時配置指令(LoadMole)來實現的,若在編譯中包含有任何動態模塊,則mod_so模塊會被自動包含進內核。若僅希望內核能夠支持裝載DSO模塊,但不實際編譯任何動態模塊,則在編譯配置時就明確指定--enable-so配置參數。
還提供了多道處理模塊MPMs(multi-processing moles),編譯過程中必須包含一個且只能有一個MPM,編譯時系統會根據平台類型自動選擇使用默認的MPM,也可在configure命令行中配置:
--with-mpm=要使用MPM類型

模塊的指定方法:
1.靜態編譯模塊到內核中,如編譯包含mod-sll和mod_rewrite(去掉mod_)模塊:
./configure --enable-mole="ssl rewrite"或./configure --enable-sll --enable-rewrite
動態編譯模塊為DSO:
./configure --enable-mods-shared="ssl rewrite"或./configure --enable-rewrite=shared

模塊說明:
httpd -l //查看httpd進程中包含哪些模塊;
httpd -S //檢查虛擬主機的配置是否存在語法錯誤;
httpd -f //啟動httpd守護進程時,載入配置文件;
mod_deflate模塊允許支持此功能的瀏覽器,在請求的頁面內容發送前進行壓縮,以節少網路帶寬。
mod_vbost_alias模塊支持虛擬主要的動態配置。

chkconfig --level 235 httpd on
chkconfig --list httpd
service httpd start
service httpd restart
service httpd reload //重新裝載httpd.conf(不重啟伺服器)
./configure --prefix=/usr/local/apache2 --enable-so --with-mpm=prefork --enable-moles="setenvif rewrite deflate vhost_alias"
#apachectl start //啟動Apache伺服器;
#apachectl restart
#echo "/usr/local/apache2/bin/apachectl start">>/etc/rc.d/rc.local //自動啟動
#httpd -t //檢查配置文件httpd.conf
#apachect configtest //檢查配置文件httpd.conf
#ServerRoot apache安裝路徑 //設置伺服器的根目錄;
#ServerName 完整的域名[:埠號] //設置伺服器用於重定向(埠)和虛擬主機;
#Listen [IP地址]埠號 //告訴伺服器接受來自指定埠或者指定IP地址的某埠的請求;
Listen 80
Listen 61.186.160.104:8088
#ServrAdmin E-mail地址 //設置Web站點管理員的E-mail地址,當產生錯誤時(如指定的網頁找不到),伺服器返回給客戶端的
錯誤信息中將包含該郵件地址,以告訴用戶該向誰報告錯誤;
#DocumentRoot 目錄路徑名 //設置Web伺服器站點根目錄;
DocumentRoot /usr/local/apache2/htdocs
#ErrorDocument 錯誤號 所要顯示的網頁 //定義當遇到錯誤時,伺服器將給客戶端什麼樣的回應,通常是顯示預設置的一個錯誤頁面;
grep ErrorDocument /etc/httpd/conf/httpd.conf //httpd.conf中一些對不同錯誤的響應信息;
#DirectoryIndex index.php index.htm index.html default.htm //設置站點主頁文件的搜索順序;
#user nobody //設置伺服器以哪種(nobody)用戶身份來響應客戶端的請求;
#Group # -1 //設置伺服器以哪種(nobody)用戶身份來響應客戶端的請求;nobody用戶許可權較小。
#AddDefaultCharset GB2312 //指定默認的字元集;
#TimeOut //設置連接請求超時的時間(秒),超時將斷開;
#KeepAlive //用於啟用持續的連接或者禁用;KeepAlive On|Off
#MaxKeepAliveRequests //設置在一個持續連接期間允許的最大HTTP請求數目;
#KeepAliveTimeout //設置在關閉TCP連接之前,等待後續請示求的秒數;一旦接受請求建立了TCP連接後則開始計時;
#PidFile logs/httpd.pid //指定存放httpd主(父)進程號的文件名;

日誌配置命令:
#ErrorLog //指定伺服器存放錯誤日誌文件的位置和文件名;
#LogLevel //設置記錄在錯誤日誌中的信息的詳細程序;
emerg 緊急,系統將無法使用;
alert 必須立即採取措施;
crit 致命情況;
crror 錯誤情況;
warm 警告;
info 普通信息;
notice 一般重要情況;
debug 出錯級別信息;

http://127.0.0.1 //測試Apache是否正常運行
Test Page
This page is used to test the proper operation of the Apache Web server after it has been installed. If you can read this page, it means that the Apache Web server installed at this site is working properly.

#rpm -q httpd
#rpm -Uvh http-2.0.40-21.11.i386.rpm

目錄說明:
/etc/httpd/conf //Apache伺服器的配置文件httpd.conf
/etc/rc.d/init.d/ //Apache伺服器啟動腳本安裝,httpd
/var/www/html //Web站點根目錄;
/usr/bin //Apache軟體包提供的可執行程序安裝在該目錄下。
/etc/httpd/logs //日誌文件
htdocs //默認Web站點的根目錄,可通過配置文件httpd.conf進行設置或更改;
cgi-bin //CGI腳本目錄;
bin //apachectl啟動腳本會自動設置在某些操作系統下,正常運行httpd所需的環境變數;
httpd守擴進程被調用後做的第一件事就是讀取httpd.conf,並根據其配置項來配置當前Web伺服器;
httpd.conf 分為三部分(section),
第一部分為全局環境設置,主要用於設置ServerRoot、主進程號的保存文件、
對進程的控制、伺服器偵聽的IP地址、埠、要裝載的DSO模塊
第二部分是伺服器的主要配置指一位置;
第三部分用於設置和創建虛擬主機;
Listen 80 //Web伺服器綁定在80埠;
DocumentRoot //設置Web站點的根目錄等;
訪問控制指令:
<Directory /usr/local/*/htdoes> //<Directory>使指定的目錄及其子目錄有效;不可嵌套。目錄名可使用「*」或「?」通配符,
<Files ~「\.ht"> //作用於指定的文件,則不管該文件實際存在子哪個目錄,允許所有主機訪問位於任何目錄下的.ht開的文件
Order allow,deny //指定allow和deny語句,哪一個被執行;允許、禁止訪問主機。
Allow from all //允許所有主機訪問;也可以是IP地址。
<Files>
</Directory>

<Location /assistant> //針對URL地址進行訪問限制,不是文件系統;
Order deny,allow //
Deny from all
Allow from 61.186.160.105
</Location>

Order deny,allow //若主機沒有被特別指出拒絕訪問,則該資源被允許訪問。
Order allow,deny //若主機沒有被特別指出允許訪問,則該主要將被拒絕訪問該資源。
Order mntual-failure //只有那些在allow語句中被指定,同時又沒有出現在deny語句的主機,才允許訪問。若主機在兩條指
令中都沒有出現,則將被拒絕訪問;
*、? //*代表任意個字元,?代表一個任意的字元;
<DirectoryMatch> //指定目錄名時,可直接使用正則表達式;<Directory>若要使用正則表達式,則需要在正則表達式前加「~"
<FilesMatch> //可直接使用正則表達式來通配多個文件;

AccessFileName .htaccess //.htaccess分布式配置文件,在該文件中也可放置一些配置指令,以作用於該文件所在的目錄以及
其下的所有子目錄。搜尋.htaccess文件會降低系統性能;
<Directory />
AllowOverride None //禁止系統查找.htaccess文件;
Options FollowSymLinks //Options:控制在特定目錄中將使用哪些伺服器特性;
</Directory>

Options命令可用的選項:
None 不啟用任何額處特性;
All 除MultiViews之外的所有特性,默認設置;
ExecCGI 允許執行CGI腳本;
FollowSymLinks 伺服器允許在此目錄中使用符號連接。在<Location>段中無效
Includes 允許伺服器端包含SSI(Server-side includes)
IncludesN()EXEC 允許伺服器端包含,但禁用#exec和#exec CGI命令。但仍可以從ScriptAltase目錄使用#include虛擬CGI腳本;
Indexes 如果一個映射目錄的URL被請求,而此目錄中又沒有DirectoryIndex(如:index.html),那麼伺服器返回一個
格式化後的目錄列表;
MultiViews 允許內容協商的多重視圖;
SymLinksIfOwnerMatch 伺服器僅在符號連接與其目的目錄或文件擁有者具有同樣的用戶ID時,才使用它;
ExecCGI 擁有ExecCGI執行許可權;

prefork.c 控制Apache進程,對於使用prefork多道處理模塊的Apache伺服器;
<IfMole prefork.c>
StartServers 5 //設置伺服器啟動時啟動的子進程的個數;
MinSpareServers 5 //設置伺服器中空閑子進程(即沒有HTTP處理請求的子進程)數目的下限;
MaxSpareServers 10 //設置伺服器中空閑子進程數目的上限。若空閑子進程超過該設置值,則父進程就會
停止多餘的子進程;
MaxClients 150 //設置伺服器允許連接的最大客戶數;
MaxRequestsPerChild 0 //設置子進程所能處理請求的數目上限,0為不受限制;
</IfMole>
access_log //日誌文件用於記錄伺服器處理的所有請求;
CustomLog 指定access_log日誌文件的位置和日誌記錄的格式;
LogFormat 定義日誌的記錄格式;
LogFormat 日誌格式字元串 日誌格式名稱
LogFormat "%h %1 %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined;
LogFormat "%h %1 %u %t \"%r\" %>s %b" common;
LogFormat "%{Referer}i->%U" referer;
LogFormat "%{User-agent}i「 agent;
LogFormat logs/access_log common

LogFormat "%v %h %l %u %t \"%r"\ %>s %b" vhost
CustomLog logs/vhost_log vhost

%a 遠程主機IP地址
%A 本地主機IP地址
%h 遠程主機名
%H 請求協議
%l 遠程登錄名
%u 來自auth 的遠程用戶
%U 請求的URL路徑
%U{User-agent}i 用戶瀏覽器類型
%b 發送的位元組數,不包括HTTP標題
%t 請求的時間
%r HTTP請求的第一行的內容
%s HTTP響應狀態碼,200代表訪問成功,404代表文件未找到,403代表禁止訪問,401代表未授權訪問,400代表錯誤請求。
%m 請求方法
%v 服務於該請求的伺服器的ServerName
%V 伺服器的名字,取決於UseCanonicalName的設置
%{Host}i 返回HTTP請求的主機頭信息,可能含埠號信息
split-logfile </var/www/myweb/vhost_log //當所有虛擬機日誌都記錄在主站點日誌中時,使用此命令將日誌按虛擬主機名分組,拆分成一個個獨立的日
志文件,第個日誌文件採用"虛擬主機名.log「形式命名,其中包含了該虛擬主機所產生的日誌記錄;

容器與訪問控制指令:容器指令通常用於封裝一組指令,使其在容器條件成立時有效,或者用於改變指令的作用域。
<IfMoe ! mpm_winnt.c> //<IfMoe>用於判斷指定的模塊是否存在,若存在(被靜態地編譯進伺服器,或是被動態裝載進伺服器)則包含於
其中的指令將有效,否則會被忽略。可嵌套使用。
<IfMoe ! mpm_netware.c> //若要使模塊不存在時所包含的指令有效,只需在模塊名前加一個「!」即可,
User nobody
Group # -1
</IfMoe>
</IfMoe>

基於域名虛擬主機:
例:假設當前伺服器的IP地址為192.168.3.120,現要在該伺服器創建兩個基於域名的虛擬主機,使用埠為標準的80,其域名分別為www.myweb1.com和www.myweb2.com,站點根目錄分別為/var/www/myweb1和/var/www/myweb2,日誌文件分別放在/var/vhlogs/myweb1和/var/vhlogs/myweb2目錄下面,Apache伺服器原來的主站點採用域名www.myweb.com進行訪問。
#vi /etc/hosts //使用/etc/hosts進行域名注冊;
192.168.3.120 www.myweb1.com www.myweb2.com www.myweb.com

#ping www.myweb1.com //檢測域名解析是否正常;
#ping www.myweb2.com
#ping www.myweb.com

#mkdir -p /var/www/myweb1
#mkdir -p /var/www/myweb2
#mkdir -p /var/vhlogs/myweb1
#mkdir -p /var/vhlogs/myweb2

#vi /etc/httpd/conf/httpd.conf
Listen 80 //設置Listen指令偵聽的埠
NameVirtualHost 192.168.3.120 //基於域名的虛擬主機,如果對多個地址使用了多個基於域名的虛擬主機
則對每個地址均要使用此指令:NameVirtualHost IP地址:埠
NameVirtualHost * 當IP地址無法確定時,使用「*」通配任意的IP地址
<VirtualHost 192.168.3.120> //定義一個虛擬主機,VirtualHost的參數必須與NameVirtualHost後面所使用的參數保持一致。
ServerName www.myweb.com //當一個請求到時,伺服器會首先檢查它是否使用了一個能和NameVirtualHost相匹配的IP地址。如果匹配,就會
DocumentRoot /usr/local/apache/htdoes //就會查找每個與這個IP地址相對應的<VirtualHost>配置段,並嘗試找出一個ServerName或ServerAlias配置相
ServerAdmin [email protected] //與請求的主機名(域名)相同的,若找到,則使用該虛擬主機的配置,並響應其訪問請求。否則將使用符合這個
</VirtualHost> //IP地址的第一個列出的虛擬主機。在最前面的虛擬主機成為默認虛擬主機。
<VirtualHost 192.168.3.120>
ServerName www.myweb1.com
DocumentRoot /var/www/myweb1
DirectoryIndex index.php index.php3 index.html index.htm default.html default.html
ServerAdmin [email protected]
ErrorLog /var/vhlogs/myweb/error_log
TransferLog /var/vhlogs/myweb1/access_log
</VirtualHost>
<VritualHost 192.168.3.200>
ServerName www.myweb2.com
DocumenRoot /var/www/myweb2
DirectoryIndex index.php index.php3 index.htm index.html default.htm default.html
ServerAdmin [email protected]
ErrorLog /var/vhlogs/myweb2/error_log
TranferLog /var/vhlogs/myweb2/access_log
</VirtualHost>

<Directory /var/www> //對Web站點目錄設置訪問控制;
Options FllowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>

Apachectl –S //查查虛擬主機配置是否正確;
Aparhectl restart //重啟Apache伺服器配置生效;

例:
NameVirtualHost 192.168.168.10 //伺服器配有兩塊網卡,IP:內網192.168.168.10,外網61.186.160.104,在Internet網中,企業域名
NameVirtualHost 61.186.160.104 //www.example.com指向外網IP地址,在企業內網的DNS伺服器中,指向內網IP地址;現要求為來自內網
<VirtualHost 192.168.168.10 61.186.160.104> //外網的請求提供同樣的Web服務。(httpd.conf中設置)
DocumentRoot /www/server1
ServerName www.example.com
</Virtual>

例:
Listen 80 //伺服器:192.168.168.154,伺服器上創建兩個基於域名(主機名)的虛擬主機,域名:www.myweb3.com和www.
Listen 8080 //myweb4.com,每個虛擬主機的80埠和8080埠,分別服務一個Web站點,其站點根目錄分別為
// /var/www/myweb3-80、/var/www/myweb3-8080、/var/www/myweb4-80、/var/www/myweb4-8080。
NameVirtualHost 192.168.168.154:80 //www.myweb3.com的80埠作為默認Web站點。
NameVirtualHost 192.168.168.154:8080

<VirtualHost 192.168.168.154:80>
ServerName www.myweb3.com
DocumentRoot /var/www/myweb3-80
<VirtualHost>
<VirtualHost 192.168.168.154:8080>
ServerName www.myweb3.com
DocumentRoot /var/www/myweb3-8080
</VirtualHost>
<VirtualHost 192.168.168.154:80>
ServerName www.myweb4.com
DocumentRoot /var/www/myweb4-80
</VirtualHost>
<VirtualHost 192.168.168.154:8080>
ServerName www.myweb4.com
DocumentRoot /var/www/myweb4-8080
</VirtualHost>

基於IP地址虛擬主機:
#cd /etc/sysconfig/network-scripts //伺服器有兩張網卡eth0、eth1,eth0:192.168.167.157,
#cp ifctg-eth1 ifcfg-eth1:0 //eth1:192.168.167.156.eth0網卡用作了基於主機名的虛擬主機,
#vi ifcfg-eth1:0 //eth1通過IP別名方式,為其綁定多個IP地址,用於提供基於IP地址
DEVICE=eth1:0 //的虛擬主機。eth1綁定的第一張虛擬網卡的設備名為eth1:0,對應的
IPADDR=192.168.167.157 //配置文件為ifcfg-eth1:0,通過修改配置文件中的設備名和IP地址,
#ifdown eth1 //即可實現IP地址的綁定。
#ifup eth1:0
#ifup eth1
#ping 192.168.167.157
#ping 192.168.167.156

#vi /etc/hosts //192.168.167.156:www.example2.com,192.168.167.157:
192.168.167.157 www.example3.com //www.example3.com,試為其創建基於IP地址的虛擬主機,埠使用80
#mkdir -p /var/www/example2 //目錄分別為/var/www/example2、/var/www/example3,為這兩個域再增
#mkdir -p /var/www/example3 //8080埠,使其也能在8080埠發布另外的Web站點。Web站點根目錄分
///var/www/example2-8080、/var/www/example3-8080
#vi httpd.conf
Listen 80
Listen 8080
<VirtualHost 192.168.167.156:80>
ServerName www.example2.com
DocumentRoot /var/www/example2
</VirtualHost>
<VirtualHost 192.168.167.156:8080>
ServerName www.example2.com
DocumentRoot /var/www/example2-8080
</VirtualHost>

<VirtualHost 192.168.167.157:80>
ServerName www.exaple3.com
DocumentRoot /var/www/example3
</VirtualHost>
<VirtualHost 192.168.167.157:8080>
ServerName www.exaple3.com
DocumentRoot /var/www/example3-8080
</VirtualHost>

閱讀全文

與linux命令關閉進程相關的資料

熱點內容
ccd感測器怎麼連接單片機 瀏覽:263
app出售代理權什麼意思 瀏覽:727
單片機技術的自動停車器的設計 瀏覽:551
短線交易秘訣2pdf 瀏覽:608
excel表格pdf格式 瀏覽:112
預編譯可以刪除嗎 瀏覽:410
刪除視圖的命令 瀏覽:536
全境封鎖怎麼聯機連不上伺服器 瀏覽:651
手機我的世界國際版如何開伺服器 瀏覽:848
emacs編輯完怎麼編譯 瀏覽:858
單片機通訊台達 瀏覽:989
貓咪編程怎麼上課 瀏覽:299
紫光單片機 瀏覽:421
php日期轉化為字元串 瀏覽:295
go編譯去除內部包的限制 瀏覽:235
傲世西遊安卓版什麼時候更新 瀏覽:503
溫州編程招聘信息 瀏覽:189
電腦改伺服器是什麼意思 瀏覽:270
程序員t恤套裝 瀏覽:372
游泳解壓的最好方法 瀏覽:127