服務項目:網站建設、仿站、程序開發、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
          主站蜘蛛池模板: 色猫咪av在线网址| 99在线精品视频在线观看| 最新亚洲人成网站在线观看| 国产精品美女久久久久AV福利| 中文字幕av高清片| 日本爽爽爽爽爽爽在线观看免| 亚洲一级片免费看| 欧美极度另类videos| 国产中文制服丝袜另类| 四虎最新永久免费视频| 国产精品酒店视频| 99亚洲精品视频| 好硬好湿好爽再深一点视频| 中文字幕免费在线看| 欧美日韩一区二区三区自拍| 国产69精品久久久久777| 337p日本欧洲亚洲大胆人人| 天天操夜夜操免费视频| 久久精品国产亚洲av麻| 猛男狂搡美女免费| 国产免费小视频| 777爽死你无码免费看一二区| 日本大片在线看黄a∨免费| 亚洲av最新在线网址| 福利视频第一页| 啊灬啊别停灬用力啊呻吟| 被义子侵犯的漂亮人妻中字| 国产性天天综合网| 欧美丝袜一区二区三区| 天天射天天干天天色| 三级黄色在线观看| 本子库全彩时间暂停| 亚洲最大中文字幕无码网站| 狠狠综合欧美综合欧美色| 全彩里番acg里番| 美国式禁忌3在线| 四虎永久网址在线观看| 色yeye香蕉凹凸视频在线观看| 国色天香社区在线观看免费播放| 人与禽交zozo| 蝌蚪蚪窝视频在线视频手机 |