Nginx中怎么实现反向代理

这篇文章给大家介绍Nginx中怎么实现反向代理,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

创新互联建站网站建设公司,提供做网站、网站设计,网页设计,建网站,PHP网站建设等专业做网站服务;可快速的进行网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,是专业的做网站团队,希望更多企业前来合作!

1 建立用户及组

/usr/sbin/groupadd www  /usr/sbin/useradd -g www www

2 安装pcre 让Nginx反向代理支持rewrite 方便以后所需

  1. wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.8.tar.gz  

  2. tar zxvf pcre-7.8.tar.gz  

  3. cd pcre-7.8/  

  4. ./configure  

  5. make && make install 


3 安装Nginx反向代理

  1. wget http://sysoev.ru/  nginx  /nginx-0.7.58.tar.gz  

  2. tar zxvf nginx-0.7.58.tar.gz  

  3. cd nginx-0.7.58/  

  4. ./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 

  5. make && make install 


注意上文中的--with-cc-opt='-O2' --with-cpu-opt=opteron 这是编译器优化,目前最常用的是-02 而不是3.后面对应CPU的型号。

第2部分:配置及优化配置文件

1 Nginx.conf 配置文件:

  1. user www www;  

  2. worker_processes 4;  

  3. # [ debug | info | notice | warn | error | crit ]  

  4. error_log /usr/local/webserver/nginx/logs/nginx_error.log crit;  

  5. pid /usr/local/webserver/nginx/nginx.pid;  

  6. #Specifies the value for maximum file descriptors that 
    can be opened by this process.  

  7. worker_rlimit_nofile 51200;  

  8. events  

  9. {  

  10. use epoll;  

  11. worker_connections 51200;  

  12. }  

  13. http  

  14. {  

  15. include mime.types;  

  16. default_type application/octet-stream;  

  17. source_charset GB2312;  

  18. server_names_hash_bucket_size 256;  

  19. client_header_buffer_size 256k;  

  20. large_client_header_buffers 4 256k;  

  21. #size limits  

  22. client_max_body_size 50m;  

  23. client_body_buffer_size 256k;  

  24. client_header_timeout 3m;  

  25. client_body_timeout 3m;  

  26. send_timeout 3m;  

  27. #参数都有所调整.目的是解决代理过程中出现的一些502 499错误   

  28. sendfile on;  

  29. tcp_nopush on;  

  30. keepalive_timeout 120; #参数加大,以解决做代理时502错误  

  31. tcp_nodelay on;  

  32. include vhosts/upstream.conf;  

  33. include vhosts/bbs.linuxtone.conf;   

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

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

3 站点配置文件

  1. bbs.linuxtone.conf  

  2. server  

  3. {  

  4. listen 80;  

  5. server_name bbs.linuxtone.conf;  

  6. charset GB2312;  

  7. index index.html index.htm;  

  8. root /date/wwwroot/linuxtone/;  

  9. location ~ ^/NginxStatus/ {  

  10. stub_status on;  

  11. access_log off;  

  12. }  

  13. location / {  

  14. root /date/wwwroot/linuxtone/;  

  15. proxy_redirect off ;  

  16. proxy_set_header Host $host;  

  17. proxy_set_header X-Real-IP $remote_addr;  

  18. proxy_set_header REMOTE-HOST $remote_addr;  

  19. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  

  20. client_max_body_size 50m;  

  21. client_body_buffer_size 256k;  

  22. proxy_connect_timeout 30;  

  23. proxy_send_timeout 30;  

  24. proxy_read_timeout 60;  

  25. proxy_buffer_size 256k;  

  26. proxy_buffers 4 256k;  

  27. proxy_busy_buffers_size 256k;  

  28. proxy_temp_file_write_size 256k;  

  29. proxy_next_upstream error timeout invalid_header http_500 
    http_503 http_404;  

  30. proxy_max_temp_file_size 128m;  

  31. proxy_pass http://bbs.linuxtone.com;  


参数都有所调整.目的是解决代理过程中出现的一些502 499错误

#Add expires header for static content  location ~* \.(jpg|jpeg|gif|png|swf)$ {  if (-f $request_filename) {  root /date/wwwroot/linuxtone/;  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/bbs.linuxtone_access.log access;  }

关于Nginx中怎么实现反向代理就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


文章名称:Nginx中怎么实现反向代理
网页地址:http://scyanting.com/article/jejepj.html