柚子快報激活碼778899分享:運維 2.nginx
柚子快報激活碼778899分享:運維 2.nginx
nginx
簡介
Nginx是?款輕量級的Web 服務(wù)器/反向代理服務(wù)器及電?郵件(IMAP/POP3)代理服務(wù)器,在BSDlike 協(xié)議下發(fā)?。其特點是占有內(nèi)存少,并發(fā)能?強,事實上nginx的并發(fā)能?在同類型的??服務(wù)器 中表現(xiàn)較好,中國?陸使?nginx?站?戶有:百度、京東、新浪、?易、騰訊、淘寶等。
Nginx的核?功能
Nginx最核?的兩個功能: 1. ?性能的靜態(tài)web服務(wù)器 2. 反向代理 正向代理vs反向代理
s_id=img-4dZWXrbb-1706540450709)
如上圖,左邊是正向代理,右邊是反向代理 正向代理:代理服務(wù)器是代表?戶客戶端去訪問后端服務(wù)器,代理的對象是前?的?戶 反向代理:代理服務(wù)器是代表后端服務(wù)器供客戶端去訪問,對于前?的?戶來說是?感知的,代理的對象是 后?的后臺服務(wù)器
Nginx的優(yōu)勢
?并發(fā)、?性能(?個進程可以處理多個請求)擴展性好(模塊化設(shè)計)異步?阻塞的事件驅(qū)動模型?可靠性(熱部署、7*24)
Ngnix的使?
Nginx的安裝
Ubuntu安裝Nginx ?常?便,可以直接使?apt源來安裝
sudo add-apt-repository ppa:nginx/stable
sudo apt-get update
sudo apt-get install nginx
執(zhí)?以上三條指令即可完成安裝
執(zhí)?命令查看是否安裝成功
nginx -v
安裝之后Nginx的?錄放在了etc/nginx下面
主配置?件是nginx.conf,Nginx的指令放在 /usr/sbin/nginx ,?志?件放 在 /var/log/nginx 中
Nginx常?命令
cd /usr/sbin
#啟動命令
./nginx
#關(guān)閉命令
./nginx -s stop
#重啟命令
./nginx -s reload
Nginx配置?件
核?配置?件就是 nginx.conf ,打開這個核?配置?件
nginx.conf 配置?件分為三部分:
全局配置
從配置?件開始到 events 塊之間的內(nèi)容,主要會設(shè)置?些影響 nginx 服務(wù)器整體運?的配置指令,主 要包括配置運? Nginx 服務(wù)器的?戶(組)、允許?成的 worker process 數(shù),進程 PID 存放路徑、? 志存放路徑和類型以及配置?件的引?等。
user www-data; #運?worker?進程的?戶
worker_processes auto; #?進程的個數(shù)
pid /run/nginx.pid; #運?master的pid?件存放的路徑
include /etc/nginx/modules-enabled/*.conf; #將其他配置?件包含進來
這是 Nginx 服務(wù)器并發(fā)處理服務(wù)的關(guān)鍵配置,worker_processes 值越?,可以?持的并發(fā)處理量也越 多,但是會受到硬件、軟件等設(shè)備的制約
events配置
events {
worker_connections 768;
}
events 塊涉及的指令主要影響 Nginx 服務(wù)器與?戶的?絡(luò)連接,常?的設(shè)置包括是否開啟對多 work process 下的?絡(luò)連接進?序列化,是否允許同時接收多個?絡(luò)連接,選取哪種事件驅(qū)動模型來處理連 接請求,每個 word process 可以同時?持的最?連接數(shù)等。上述例?就表示每個 work process ?持 的最?連接數(shù)為 768, 這部分的配置對 Nginx 的性能影響較?,在實際中應(yīng)該靈活配置。
http配置
這算是 Nginx 服務(wù)器配置中最頻繁的部分,代理、緩存和?志定義等絕?多數(shù)功能和第三?模塊的配置 都在這?。
需要注意的是:http 塊也可以包括 http 全局塊、server 塊。
http全局塊 http 全局塊配置的指令包括?件引?、MIME-TYPE 定義、?志?定義、連接超時時間、單鏈接請求數(shù) 上限等。server塊 這塊和虛擬主機有密切關(guān)系,虛擬主機從?戶?度看,和?臺獨?的硬件主機是完全?樣的,該技術(shù)的 產(chǎn)?是為了節(jié)省互聯(lián)?服務(wù)器硬件成本。 每個 http 塊可以包括多個 server 塊,?每個 server 塊就相當于?個虛擬主機。 ?每個 server 塊也分為全局 server 塊,以及可以同時包含多個 locaton 塊。
配置詳解
########### 每個指令必須有分號結(jié)束。#################
#user administrator administrators; #配置?戶或者組,默認為nobody nobody。
#worker_processes 2; #允許?成的進程數(shù),默認為1
#pid /nginx/pid/nginx.pid; #指定nginx進程運??件存放地址
error_log log/error.log debug; #制定?志路徑,級別。這個設(shè)置可以放?全局塊,http塊,
server塊,級別以此為:debug|info|notice|warn|error|crit|alert|emerg
events {
accept_mutex on; #設(shè)置?路連接序列化,防?驚群現(xiàn)象發(fā)?,默認為on
multi_accept on; #設(shè)置?個進程是否同時接受多個?絡(luò)連接,默認為off
#use epoll; #事件驅(qū)動模型,
select|poll|kqueue|epoll|resig|/dev/poll|eventport
worker_connections 1024; #最?連接數(shù),默認為512
}
http {
include mime.types; #?件擴展名與?件類型映射表
default_type application/octet-stream; #默認?件類型,默認為text/plain
#access_log off; #取消服務(wù)?志
log_format myFormat '$remote_addr–$remote_user [$time_local] $request
$status $body_bytes_sent $http_referer $http_user_agent
$http_x_forwarded_for'; #?定義格式
access_log log/access.log myFormat; #combined為?志格式的默認值
sendfile on; #允許sendfile?式傳輸?件,默認為off,可以在http塊,server塊,
location塊。
sendfile_max_chunk 100k; #每個進程每次調(diào)?傳輸數(shù)量不能?于設(shè)定的值,默認為0,即不設(shè)
上限。
keepalive_timeout 65; #連接超時時間,默認為75s,可以在http,server,location
塊。
upstream mysvr {
server 127.0.0.1:7878;
server 192.168.10.121:3333 backup; #熱備
}
error_page 404 https://www.baidu.com; #錯誤?
server {
keepalive_requests 120; #單連接請求上限次數(shù)。
listen 4545; #監(jiān)聽端?
server_name 127.0.0.1; #監(jiān)聽地址
location ~*^.+$ { #請求的url過濾,正則匹配,~為區(qū)分??寫,~*為不區(qū)分?
?寫。
#root path; #根?錄
#index vv.txt; #設(shè)置默認?
proxy_pass http://mysvr; #請求轉(zhuǎn)向mysvr 定義的服務(wù)器列表
deny 127.0.0.1; #拒絕的ip
allow 172.18.5.54; #允許的ip
}
}
}
Nginx核?功能
反向代理
配置
http{
...
...
#這部分是被代理服務(wù)器的設(shè)置 ciggar只是?個代號
upstream ciggar{
server 192.168.45.151:8080;
}
#這部分是nginx作為反向代理服務(wù)器的配置
server{
#nginx監(jiān)聽的端?
listen 80;
#虛擬服務(wù)器的識別標記,?般配置為本機ip
server_name 192.168.45.151;
#代理設(shè)置地址
location / {
proxy_pass http://ciggar;
}
}
}
負載均衡配置
#負載均衡策略
# 1 輪詢(默認)
# 2 weight
# 3 ip_hash
# 4 least_conn 最少連接?式
# 5 fair(第三?) 響應(yīng)時間
# 6 url_hash (第三?)
#weight weight 代表權(quán)重,默認為 1,權(quán)重越?被分配的客戶端越多
...
upstream ciggar{
server 192.168.45.151:8080 weight=2;
server 192.168.45.151:8081 weight=1;
}
...
#ip_hash 每個請求按訪問 ip 的 hash 結(jié)果分配,這樣每個訪客固定訪問?個后端服務(wù)器,可以解決
session 的問題。例如:
...
upstream ciggar{
ip_hash;
server 192.168.45.151:8080;
server 192.168.45.151:8081;
}
...
緩存
沒啥用
Nginx從0.7.48版本開始,?持了類似Squid的內(nèi)容緩存功能。這個緩存是把URL及相關(guān)組合當作Key, ?md5編碼哈希后保存在硬盤上,所以它可以?持任意URL鏈接,同時也?持404/301/302這樣的? 200狀態(tài)碼。 nginx緩存配置
...
http{
...
#聲明?個cache緩存節(jié)點的內(nèi)容,levels 在 /path/to/cache/ 設(shè)置了?個兩級層次結(jié)構(gòu)的?錄。
設(shè)置Web緩存區(qū)名稱為cache_one,內(nèi)存緩存空間??為200MB,1天沒有被訪問的內(nèi)容?動清除,硬盤緩
存空間??為30GB。
proxy_cache_path /data0/proxy_cache_dir levels=1:2
keys_zone=cache_one:200m inactive=1d max_size=30g;
server{
...
location / {
proxy_cache my_cache;
proxy_cache_key $uri;
proxy_cache_valid 200 206 304 301 302 10d;
}
...
}
}
卸載nginx
1.打開一個終端,輸入dpkg --list ,按下Enter鍵,終端輸出以下內(nèi)容,顯示的是你電腦上安裝的所有軟件。
2.在終端中找到你需要卸載的軟件的名稱,列表是按照首字母排序的。
3.在終端上輸入命令sudo apt-get --purge remove 包名(–purge是可選項,寫上這個屬性是將軟件及其配置文件一并刪除,如不需要刪除配置文件,可執(zhí)行sudo apt-get remove 包名) ,此處我要刪除的是polipo ,那么在終端輸入sudo apt-get --purge remove polipo,按下回車,輸入密碼,再次回車。
4.執(zhí)行過程中,會提示你是否真的要刪除(繼續(xù)執(zhí)行刪除命令),在終端輸入y ,然后回車,刪除程序繼續(xù)執(zhí)行。
序的。
3.在終端上輸入命令sudo apt-get --purge remove 包名(–purge是可選項,寫上這個屬性是將軟件及其配置文件一并刪除,如不需要刪除配置文件,可執(zhí)行sudo apt-get remove 包名) ,此處我要刪除的是polipo ,那么在終端輸入sudo apt-get --purge remove polipo,按下回車,輸入密碼,再次回車。
4.執(zhí)行過程中,會提示你是否真的要刪除(繼續(xù)執(zhí)行刪除命令),在終端輸入y ,然后回車,刪除程序繼續(xù)執(zhí)行。
5.正常情況下,再次出現(xiàn)輸入命令行刪除成功。
柚子快報激活碼778899分享:運維 2.nginx
參考文章
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。