Nginx实现负载均衡

比眉伴天荒 2022-04-16 07:09 397阅读 0赞

一、安装搭建环境

1.1 编译环境

  1. yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

1.2 支持rewirte

第一步、进入安装目录用wget下载:

  1. #进入安装目录
  2. cd /tools
  3. #下载
  4. wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz

第二步、在指定目录解压

  1. #解压
  2. tar -zxvf pcre8.4.2.tar.gz
  3. #改名为prce
  4. mv pcre8.4.2 pcre
  5. #删除安装包
  6. rm -rf pcre8.4.2.tar.gz

第三步、编译

  1. #指定编译信息
  2. ./configure
  3. #编译并安装
  4. make && make install

二、安装nginx

第一步、进入安装目录用wget下载:

  1. #进入安装目录
  2. cd /tools
  3. #下载
  4. wget http://nginx.org/download/nginx-1.15.6.tar.gz

第二步、在指定目录解压

  1. #解压
  2. tar -zxvf nginx-1.15.6.tar.gz
  3. #改名为nginx
  4. mv nginx-1.15.6 nginxc
  5. #删除安装包
  6. rm -rf nginx-1.15.6.tar.gz

第三步、编译

  1. #指定编译信息
  2. ./configure --prefix=/tools/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/tools/pcre
  3. #编译并安装
  4. make
  5. make install
  6. #删除源包
  7. rm -rf nginxc

第四步、测试

  1. #进入nginx工具目录
  2. cd /tools/nginx/sbin
  3. #执行nginx -v
  4. ./ningx -v

三、配置nginx

第一步、创建用户信息

  1. /usr/sbin/groupadd xxx
  2. /usr/sbin/useradd -g xxx

第二步、修改配置文件

  1. vim /tools/nginx/conf/nginx.conf

添加如下内容:

  1. user xxx xxx;
  2. worker_processes 1; #设置值和CPU核心数一致
  3. error_log /tools/nginx/logs/nginx_error.log crit; #日志位置和日志级别
  4. pid /tools/nginx/nginx.pid;
  5. #Specifies the value for maximum file descriptors that can be opened by this process.
  6. worker_rlimit_nofile 65535;
  7. events
  8. {
  9. use epoll;
  10. worker_connections 65535;
  11. }
  12. http
  13. {
  14. include mime.types;
  15. default_type application/octet-stream;
  16. log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  17. '$status $body_bytes_sent "$http_referer" '
  18. '"$http_user_agent" $http_x_forwarded_for';
  19. #charset gb2312;
  20. server_names_hash_bucket_size 128;
  21. client_header_buffer_size 32k;
  22. large_client_header_buffers 4 32k;
  23. client_max_body_size 8m;
  24. sendfile on;
  25. tcp_nopush on;
  26. keepalive_timeout 60;
  27. tcp_nodelay on;
  28. fastcgi_connect_timeout 300;
  29. fastcgi_send_timeout 300;
  30. fastcgi_read_timeout 300;
  31. fastcgi_buffer_size 64k;
  32. fastcgi_buffers 4 64k;
  33. fastcgi_busy_buffers_size 128k;
  34. fastcgi_temp_file_write_size 128k;
  35. gzip on;
  36. gzip_min_length 1k;
  37. gzip_buffers 4 16k;
  38. gzip_http_version 1.0;
  39. gzip_comp_level 2;
  40. gzip_types text/plain application/x-javascript text/css application/xml;
  41. gzip_vary on;
  42. #limit_zone crawler $binary_remote_addr 10m;
  43. #下面是server虚拟主机的配置
  44. #upstream设置需要代理对象 hello代理名
  45. upstream hello {
  46. #weight随机权衡值
  47. server 106.12.121.80:8081 weight=1;
  48. server 106.12.121.80:8082 weight=2;
  49. }
  50. #监听转发
  51. server {
  52. listen 80;
  53. server_name 106.12.121.80;
  54. location / {
  55. proxy_pass http://hello;
  56. proxy_redirect default;
  57. }
  58. }
  59. }

输入:/tools/nginx/sbin/nginx -t 检查配置是否有问题

四、测试

创建测试用boot项目

  1. /**
  2. * @author sunyiran
  3. */
  4. @SpringBootApplication
  5. @RestController
  6. public class HelloApplication {
  7. @Autowired
  8. Environment environment;
  9. public static void main(String[] args) {
  10. SpringApplication.run(HelloApplication.class, args);
  11. }
  12. @RequestMapping("/hello")
  13. public String test() {
  14. return environment.getProperty("server.port");
  15. }
  16. }

启动两个实例,一个端口为8081,一个为8082

执行 /tools/nginx/sbin/nginx 开始测试:

第一次:20181119132639490.png

第二次:20181119132910116.png

第三次:20181119132928461.png

发表评论

表情:
评论列表 (有 0 条评论,397人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Nginx实现负载均衡

    什么是负载均衡 负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

    相关 Nginx实现负载均衡

    Nginx实现负载均衡的原理: 负载均衡在服务端开发中算是一个比较重要的特性。因为Nginx除了作为常规的Web服务器外,还会被大规模的用于反向代理前端,因为Nginx的