当前位置 主页 > 服务器问题 > nginx问题汇总 >

    详解nginx反向代理配置及优化

    栏目:nginx问题汇总 时间:2018-09-28 16:15

    本篇文章主要介绍了详解nginx反向代理配置及优化,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    前言:

    由于服务器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.gztar zxvf pcre-7.8.tar.gzcd pcre-7.8/./configuremake && make install

    3 安装nginx

    wget http://sysoev.ru/nginx/nginx-0.7.58.tar.gztar zxvf nginx-0.7.58.tar.gzcd 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=opteronmake && make install

    #注意上文中的--with-cc-opt='-O2' --with-cpu-opt=opteron 这是编译器优化,目前最常用的是-02 而不是3.后面对应CPU的型号,可参照:http://wiki.gentoo.tw/index.php/HOWTO_CFLAG

    第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/bbs.linuxtone.conf; }

    2 upstream.conf 配置文件(这也是做负载的配置方法)

    upstream.conf      upstream bbs.linuxtone.com {         server 192.168.1.4:8099;       }

    3 站点配置文件

    bbs.linuxtone.confserver   {      listen       80;      server_name  bbs.linuxtone.conf;      charset GB2312;      index index.html index.htm;      root  /date/wwwroot/linuxtone/;        location ~ ^/NginxStatus/ {            stub_status on;            access_log off;         }     location / {       root  /date/wwwroot/linuxtone/;       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://bbs.linuxtone.com;      }