成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

nginx 負(fù)載服務(wù)器優(yōu)化

yunhao / 2181人閱讀

摘要:每個(gè)進(jìn)程打開(kāi)文件描述符最大數(shù)目配置要和系統(tǒng)的單進(jìn)程打開(kāi)文件數(shù)一致內(nèi)核下開(kāi)啟文件打開(kāi)數(shù)為,就相應(yīng)應(yīng)該填寫(xiě)調(diào)度時(shí)分配請(qǐng)求到進(jìn)程并不是那么的均衡,假如超過(guò)會(huì)返回錯(cuò)誤。

user  www www;

# ginx要開(kāi)啟的進(jìn)程數(shù) 一般等于cpu的總核數(shù),沒(méi)必要開(kāi)那么多,1個(gè)nginx內(nèi)存消耗10兆左右 
worker_processes  4;

# 為每個(gè)進(jìn)程分配cpu,上例中將4 個(gè)進(jìn)程分配到4個(gè)cpu,當(dāng)然可以寫(xiě)多個(gè),或者將一 個(gè)進(jìn)程分配到多個(gè)cpu。
worker_cpu_affinity 00000001 00000010 00000100 00001000;

# 每個(gè)nginx進(jìn)程打開(kāi)文件描述符最大數(shù)目 配置要和系統(tǒng)的單進(jìn)程打開(kāi)文件數(shù)一
# 致,linux 2.6內(nèi)核下開(kāi)啟文件打開(kāi)數(shù)為65535,worker_rlimit_nofile就相應(yīng),應(yīng)該填寫(xiě)65535  
# nginx調(diào)度時(shí)分配請(qǐng)求到進(jìn)程并不是那么的均衡,假如超過(guò)會(huì)返回502錯(cuò)誤。我這里寫(xiě)的大一點(diǎn)
worker_rlimit_nofile 100000;

# 開(kāi)啟nginx錯(cuò)誤日志
error_log  logs/error.log;

# 告訴nginx只能記錄嚴(yán)重的錯(cuò)誤
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    # 每個(gè)工作進(jìn)程允許最大的同時(shí)連接數(shù)(Maxclient = work_processes * worker_connections)
    # 默認(rèn)1024
    worker_connections  65535;
    
    # 告訴nginx收到一個(gè)新連接通知后接受盡可能多的連接。
    multi_accept on;
    
    # 設(shè)置用于復(fù)用客戶端線程的輪詢方法。如果你使用Linux 2.6+,你應(yīng)該使用epoll。
    # 如果你使用*BSD,你應(yīng)該使用kqueue。
    # 值得注意的是如果你不知道Nginx該使用哪種輪詢方法的話,它會(huì)選擇一個(gè)最適合你操作系統(tǒng)的
    use epoll;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    log_format  main  "$remote_addr - $remote_user [$time_local] "$request" "
                      "$status $body_bytes_sent "$http_referer" "
                      ""$http_user_agent" "$http_x_forwarded_for"";

    limit_req_zone $binary_remote_addr zone=allips:10m rate=20r/s;


    # 
    #access_log  logs/access.log  main;

    # 這個(gè)將為打開(kāi)文件指定緩存,默認(rèn)是沒(méi)有啟用的,max 指定緩存數(shù)量,建議和打開(kāi)文件數(shù)一致,
    # inactive 是指經(jīng)過(guò)多長(zhǎng)時(shí)間文件沒(méi)被請(qǐng)求后刪除緩存
    open_file_cache max=204800 inactive=20s;
    
    # open_file_cache 指令中的inactive 參數(shù)時(shí)間內(nèi)文件的最少使用次數(shù),
    # 如果超過(guò)這個(gè)數(shù)字,文件描述符一直是在緩存中打開(kāi)的,
    # 如上例,如果有一個(gè)文件在inactive 時(shí)間內(nèi)一次沒(méi)被使用,它將被移除
    open_file_cache_min_uses 1;
    
    # 這個(gè)是指多長(zhǎng)時(shí)間檢查一次緩存的有效信息
    open_file_cache_valid 30s;

    # 并不會(huì)讓nginx執(zhí)行的速度更快,但它可以關(guān)閉在錯(cuò)誤頁(yè)面中的nginx版本數(shù)字,這樣對(duì)于安全性是有好處的
    server_tokens off;
    
    # 磁盤(pán)和TCP socket之間互相拷貝數(shù)據(jù)(或任意兩個(gè)文件描述符)。
    # Pre-sendfile是傳送數(shù)據(jù)之前在用戶空間申請(qǐng)數(shù)據(jù)緩沖區(qū)
    sendfile        on;
    
    # 告訴nginx在一個(gè)數(shù)據(jù)包里發(fā)送所有頭文件,而不一個(gè)接一個(gè)的發(fā)送
    #tcp_nopush     on;
    
    # 告訴nginx不要緩存數(shù)據(jù),而是一段一段的發(fā)送,
    # 當(dāng)需要及時(shí)發(fā)送數(shù)據(jù)時(shí),就應(yīng)該給應(yīng)用設(shè)置這個(gè)屬性,這樣發(fā)送一小塊數(shù)據(jù)信息時(shí)就不能立即得到返回值。
    #tcp_nodelay on;

    upstream phpServer{
        server 172.20.17.210:9000 weight=1 max_fails=2 fail_timeout=3;
        server 172.20.17.211:9000 weight=1 max_fails=2 fail_timeout=3;
    }

    # keepalive超時(shí)時(shí)間
    keepalive_timeout  65;
    client_max_body_size 2m;

    # 不準(zhǔn)許IP直接訪問(wèn), 直接訪問(wèn)報(bào)500錯(cuò)誤
    server {
        listen 80 default_server;
        server_name _;
        return 500;
    }

    # 配置虛擬主機(jī),過(guò)個(gè)server就復(fù)制多個(gè)
    server {
        listen 80;
    
        # 開(kāi)啟gzip壓縮
        gzip on;
        gzip_min_length 1k;
        gzip_buffers 4 16k;
        #gzip_http_version 1.0;
        gzip_comp_level 2;
        gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php;
        gzip_vary off;
        gzip_disable "MSIE [1-6].";
    
        # 配置域名
        server_name  www.xxxxx.com xxxxx.com;
    
        # 配置網(wǎng)站目錄
        root   /usr/local/nginx/html/xxxxx.com;
    
        # 只允許我們的域名的訪問(wèn)
        if ($host !~ ^(xxxxx.com|www.xxxxx.com|images.xxxxx.com)$ ) {
            return 444;
        }
    
        # 配置域名重定向
        #if ($host != "www.xxxxx.com" ) {
        #    rewrite ^/(.*)$ http://www.xxxxx.com/$1 permanent;
        #}
        
        # 限制可用的請(qǐng)求方法
        if ($request_method !~ ^(GET|HEAD|POST)$ ) {
            return 444;
        }
        
        # 如何拒絕一些User-Agents
        if ($http_user_agent ~* LWP::Simple|BBBike|wget) {
            return 403;
        }
        
        # 如何防止圖片盜鏈
        location /images/ {
            valid_referers none blocked www.xxxxx.com xxxxx.com;
            if ($invalid_referer) {
                return   403;
            }
        }
    
        location / {
            # 配置rewrite
            if (!-e $request_filename) {
                rewrite  ^(.*)$  /index.php?s=$1  last;
                break;
            }
    
            # include  /usr/local/nginx/html/yphp/.htaccess;
            # rewrite ^/(.+)/(.+)[/]?$ /index.php?m=$1&a=$2 last;
    
            # 配置默認(rèn)訪問(wèn)文件
            index  index.php index.html index.htm;
        }
    
        # 包含虛擬主機(jī)公用配置文件
        include server.conf;
    }
}

php-fpm.conf 文件配置優(yōu)化
[global]
pid = run/php-fpm.pid
process_control_timeout=5
[www]
listen.allowed_clients = 127.0.0.1
user=www
group=www
pm=dynamic

# 增加 PHP-FPM 打開(kāi)文件描述符的限制
rlimit_files = 51200

# 這個(gè)配置決定了php-fpm的總進(jìn)程數(shù),內(nèi)存小的少設(shè)點(diǎn)
pm.max_children=20

# 并發(fā)數(shù)越大,此請(qǐng)求數(shù)應(yīng)越大
pm.max_requests=10000

# 初始php-fpm進(jìn)程數(shù)
pm.start_servers =10

# 動(dòng)態(tài)方式下的起始php-fpm進(jìn)程數(shù)量(設(shè)置太大可能會(huì)報(bào)錯(cuò),根據(jù)服務(wù)器配置設(shè)置)
pm.min_spare_servers = 5

# 動(dòng)態(tài)方式下服務(wù)器空閑時(shí)最小php-fpm進(jìn)程數(shù)量
pm.max_spare_servers = 10

# 表示在emergency_restart_interval所設(shè)值內(nèi)出現(xiàn)SIGSEGV或者SIGBUS錯(cuò)誤的php-cgi
# 進(jìn)程數(shù)如果超過(guò) emergency_restart_threshold個(gè),php-fpm就會(huì)優(yōu)雅重啟。這兩個(gè)選項(xiàng)一般保持默認(rèn)值。
emergency_restart_threshold = 60
emergency_restart_interval = 60s
iptables 防火墻限制用戶訪問(wèn)平率
# 下面的例子會(huì)阻止來(lái)自一個(gè)IP的60秒鐘內(nèi)超過(guò)15個(gè)連接端口80的連接數(shù)
/sbin/iptables -A INPUT -p tcp –dport 80 -i eth0 -m state –state NEW -m recent –set
/sbin/iptables -A INPUT -p tcp –dport 80 -i eth0 -m state –state NEW -m recent –update –seconds 60  –hitcount 15 -j DROP
service iptables save

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/39282.html

相關(guān)文章

  • nginx網(wǎng)站性能優(yōu)化篇(3)】反向代理實(shí)現(xiàn)負(fù)載均衡

    摘要:注意本篇文章為負(fù)載均衡的理論篇后續(xù)找個(gè)機(jī)會(huì)推出實(shí)戰(zhàn)篇。理論篇主要講述如何配置負(fù)載均衡配置負(fù)載均衡不難。常用的狀態(tài)有,表示當(dāng)前的暫時(shí)不參與負(fù)載均衡。注,當(dāng)負(fù)載調(diào)度算法為時(shí),后端服務(wù)器在負(fù)載均衡調(diào)度中的狀態(tài)不能是和。 注意,本篇文章為負(fù)載均衡的理論篇,后續(xù)找個(gè)機(jī)會(huì)推出實(shí)戰(zhàn)篇。理論篇主要講述如何配置負(fù)載均衡,配置負(fù)載均衡不難。但實(shí)戰(zhàn)中要要注意幾個(gè)點(diǎn),比如如何做到多服務(wù)器之間的數(shù)據(jù)共享(ses...

    xi4oh4o 評(píng)論0 收藏0
  • 利用 NGINX 最大化 Python 性能,第二部分:負(fù)載均衡和監(jiān)控

    摘要:現(xiàn)有的服務(wù)器和應(yīng)用程序服務(wù)器相結(jié)合并在一個(gè)冒泡中運(yùn)行,無(wú)法直接接觸網(wǎng)絡(luò)流量,由反向代理服務(wù)器提出填鴨式請(qǐng)求。賦予高可用性讓你的反向代理服務(wù)器鏡像到在線備份,同時(shí)擁有備用的應(yīng)用程序服務(wù)器,讓你的站點(diǎn)高度可用。 【編者按】本文主要介紹 NGINX 的主要功能以及如何通過(guò) Nginx 優(yōu)化 Python 應(yīng)用性能。本文系國(guó)內(nèi) ITOM 管理平臺(tái) OneAPM 編譯呈現(xiàn)。 本文上一篇系: 利用...

    zhangrxiang 評(píng)論0 收藏0
  • 利用 NGINX 最大化 Python 性能,第二部分:負(fù)載均衡和監(jiān)控

    摘要:現(xiàn)有的服務(wù)器和應(yīng)用程序服務(wù)器相結(jié)合并在一個(gè)冒泡中運(yùn)行,無(wú)法直接接觸網(wǎng)絡(luò)流量,由反向代理服務(wù)器提出填鴨式請(qǐng)求。賦予高可用性讓你的反向代理服務(wù)器鏡像到在線備份,同時(shí)擁有備用的應(yīng)用程序服務(wù)器,讓你的站點(diǎn)高度可用。 【編者按】本文主要介紹 NGINX 的主要功能以及如何通過(guò) Nginx 優(yōu)化 Python 應(yīng)用性能。本文系國(guó)內(nèi) ITOM 管理平臺(tái) OneAPM 編譯呈現(xiàn)。 本文上一篇系: 利用...

    Snailclimb 評(píng)論0 收藏0
  • 前端必須知道的Nginx的常用配置

    摘要:負(fù)載均衡是通過(guò)后端引入一個(gè)負(fù)載均衡器和至少一個(gè)額外的服務(wù)器來(lái)緩解這類問(wèn)題增加的服務(wù)器和原本的服務(wù)器提供相同的內(nèi)容。負(fù)載均衡不需要前端進(jìn)行配置,主要是服務(wù)端進(jìn)行配置,前端稍作了解即可。 Nginx主要功能 負(fù)載均衡 反向代理 動(dòng)靜分離 配置https 負(fù)載均衡 負(fù)載均衡是一門計(jì)算機(jī)網(wǎng)絡(luò)技術(shù),主要用來(lái)優(yōu)化資源使用、最大化吞吐率、最小化響應(yīng)時(shí)間、同時(shí)避免過(guò)載的目的。如果一個(gè)網(wǎng)站只有一臺(tái)服...

    tracymac7 評(píng)論0 收藏0
  • 前端20個(gè)靈魂拷問(wèn) 徹底搞明白你就是中級(jí)前端工程師 【下篇】

    摘要:安裝后已經(jīng)完成了安裝,并且等待其他的線程被關(guān)閉。激活后在這個(gè)狀態(tài)會(huì)處理事件回調(diào)提供了更新緩存策略的機(jī)會(huì)。并可以處理功能性的事件請(qǐng)求后臺(tái)同步推送。廢棄狀態(tài)這個(gè)狀態(tài)表示一個(gè)的生命周期結(jié)束。 showImg(https://segmentfault.com/img/bVbwWJu?w=2056&h=1536); 不知不覺(jué),已經(jīng)來(lái)到了最后的下篇 其實(shí)我寫(xiě)的東西你如果認(rèn)真去看,跟著去寫(xiě),應(yīng)該能有...

    fireflow 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<