1. 程式人生 > >零散知識

零散知識

做出 開發 xfs 響應頭 linu logs 新頁面 重定向 -h

1.如何查看一個網頁是用什麽來搭建?

1)打開火狐瀏覽器,打開一個新頁面,摁F12,可以看到出來一個“開發者工具”。然後隨便訪問一個網站,比如淘寶。
2)點擊“開發者工具”中出現的任意一行,右邊會出現一個框,有“消息頭”之類的信息。
3)查看“”消息頭“下面的“響應頭”下面的“Server”這一行,就可以看到是用什麽服務來搭建的,如Apache,nginx之類。
---------------------------------------------------------------

火狐瀏覽器新開一個頁面,摁F12,然後打開隨便一個網站,然後點擊框框上面的Network,下面的name可以看到狀態碼

狀態返回碼很重要,面試的時候經常問。比如出現404,怎麽解決?
404是訪問的頁面不存在。


常見http狀態碼:
狀態碼 功能描述
200 一切正常
301 永久重定向
302 臨時重定向
401 用戶名或密碼錯誤
403 禁止訪問(客戶端IP地址被拒絕)
404 文件不存在
414 請求URI頭部過長
500 服務器內部錯誤
502 Bad Gateway
----------------------------------------------------------------------
2.添加eth1

nmcli connection add con-name eth1 ifname eth1 type ethernet

----------------------------------------------------------------
軟件的模塊化

計算機安全機制(用戶):當程序運行時,以對應用戶的身份來運行,只給部分權限,以確保安全。哪怕黑客攻擊也不怕,反正權限有限。

現在軟件基本上都已實現“模塊化”。如果100個功能全部安裝,占用空間大,性能差,漏洞多。
如果自定義安裝,同時也提供默認模塊,就會更有優勢。
----------------------------------------------------------------
http,nginx:80
ssh:22
mysqll:3306

操作系統:2年一更新
軟件:6個月一更新
nginx.10--->nginx.12--->nginx.15
-----------------------------------------------
程序 program 【硬盤】
進程 process 【內存】獨立,獨占內存比如20M
線程 thread

比如1個進程:3個線程,共占20M
-------------------------------------------------
虛擬主機:基於域名,端口,IP

1臺服務器,1個nginx,做出多個網站

www.xx.com 門戶
mail.xx.com 郵箱
mall.xx.com 銷售
bbs.xx.com 論壇

可以通過“站長工具”來查詢一個網站的大概訪問量
------------------------------------------------------
http協議【明文】 TCP/IP【http】
認證,並非加密。訪問網站,我需要驗證一下你的身份。密碼也是明文的,如果傳輸被抓包,別人可以看到明文的密碼。
httpd,nginx,tengine,tomcat,jboss

https=http+ssl
https是先加密,再傳輸。即使被抓包,看到的也是亂碼的密碼。
---------------------------------------------------------------------
對稱加密 如 123 123
非對稱加密 如 123 dksngl
----------------------------------------------------------------------
md5sum 文件
md5sum只針對文件的內容進行加密,如果文件內容不變,就算文件名變了,加密後的碼也不會變。

# vim 1.txt
# md5sum 1.txt
ba1f2511fc30423bdbb183fe33f3dd0f 1.txt
# mv 1.txt a.txt
# md5sum a.txt
ba1f2511fc30423bdbb183fe33f3dd0f a.txt
# cat a.txt
123
# vim a.txt
# cat a.txt
111
# md5sum a.txt
1181c1834012245d785120e3505ed169 a.txt

# 想看有哪些文件被人改動過了,要在沒被人攻擊之前就做好這個工作
# vim 1.sh
#!/bin/bash
for i in `ls /etc/*.conf`
do
md5sum $i >> a.log
done

# chmod +x a.log
./a.log

# cat a.log

然後拿2個文件做對比,不過後期會學到diff安全這塊會學到,不需要我們自己做對比。
-------------------------------------------------------------------------
LNMP (linux,nginx,mysql,php)
LAMP (linux,apache,mysql,php)

做完nginx只能實現靜態網站。動態網站的實現需要(LNMP)

client------------------->web server[a.mp3]
http://192.168.4.5/a.mp3
/usr/local/niginx/html/a.mp3

服務器解釋後的結果頁面再給客戶,就是動態網站。
shell、python、php、C++、C
-----------------------------------------------------------------------
zlib庫,有些應用依賴於這個庫才能正常運行,因此需要安裝zlib,但如果你不自己開發軟件並用到zlib庫的話,則無需安裝zlib-devel庫.
-------------------------------------------------------------------------
【美工,前端(html,div+css),後端,測試,運維】
畫草圖------>外表------>數據------>內測------>搭建給外網訪問
-------------------------------------------------------------------------
地址重寫(地址欄被重寫了)

www.jd.com/?xxxlsidg-=d34d9kdj254162
www.360buy.com------>www.jd.com #京東之前的域名是360buy,改名後如果訪問與原鏈接依然可以正常訪問,調轉到新鏈接
http://www.baidu.com->https://

/usr/local/nginx/html/pic/圖片
/usr/local/nginx/html/picture/圖片 #當你想改鏈接路徑時,客戶訪問原鏈接,依然能夠被重定向到你新連接那裏
-------------------------------------------------------------------------
/a.html---->/b.html
192.168.4.5--------->www.tmooc.cn
192.168.4.5/xx--------->www.tmooc.cn/xx

/usr/local/nginx/html/
【寬屏】電腦
【窄屏】手機

www.baidu.com

一個頁面給手機UC
一個頁面給電腦IE
----------------------------------------------------------------------------
修改配置文件(實現curl和火狐訪問相同鏈接返回的頁面不同)

一個頁面給手機firefox
一個頁面給電腦curl

firefox http://192.168.4.5/test
curl http://192.168.4.5/test

vim /usr/local/nginx/conf/nginx.conf

#log_format main ‘$remote_addr - $remote_user [$time_local] "$request" ‘
# ‘$status $body_bytes_sent "$http_referer" ‘
# ‘"$http_user_agent" "$http_x_forwarded_for"‘;


日誌裏都有啥?
# cat /usr/local/nginx/logs/access.log

192.168.4.10 - - [30/Oct/2018:16:05:53 +0800] "GET / HTTP/1.1" 401 195 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0"

192.168.4.10 - tom [30/Oct/2018:16:06:02 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0"
-----------------------------------------------------------
Nginx反向代理

proxy是nginx代理,相當於房屋中介(實現調度功能,動態感知健康檢查)
web1和web2相當於房東
-------------------------------------------------------------
步驟二:配置upstream服務器集群池屬性

1)設置失敗次數,超時時間,權重
weight可以設置後臺服務器的權重,max_fails可以設置後臺服務器的失敗次數,fail_timeout可以設置後臺服務器的失敗超時時間。
[[email protected] ~]# vim /usr/local/nginx/conf/nginx.conf
.. ..
http {
.. ..
upstream webserver {
server 192.168.2.100 weight=1 max_fails=1 fail_timeout=30;
server 192.168.2.200 weight=2 max_fails=2 fail_timeout=30;
server 192.168.2.101 down;
}
#weight設置服務器權重值,默認值為1
#max_fails設置最大失敗次數
#fail_timeout設置失敗超時時間,單位為秒
#down標記服務器已關機,不參與集群調度
.. ..
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://webserver;
}
}
---------------------------------------------------------------------------------------------------
# echo "1.1.1.1" | md5sum
a56bdbb2cc577c3eb01b8575c9241d51 -

1.1.1.1" | md5sum------------>16進制數字%2------>0,1
這對計算來說是一串數字,取余的結果等於0,或者1。
如果是0,給web1。如果是1,給web2。

2臺機子就對2取余。
8臺機子就對8取余。集群裏有多少臺工作的機子,就對對應數字取余。
---------------------------------------------------------------------------------------------------
Nginx的TCP/UDP調度器

全局設置
http{
upstream {}
server {}
}
-------------------------------------------------------------------------------------------------------
升級
虛擬主機
https加密
lnmp動態
rewrite地址重寫
代理服務器(調度,健康檢查)
-----------------------------------------------------------------------------------------------
3)修改Nginx配置文件,定義狀態頁面
[[email protected] ~]# cat /usr/local/nginx/conf/nginx.conf
… …
location /status {
stub_status on;
#allow IP地址;
#deny IP地址;
}
… …
[r[email protected] ~]# nginx
----------------------------------------------------------------------------------------------------
tcp:3次握手,4次斷開

http1.0 一次連接一次請求

http1.1 一次連接多次請求
keepalive_timeout 30 #保持這次連接活多久,可以自己調多少秒
-----------------------------------------------------------------------------------------------
# vim /etc/security/limits.conf
.. ..
* soft nofile 100000
* hard nofile 100000
#該配置文件分4列,分別如下:
#用戶或組 硬限制或軟限制 需要限制的項目 限制的值
------------------------------------------------------------------------------------------------------
1)優化前,使用腳本測試長頭部請求是否能獲得響應
[[email protected] ~]# cat lnmp_soft/buffer.sh
#!/bin/bash
URL=http://192.168.4.5/index.html?
for i in {1..5000}
do
URL=${URL}v$i=$i
done
curl $URL //經過5000次循環後,生成一個長的URL地址欄
[[email protected] ~]# ./buffer.sh
.. ..
<center><h1>414 Request-URI Too Large</h1></center> //提示頭部信息過大
----------------------------------------------------------------------------------------------------------
http:代理
upstream abc {
server 1.1.1.1;
server 2.2.2.2;
}
proxy_pass http://acb;

--with-stream
upstream xxx{
server 1.1.1.1:3306 #只關心IP和協議
server 2.2.2.2:3306
}
proxy_pass xxx;


2.優化
1.自定義報錯
error_page 404 /404.html
2.查看狀態--with-http_stub_status_module
location xyz {
stub_status on;
}
3,並發量
nginx.conf 1024--->50000
ulimit -Hn -Sn
-----------------------------------------------------------------------------------------
拓展了解

# kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
----------------------------------------------------------------------------------------------
SQL 存硬盤。數據關系

noSQL 存內存,非關系(mogondb,redis,memcached)

零散知識