工作中的nginx

今天碰到一个nginx相关的需求,算是头一次在生产环境真实运用到这东西吧,许久以前看过相关教程,感觉已经忘完了,留个笔记吧!!!

nginx的亮点在于:反向代理、负载均衡、动静分离

反向代理

这里不对反向代理做过多解释,直接看真实运用。

(1):需求:在服务器tomcat部署web服务,通过反向代理访问该项目

(2):环境:java1.7、tomcat7、nginx

(3):启动tomcat、启动nginx并分别访问
http://192.168.90.240/

工作中的nginx_第1张图片
2017-09-27_140243.png

http://192.168.90.240:8088/ruidong

工作中的nginx_第2张图片
2017-09-27_141140.png

(4):修改nginx配置文件,做项目映射
在server下添加一个location映射即可

工作中的nginx_第3张图片
2017-09-27_143256.png
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  on;

    #负载均衡设置(被下边引用)
   upstream github{
    server 127.0.0.1:88;#git安装地址
    server 127.0.0.1:88;
   }

    server {
        listen       80;
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        client_max_body_size 500m;

        location / {
                proxy_pass http://github;#默认访问git
                proxy_redirect off;
                proxy_set_header Host $host;
                proxy_set_header Host $proxy_host;
                proxy_set_header X-Real_IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
        #项目反向代理配置
        location /ruidong {
                proxy_pass http://localhost:8088/ruidong;
                proxy_redirect default;
        }

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

图片服务器

nginx可以通过反向代理直接做图片服务器,而且配置简单高效,还可以做到负载均衡,跟上边的反向代理服务一样,同样是通过映射找到图片文件夹

(1):先来看看我们的图片放在服务器的哪个目录下
/home/images

工作中的nginx_第4张图片
2017-09-27_150133.png

(2):添加配置

工作中的nginx_第5张图片
2017-09-27_144000.png
#设置扩展名以.gif、jpg、jpeg、png结尾
        location ~ .*\.(gif|jpg|jpeg|png)$ {
            expires 24h;
            root /home/images/;#root根目录,即图片文件夹
            access_log /home/images/nginx/images.log;#图片日志,这里可以不配,但如果配了就要在对应目录下有此文件
            proxy_store on;
            proxy_store_access user:rw group:rw all:rw;#图片权限配置
            proxy_temp_path         /home/images/;#设置缓存文件夹
            proxy_redirect          off;

            proxy_set_header        Host 127.0.0.1;
            proxy_set_header        X-Real-IP $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
            client_max_body_size    10m;
            client_body_buffer_size 1280k;
            proxy_connect_timeout   900;#设置连接超时时间
            proxy_send_timeout      900;#后端服务器数据回传时间(代理发送超时)
            proxy_read_timeout      900;#连接成功后,后端服务器响应时间(代理接收超时)
            proxy_buffer_size       40k;
            proxy_buffers           40 320k;
            proxy_busy_buffers_size 640k;
            proxy_temp_file_write_size 640k;#设置缓存文件夹大小
            if ( !-e $request_filename) {
                 proxy_pass  http://localhost:80;
            }
        }

测试:http://192.168.90.240/15.png

工作中的nginx_第6张图片
2017-09-27_150020.png

到这里就结束了,是不是很简单!!!

nginx相关配置简述:http://www.jianshu.com/p/ecec203952cb

你可能感兴趣的:(工作中的nginx)