服務項目:網站建設、仿站、程序開發、APP開發設計、移動網站開發設計、企業網站設計、電子商務網站開發、網站維護、網站推廣、UX/UI 、HTML5、CSS3、JS / Jquery ...
          四川浚浚科技有限公司
          四川???萍加邢薰?(開發設計官網)TEL : 15308000360 / QQ : 38585404
          深入挖掘用戶需求
          成就品質用戶體驗

          您的位置:首頁 > 技術經驗 > 服務器 > 正文

          nginx反向代理配置及優化
          技術支持服務電話:15308000360 【7x24提供運維服務,解決各類系統/軟硬件疑難技術問題】

          前言: 由于服務器apache抗不住目前的并發.加上前端squid配置后,問題依然無法解決.而頁面程序大部分是動態.無法使用fastcgi來處理.因此想使用nginx做為反向代理apache.整個配置安裝過程很簡單.在考慮高并發的情況下,在安裝前就做了些優化.目前配置能抗住3000以上并發.好像不是特別大哦?呵~~ 但足以~~ 只是還有少量499問題..期待有人跟我討論解決 第1部分:安裝 1 建立用戶及組

          /usr/sbin/groupadd www
          /usr/sbin/useradd -g www www
          
          2 安裝pcre 讓nginx支持rewrite 方便以后所需
          wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.8.tar.gz
          tar zxvf pcre-7.8.tar.gz
          cd pcre-7.8/
          ./configure
          make && make install
          
          3 安裝nginx
          wget http://sysoev.ru/nginx/nginx-0.7.58.tar.gz
          tar zxvf nginx-0.7.58.tar.gz
          cd nginx-0.7.58/
          ./configure --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-cc-opt='-O2' --with-cpu-opt=opteron
          make && make install
          
          #注意上文中的--with-cc-opt='-O2' --with-cpu-opt=opteron 這是編譯器優化,目前最常用的是-02 而不是3.后面對應CPU的型號. 第2部分:配置及優化配置文件 1 nginx.conf 配置文件:
          user    www www;
          worker_processes 4;
          
          # [ debug | info | notice | warn | error | crit ]
          error_log    /usr/local/webserver/nginx/logs/nginx_error.log    crit;
          pid                /usr/local/webserver/nginx/nginx.pid;
          #Specifies the value for maximum file descriptors that can be opened by this process.
          worker_rlimit_nofile 51200;
          events
          {
                   use epoll;
                   worker_connections 51200;
          }
          
          http
          {
                   include             mime.types;
                   default_type    application/octet-stream;
                   source_charset GB2312;
                   server_names_hash_bucket_size 256;
                   client_header_buffer_size 256k;
                   large_client_header_buffers 4 256k;
          
                   #size limits
                   client_max_body_size             50m;
                   client_body_buffer_size        256k;
                   client_header_timeout     3m;
                   client_body_timeout 3m;
                   send_timeout             3m;
          #參數都有所調整.目的是解決代理過程中出現的一些502 499錯誤     
                   sendfile on;
                   tcp_nopush         on;
                   keepalive_timeout 120; #參數加大,以解決做代理時502錯誤
                   tcp_nodelay on;
                  
                   include                    vhosts/upstream.conf;
                   include                    vhosts/junyun.conf; 
          
          }
          
          2 upstream.conf 配置文件(這也是做負載的配置方法)
          upstream.conf
                      upstream www.junyun.wang {
                           server 192.168.1.4:8099;
                       }
          
          
          3 站點配置文件
          junyun.conf
          server
               {
                      listen             80;
                      server_name    junyun.conf;
                      charset GB2312;
                      index index.html index.htm;
                      root    /date/wwwroot/junyun/;
          
                          location ~ ^/NginxStatus/ {
                                  stub_status on;
                                  access_log off;
                           }
          
                   location / {
                       root    /date/wwwroot/junyun/;
                       proxy_redirect off ;
                       proxy_set_header Host $host;
                       proxy_set_header X-Real-IP $remote_addr;
                       proxy_set_header REMOTE-HOST $remote_addr;
                       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                       client_max_body_size 50m;
                       client_body_buffer_size 256k;
                       proxy_connect_timeout 30;
                       proxy_send_timeout 30;
                       proxy_read_timeout 60;
                       proxy_buffer_size 256k;
                       proxy_buffers 4 256k;
                       proxy_busy_buffers_size 256k;
                       proxy_temp_file_write_size 256k;
                       proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
                       proxy_max_temp_file_size 128m;
                       proxy_pass    http://www.junyun.wang;
                      }
          
          
          #參數都有所調整.目的是解決代理過程中出現的一些502 499錯誤
          #Add expires header for static content
               location ~* \.(jpg|jpeg|gif|png|swf)$ {
                   if (-f $request_filename) {
                       root /date/wwwroot/junyun/;
                       expires            1d;
                       break;
                      }
               }
          
                   log_format    access    '$remote_addr - $remote_user [$time_local] "$request" '
                                                           '$status $body_bytes_sent "$http_referer" '
                                                           '"$http_user_agent" $http_x_forwarded_for';
                  access_log    /exp/nginxlogs/junyun_access.log    access;
              
          }
          
          注:第二種代理方式 nginx 處理下圖片,html等靜態的東西.其它動態由apache處理.因此apache也需要做一些參數調整. 設置圖片等過期時間.緩解請求. 如果源與nginx在同一臺機器建議使用如下方法:
                           location / {
                                      proxy_pass    http://192.168.1.4:8099/;
                                      proxy_redirect default ;
                           }
          
          針對不同的目錄進行代理把下面的配置放到根目錄代理的上面
                          location /junyun/ {
                                      proxy_pass    http://192.168.1.4:8099/junyun/;
                                      proxy_redirect default ;
                           }
          
          4 源配置
          
                  ServerAdmin liuyu105#gmail.com
                  DocumentRoot /date/wwwroot/junyun
                  ServerName www.junyun.wang
                  ErrorLog logs/junyun_error_log
               CustomLog "|/usr/local/sbin/cronolog logs/junyun_access_log.%Y%m%d" combined
          
          第3部分:源的優化 1 apache-mpm.conf
          
                  StartServers                    15
                  MinSpareServers             15
                  MaxSpareServers            30
                  ServerLimit                 2536
                  MaxClients                    2048
                  MaxRequestsPerChild     1500
          
          2 apache-keepalive Timeout 120 #與nginx的保持一至 KeepAlive On MaxKeepAliveRequests 400 KeepAliveTimeout 7 第4部分:PHP的優化 優化一:將PHP由之前的xcache換成eaccelerator 1 安裝
          wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2
          tar jxvf eaccelerator-0.9.5.3.tar.bz2
          cd eaccelerator-0.9.5.3/
          /usr/local/webserver/php/bin/phpize
          ./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php5/bin/php-config
          make
          make install
          
          注:PHP路徑以安裝為準! 2 配置
          sed -i 's#extension_dir = "./"#extension_dir = "/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/"\nextension = "memcache.so"\n#' /etc/php.ini
          sed -i 's#output_buffering = Off#output_buffering = On#' /etc/php.ini
          sed -i "s#; always_populate_raw_post_data = On#always_populate_raw_post_data = On#g" /etc/php.ini
          
          配置eAccelerator加速PHP: mkdir -p /usr/local/webserver/eaccelerator_cache vi /etc/php.ini 按shift+g鍵跳到配置文件的最末尾,加上以下配置信息:
          [eaccelerator]
          zend_extension="/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
          eaccelerator.shm_size="128"
          eaccelerator.cache_dir="/usr/local/webserver/eaccelerator_cache"
          eaccelerator.enable="1"
          eaccelerator.optimizer="1"
          eaccelerator.check_mtime="1"
          eaccelerator.debug="0"
          eaccelerator.filter=""
          eaccelerator.shm_max="0"
          eaccelerator.shm_ttl="300"
          eaccelerator.shm_prune_period="120"
          eaccelerator.shm_only="0"
          eaccelerator.compress="1"
          eaccelerator.compress_level="9"
          
          優化二:聯系開發重新編譯php減少php的模塊.以減少php進程所占用內存數.這塊盡管影響不大,但也有一定的作用.編譯前也可以參照nginx的編譯器優化方式安裝. 第5部分:測試并啟動nginx ulimit -SHn 51200 /usr/local/webserver/nginx/sbin/nginx -t /usr/local/webserver/nginx/sbin/nginx 第6部分:nginx日志切割腳本
          #!/bin/bash
          # This script run at 00:00
          
          # The Nginx logs path
          logs_path="/exp/nginxlogs/"
          
          mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/
          mv ${logs_path}junyun_access.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/junyun_access_$(date -d "yesterday" +"%Y%m%d").log
          kill -USR1 `cat /usr/local/webserver/nginx/nginx.pid`
          
          crontab -e
          00 00 * * * /bin/bash    /usr/local/webserver/nginx/sbin/cut_nginx_log.sh
          



          上一篇:LAMP平臺詳述 環境安裝配置
          下一篇:Linux中zip壓縮和unzip解壓縮命令詳解

          相關熱詞搜索:linux apache nginx
          主站蜘蛛池模板: 97一区二区三区四区久久| 久久精品综合电影| 色丁香在线视频| 国产精品白丝AV网站| 中文国产在线观看| 曰批免费视频试看天天视频下| 亚洲韩国在线一卡二卡| 色偷偷人人澡人人爽人人模| 国产福利在线观看一区二区| 99精品无人区乱码在线观看| 成人国产激情福利久久精品| 久久精品视频5| 欧美性受xxxx| 交换美妇94系列部分| 美女又黄又免费的视频| 国产另ts另类人妖| 美女被免费网站91色| 在线精品自拍亚洲第一区| 一级毛片**免费看试看20分钟 | 本子库全彩无遮挡无翼乌触手| 亚洲高清视频免费| 精品无码久久久久久国产| 国产人成777在线视频直播| jizzjizz丝袜老师| 国色天香社区在线观看免费播放| 一级成人a做片免费| 无码人妻精品一二三区免费 | 色综合视频一区二区三区| 国产激情一区二区三区| 91禁漫免费进入| 夫妻免费无码V看片| 中国一级全黄的免费观看| 日本大乳高潮视频在线观看| 亚洲AV无码一区二区三区网址| 欧美最猛性xxxxx短视频| 伊人久久精品亚洲午夜| 精品无码国产自产拍在线观看蜜 | 午夜夜伦鲁鲁片| 野花社区视频在线观看| 国产日韩欧美亚欧在线| 18分钟处破好疼哭视频在线|