深入淺析nginx部署及簡單優(yōu)化
Nginx是lgor Sysoev為俄羅斯訪問量第二的rambler.ru站點(diǎn)設(shè)計(jì)開發(fā)的。從2004年發(fā)布至今,憑借開源的力量,已經(jīng)接近成熟與完善。
Nginx功能豐富,可作為HTTP服務(wù)器,也可作為反向代理服務(wù)器,郵件服務(wù)器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模塊擴(kuò)展。
Nginx的穩(wěn)定性、功能集、示例配置文件和低系統(tǒng)資源的消耗讓他后來居上,在全球活躍的網(wǎng)站中有12.18%的使用比率,大約為2220萬個網(wǎng)站。
研究nginx優(yōu)化時反復(fù)安裝清理nginx,為方便做了一個簡單部署腳本,用的最新穩(wěn)定版1.14.0,默認(rèn)路徑,加入systemd系統(tǒng)進(jìn)程管理中,可以通過systemd管理nginx的啟動、終止、重載、狀態(tài)、開機(jī)自啟等.
#!/bin/bash yum -y install gcc pcre pcre-devel sleep 2 cd ~ tar -zxvf ~/zlib-1.2.11.tar.gz cd ~/zlib-1.2.11 && ./configure && make && make install cd ~ tar -zxvf ~/nginx-1.14.0.tar.gz cd ~/nginx-1.14.0 && ./configure && make && make install cd ~ #/usr/local/nginx/sbin/nginx firewall-cmd --set-default-zone=trusted touch /lib/systemd/system/nginx.service echo "[Unit] Description=nginx After=network.target [Service] Type=forking ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx reload ExecStop=/usr/local/nginx/sbin/nginx quit PrivateTmp=true [Install] WantedBy=multi-user.target" > /lib/systemd/system/nginx.service systemctl enable nginx.service systemctl restart nginx.service echo "nginx done"
需要再次覆蓋nginx時,用awk找到nginx的進(jìn)程然后kill掉,再次執(zhí)行安裝腳本就行.
kill -9 $`ps aux | grep 'nginx' | awk 'NR==2{print $2}'`
二、nginx優(yōu)化
nginx優(yōu)化配置集中在nginx.conf文件的main和events段.
main段中worker配置,可以通過work_cpu_affinity選項(xiàng),按任務(wù)類型:CPU密集型或者IO密集型,根據(jù)實(shí)際業(yè)務(wù)情況綁定每個worker進(jìn)程運(yùn)行在哪個CPU核心上,(前提是系統(tǒng)必須為多核心CPU),例如
# 4核心CPU中,開啟4個worker,每個worker分別對應(yīng)cpu0/cpu1/cpu2/cpu. worker_processes 4; worker_cpu_affinity 0001 0010 0100 1000; # 4核心CPU中,也可以只開啟2個worker,第一個worker對應(yīng)cpu0/cpu2,第二個worker對應(yīng)cpu1/cpu3. worker_processes 2; worker_cpu_affinity 0101 1010;
envents段中開啟集中一次性接入連接請求和串行方式接入新連接
events { worker_connections 1024; # 每個worker最大連接數(shù). multi_accept on; # 是否集中接入監(jiān)聽到的連接請求,默認(rèn)為off,關(guān)閉時一次只接收一個連接. accept_mutex on # 默認(rèn)為on,表示以串行方式接入新連接,off時,將通報(bào)給所有worker
其它的,例如HTTP段優(yōu)化,sendfile、keepalive_timeout、gzip是nginx中必做.
總結(jié)
以上所述是小編給大家介紹的nginx部署及簡單優(yōu)化 ,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
云服務(wù)器使用寶塔搭建Python環(huán)境,運(yùn)行django程序
本文詳細(xì)講解了在云服務(wù)器使用寶塔搭建Python環(huán)境,運(yùn)行django程序的方法。對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-12-12Nginx記錄分析響應(yīng)慢的請求及替換網(wǎng)站響應(yīng)內(nèi)容的配置
這篇文章主要介紹了Nginx記錄分析響應(yīng)慢的請求及替換網(wǎng)站響應(yīng)內(nèi)容的配置,分別用到了ngx_http_log_request_speed模塊和ngx_http_sub_module模塊,需要的朋友可以參考下2016-01-01Nginx配置HTTP強(qiáng)制跳轉(zhuǎn)到HTTPS的解決辦法
這篇文章主要給大家介紹了關(guān)于Nginx配置HTTP強(qiáng)制跳轉(zhuǎn)到HTTPS的解決辦法,當(dāng)Nginx配置https后通常需要將用戶http請求強(qiáng)制跳轉(zhuǎn)到https,需要的朋友可以參考下2023-08-08Nginx對網(wǎng)段內(nèi)ip的連接數(shù)限流配置詳解
這篇文章主要介紹了Nginx對網(wǎng)段內(nèi)ip的連接數(shù)限流配置詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03Prometheus監(jiān)控實(shí)戰(zhàn)篇Nginx、Hbase操作詳解
這篇文章主要介紹了Prometheus監(jiān)控實(shí)戰(zhàn)篇Nginx、Hbase,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-02-02nginx配置域名轉(zhuǎn)發(fā)到其他域名的幾種方法小結(jié)
本文主要介紹了nginx配置域名轉(zhuǎn)發(fā)到其他域名的幾種方法小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06