nginx+tomcat 实现反向代理配置

来源:互联网 发布:剑三正太和尚捏脸数据 编辑:程序博客网 时间:2024/05/10 15:55

一段简单的实现反向代理的代码 -要将请求传递给HTTP代理服务器,则在一个location块内指定proxy_pass指令

server {          listen       80;                                                                server_name  localhost;                                                      client_max_body_size 1024M;        location / {            proxy_pass http://localhost:8080;            proxy_set_header Host $host:$server_port;        }}

保存配置文件后启动Nginx,这样当我们访问localhost的时候,就相当于访问 localhost:8080 了。

注意如果代理访问url地址为http://localhost:8080/jenkins

 location ^~ /jenkins/ {            proxy_pass   http://localhost:8080/jenkins;            proxy_set_header Host $host:$server_port;        }

或输入地址端口即访问

 location / {            proxy_pass   http://localhost:8080/jenkins;            proxy_set_header Host $host:$server_port;        }

Nginx 其他命令
以下包含了 Nginx 常用的几个命令:
/usr/local/webserver/nginx/sbin/nginx -s reload # 重新载入配置文件
/usr/local/webserver/nginx/sbin/nginx -s reopen # 重启 Nginx
/usr/local/webserver/nginx/sbin/nginx -s stop # 停止 Nginx

在nginx–>conf 目录下:
1.新建proxy.conf 文件

#!nginx (-)# proxy.conf proxy_redirect          off;proxy_set_header        Host $host;proxy_set_header        X-Real-IP $remote_addr;  #获取真实ip#proxy_set_header       X-Forwarded-For   $proxy_add_x_forwarded_for; #获取代理者的真实ipclient_max_body_size    10m;client_body_buffer_size 128k;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;

2.修改nginx.conf,完整内容如下

#nx所在的用户名和用户组#user  www www; #启动进程数worker_processes 8;#全局错误日志及PID文件error_log  /usr/local/webserver/nginx/logs/nginx_error.log  crit;pid        /usr/local/webserver/nginx/nginx.pid;#Specifies the value for maximum file descriptors that can be opened by this process.worker_rlimit_nofile 65535;#工作模式及连接数上限events{  use epoll;  worker_connections 65535;}#设定http服务器,利用它的反向代理功能提供负载均衡支持http{  #设定mime类型  include       mime.types;  default_type  application/octet-stream;  include /usr/local/webserver/nginx/conf/proxy.conf;  #charset  gb2312;  #设定请求缓冲      server_names_hash_bucket_size 128;  client_header_buffer_size 32k;  large_client_header_buffers 4 32k;#  client_max_body_size 8m;  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 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;#limit_zone  crawler  $binary_remote_addr  10m;###禁止通过ip访问站点 # server{#        server_name _; #       return 404; #       }  server  {    listen       8081;    server_name  localhost;    index index.html index.jsp;    root  /usr/jenkins_tomcat/webapps/jenkins;    #limit_conn   crawler  20;        location ~ .*.(jsp|shtml)$ #所有shtml的页面均交由tomcat处理    {      index index.jsp;      proxy_pass http://localhost:8080;#转向tomcat处理      }    location ^~ /jenkins/ {        proxy_pass   http://localhost:8080/jenkins;        proxy_redirect off;        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;    }    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ #设定访问静态文件直接读取不经过tomcat    {      expires      30d;    }    location ~ .*\.(js|css)?$    {      expires      1h;    }       }  #定义访问日志的写入格式     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  /usr/local/webserver/nginx/logs/localhost.log access;#设定访问日志的存放路径   }

学习参考:易百教程 菜鸟教程