搭建nigx(配置文件,负载均衡配置)

1安装依赖包


yum install -y wget  
yum install -y vim-enhanced  
yum install -y make cmake gcc gcc-c++  

yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel

2上传包
这里写图片描述

解压缩
[root@xiniu nginx]# ls
nginx-1.10.2.tar.gz
[root@xiniu nginx]# tar -zxvf nginx-1.10.2.tar.gz

进行configure配置

[root@xiniu nginx]# ls
nginx-1.10.2  nginx-1.10.2.tar.gz
[root@xiniu nginx]# cd nginx-1.10.2
[root@xiniu nginx-1.10.2]# ./configure --prefix=/usr/local/nginx

打印内容
checking for struct dirent.d_namlen ... not found
checking for struct dirent.d_type ... found
checking for sysconf(_SC_NPROCESSORS_ONLN) ... found
checking for openat(), fstatat() ... found
checking for getaddrinfo() ... found
checking for PCRE library ... found
checking for PCRE JIT support ... found
checking for md5 in system md library ... not found
checking for md5 in system md5 library ... not found
checking for md5 in system OpenSSL crypto library ... found
checking for sha1 in system md library ... not found
checking for sha1 in system OpenSSL crypto library ... found
checking for zlib library ... found
creating objs/Makefile

Configuration summary
  + using system PCRE library
  + OpenSSL library is not used
  + md5: using system crypto library
  + sha1: using system crypto library
  + using system zlib library

  nginx path prefix: "/usr/local/nginx"
  nginx binary file: "/usr/local/nginx/sbin/nginx"
  nginx modules path: "/usr/local/nginx/modules"
  nginx configuration prefix: "/usr/local/nginx/conf"
  nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
  nginx pid file: "/usr/local/nginx/logs/nginx.pid"
  nginx error log file: "/usr/local/nginx/logs/error.log"
  nginx http access log file: "/usr/local/nginx/logs/access.log"
  nginx http client request body temporary files: "client_body_temp"
  nginx http proxy temporary files: "proxy_temp"
  nginx http fastcgi temporary files: "fastcgi_temp"
  nginx http uwsgi temporary files: "uwsgi_temp"
  nginx http scgi temporary files: "scgi_temp"

3编译安装


执行
[root@xiniu nginx-1.10.2]# make && make install
make -f objs/Makefile
make[1]: 进入目录“/usr/local/nginx/nginx-1.10.2”
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I ob
js \    -o objs/src/core/nginx.o \

.........
    '/usr/local/nginx/conf/scgi_params.default'
test -f '/usr/local/nginx/conf/nginx.conf' \
    || cp conf/nginx.conf '/usr/local/nginx/conf/nginx.conf'
cp conf/nginx.conf '/usr/local/nginx/conf/nginx.conf.default'
test -d '/usr/local/nginx/logs' \
    || mkdir -p '/usr/local/nginx/logs'
test -d '/usr/local/nginx/logs' \
    || mkdir -p '/usr/local/nginx/logs'
test -d '/usr/local/nginx/html' \
    || cp -R html '/usr/local/nginx'
test -d '/usr/local/nginx/logs' \
    || mkdir -p '/usr/local/nginx/logs'
make[1]: 离开目录“/usr/local/nginx/nginx-1.10.2

4检查nginx是否已经正常启动,看到如下信息说明正常启动

[root@xiniu nginx-1.10.2]# /usr/local/nginx/sbin/nginx
[root@xiniu nginx-1.10.2]# ps -ef | grep nginx
root       7622      1  0 15:49 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
nobody     7623   7622  0 15:49 ?        00:00:00 nginx: worker process
root       7625   2865  0 15:49 pts/1    00:00:00 grep --color=auto nginx
[root@xiniu nginx-1.10.2]# 

测试
输入:
linux的IP:80
这里写图片描述

nginx配置
在nginx目录下进入conf目录,该目录下有个nginx.conf文件,这是nginx最重要的配置文件

#user  nobody;  

#开启进程数 <=CPU数   
worker_processes  1;  

#错误日志保存位置  
#error_log  logs/error.log;  
#error_log  logs/error.log  notice;  
#error_log  logs/error.log  info;  

#进程号保存文件  
#pid        logs/nginx.pid;  

#每个进程最大连接数(最大连接=连接数x进程数)每个worker允许同时产生多少个链接,默认1024  
events {  
    worker_connections  1024;  
}  


http {  
    #文件扩展名与文件类型映射表  
    include       mime.types;  
    #默认文件类型  
    default_type  application/octet-stream;  

    #日志文件输出格式 这个位置相于全局设置  
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '  
    #                  '$status $body_bytes_sent "$http_referer" '  
    #                  '"$http_user_agent" "$http_x_forwarded_for"';  

    #请求日志保存位置  
    #access_log  logs/access.log  main;  

    #打开发送文件  
    sendfile        on;  
    #tcp_nopush     on;  

    #keepalive_timeout  0;  
    #连接超时时间  
    keepalive_timeout  65;  

    #打开gzip压缩  
    #gzip  on;  

    server {  
        #监听端口,默认是80端口  
        listen       80;  
        #监听域名  
        server_name  localhost;  

        #charset koi8-r;  

        #nginx访问日志放在logs/host.access.log下,并且使用main格式(还可以自定义格式)  
        #access_log  logs/host.access.log  main;  

        #如果没有location更明确的匹配访问路径的话,访问请求都会被该location处理。  
        location / {  
            #root指定nginx的根目录为/usr/local/nginx/html  
            root   html;  
            #默认访问文件,欢迎页先去html目录下找index.html,如果找不到再去找index.htm  
            index  index.html index.htm;  
        }  

        #error_page  404              /404.html;  
        # redirect server error pages to the static page /50x.html  
        #  

        #错误页面及其返回地址,错误码为500、502、503、504都会返回50.html错误页面。  
        error_page   500 502 503 504  /50x.html;  
        #location后面是"="的话,说明是精确匹配  
        location = /50x.html {  
            root   html;  
        }  

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80  
        #  
        #location ~ \.php$ {  
        #    proxy_pass   http://127.0.0.1;  
        #}  

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000  
        #  
        #location ~ \.php$ {  
        #    root           html;  
        #    fastcgi_pass   127.0.0.1:9000;  
        #    fastcgi_index  index.php;  
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;  
        #    include        fastcgi_params;  
        #}  

        # deny access to .htaccess files, if Apache's document root  
        # concurs with nginx's one  
        #  
        #location ~ /\.ht {  
        #    deny  all;  
        #}  
    }  


    # another virtual host using mix of IP-, name-, and port-based configuration  
    #  
    #server {  
    #    listen       8000;  
    #    listen       somename:8080;  
    #    server_name  somename  alias  another.alias;  

    #    location / {  
    #        root   html;  
    #        index  index.html index.htm;  
    #    }  
    #}  


    # HTTPS server  
    #  
    #server {  
    #    listen       443 ssl;  
    #    server_name  localhost;  

    #    ssl_certificate      cert.pem;  
    #    ssl_certificate_key  cert.key;  

    #    ssl_session_cache    shared:SSL:1m;  
    #    ssl_session_timeout  5m;  

    #    ssl_ciphers  HIGH:!aNULL:!MD5;  
    #    ssl_prefer_server_ciphers  on;  

    #    location / {  
    #        root   html;  
    #        index  index.html index.htm;  
    #    }  
    #}  

}  

测试配置
当访问www.test.com:7080,实际访问127.0.0.1:8090


#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    server_names_hash_bucket_size 128;

    client_max_body_size 8m;

    client_header_buffer_size 32k;

    large_client_header_buffers 4 64k;

    #sendfile        on;

    tcp_nopush on;
    tcp_nodelay on;


   # keepalive_timeout 60;

    client_header_timeout 10;

    client_body_timeout 10;

    send_timeout 10;


    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    fastcgi_buffer_size 64k;
    fastcgi_buffers 4 64k;
    fastcgi_busy_buffers_size 128k;
    fastcgi_temp_file_write_size 128k;


    gzip on; 
    gzip_min_length 1k; 

    gzip_buffers 4 16k;

    gzip_http_version 1.0;

    gzip_comp_level 2;

    gzip_types text/plain application/x-javascript text/css application/xml;

    gzip_vary on;

    #gzip  on;

    upstream test{
            server 127.0.0.1:8080;
       }

    #访问:www.test.com:7080
    server {
        listen       7080;
        server_name  www.test.com;


    #映射:127.0.0.1:8090
        location / {
            proxy_pass http://test;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }




    }






}

负载配置

upstream oms_server {
        ip_hash;
        server 172.16.x.x;
        server 172.16.x.x;
        server 172.16.x.x;
        }

    server {
        listen       80;
        server_name  www.xxx.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass  http://oms_server;
            proxy_redirect     off;
            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
            proxy_max_temp_file_size 0;
            proxy_connect_timeout      90;
            proxy_send_timeout         90;
            proxy_read_timeout         90;
            proxy_buffer_size          4k;
            proxy_buffers              4 32k;
            proxy_busy_buffers_size    64k;
            proxy_temp_file_write_size 64k;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

}

具体的可看
https://blog.csdn.net/yougoule/article/details/78186138

猜你喜欢

转载自blog.csdn.net/zhou920786312/article/details/80052816