nginx的配置,实现反向代理、负载均衡

作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)

1.nginx的作用

nginx是一个轻量的Web和反向代理服务器,可以实现:
1.服务器静态资源的访问
2.反向代理,通过监听端口/域名将请求转发给指定的服务器
3.负载均衡,通过反向代理使客户端的请求nginx,然后转发给不同的服务器,实现负载均衡。

2.nginx的配置文件

//启动nginx的用户和所属组,默认是nobody,如果在访问时报错是(13: Permission denied),那么可以修改nginx的启动用户,以及更改静态文件的权限
user  root admin;
//nginx开启的进程数,建议指定和cpu数量一致
worker_processes auto;
//全局的错误日志存放路径
error_log  /www/wwwlogs/nginx_error.log  crit;
//指定进程pid存放的位置,保存的就是nginx的进程号
pid        /www/server/nginx/logs/nginx.pid;
//指定nginx的工作模式
events
    {	//select、poll(前两种是标准的模式)、kqueue、epoll(后两种是高效的)
        use epoll;
        //定义nginx进程的最大连接数
        worker_connections 51200;
        multi_accept on;
    }

http
    {
        include       mime.types;
		#include luawaf.conf;

		include proxy.conf;

        default_type  application/octet-stream;

        server_names_hash_bucket_size 512;
        client_header_buffer_size 32k;
        large_client_header_buffers 4 32k;
        client_max_body_size 50m;

        sendfile   on;
        tcp_nopush on;

        keepalive_timeout 60;

        tcp_nodelay on;

        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 256k;
		fastcgi_intercept_errors on;

        gzip on;
        gzip_min_length  1k;
        gzip_buffers     4 16k;
        gzip_http_version 1.1;
        gzip_comp_level 2;
        gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml;
        gzip_vary on;
        gzip_proxied   expired no-cache no-store private auth;
        gzip_disable   "MSIE [1-6]\.";

        limit_conn_zone $binary_remote_addr zone=perip:10m;
		limit_conn_zone $server_name zone=perserver:10m;

        server_tokens off;
        access_log off;
//核心:虚拟机的配置
server
    {
        listen 888;
        server_name phpmyadmin;
        index index.html index.htm index.php;
        root  /www/server/phpmyadmin;

        #error_page   404   /404.html;
        include enable-php.conf;

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /\.
        {
            deny all;
        }

        access_log  /www/wwwlogs/access.log;
    }
 //虚拟机的配置可以写在不同的配置文件中,通过include引用,减少主文件的复杂度
include /www/server/panel/vhost/nginx/*.conf;
}

打开其中一个虚拟机配置文件

//负载均衡设置,名字是任意取,在后面的server里直接引用就好了,这里只配置了一个服务,可以设置多个,默认是轮询的机制,可以设置weight,给服务设置不同的权重
upstream gateway {
   server 127.0.0.1:8101;
}
//虚拟机的配置
server
{	
    listen 80;
    //监听的域名
    server_name dev.groupbuy.xiongmaodangao.com;
    //静态页面的文件名
    index index.php index.html index.htm default.php default.htm default.html;
    //静态页面的访问路径
    root /www/wwwroot/dev.groupbuy.xiongmaodangao.com;
    
    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    #SSL-END
    
    #ERROR-PAGE-START  错误页配置,可以注释、删除或修改
    #error_page 404 /404.html;
    #error_page 502 /502.html;
    #ERROR-PAGE-END
    
    #PHP-INFO-START  PHP引用配置,可以注释或修改
    include enable-php-00.conf;
    #PHP-INFO-END
   
    #REWRITE-END
    
    #禁止访问的文件或目录
    #location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
    #{
    #    return 404;
    #}


    #location / {
    #    proxy_read_timeout 180s;
    #    proxy_pass http://127.0.0.1:8101;
    #     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_set_header REMOTE-HOST $remote_addr;
    #}
   	//匹配域名后的路径,转发到指定的服务器,支持正则表达式,这里表示匹配
   	//dev.groupbuy.xiongmaodangao.com/api的请求
    location ^~/api {
           proxy_set_header Host $host;
           proxy_set_header REMOTE-HOST $remote_addr;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_buffering off;
           //重定向路径,()就可以使用$来替换,第一个出现的(),就用$1来引用,下面的这个表达式就是指替换^/api/...这一整个部分为...,相当于就是去掉dev.groupbuy.xiongmaodangao.com/api,只保留之后的路径,注意重写不能重写域名和参数
           rewrite ^/api/(.*)$ /$1 break;
           //这里就是反向代理的服务器的地址,因为之前定义了gateway是127.0.0.1:8101,所以就是把dev.groupbuy.xiongmaodangao.com/api开头的请求替换为请求127.0.0.1:8101。
           proxy_pass http://gateway;
      }
    #一键申请SSL证书验证目录相关设置
    #location ~ \.well-known{
    #    allow all;
    #}
    
    #location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    #{
    #    expires      30d;
    #    error_log off;
    #    access_log /dev/null;
    #}
    
    #location ~ .*\.(js|css)?$
    #{
    #    expires      12h;
    #    error_log off;
    #    access_log /dev/null; 
    #}
    access_log  /www/wwwlogs/dev.groupbuy.xiongmaodangao.com.log;
    //当前这个server错误日志的路径,很有用,因为出问题后基本上靠日志来定位问题
    error_log  /www/wwwlogs/dev.groupbuy.xiongmaodangao.com.error.log;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值