From b55b735bb2dd44dad71ca2789fa133443e5cbc10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=E5=98=89=E9=98=B3?= Date: Fri, 16 Mar 2018 13:04:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0nginx=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=96=87=E4=BB=B6=EF=BC=8C=E8=A7=A3=E5=86=B3nginx=E4=BB=A3?= =?UTF-8?q?=E7=90=86=E5=90=8E=E6=97=A0=E6=B3=95=E8=8E=B7=E5=8F=96=E5=AE=A2?= =?UTF-8?q?=E6=88=B7=E7=AB=AF=E7=9C=9F=E5=AE=9EIP=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cms.nginx - 副本.conf | 44 +++++++++++++++++++ cms.nginx.conf | 44 +++++++++++++++++++ pom.xml | 2 +- .../spring/controller/LoginController.java | 5 ++- .../spring/interceptor/LoginInterceptor.java | 1 - .../com/fjy/spring/untils/GetIPAddrUtil.java | 22 ++++++++++ src/main/resources/static/css/style.css | 2 - .../templates/dist/thymeleaf/layout.html | 5 +-- src/main/resources/templates/home/about.html | 1 + 9 files changed, 118 insertions(+), 8 deletions(-) create mode 100644 cms.nginx - 副本.conf create mode 100644 cms.nginx.conf create mode 100644 src/main/java/com/fjy/spring/untils/GetIPAddrUtil.java diff --git a/cms.nginx - 副本.conf b/cms.nginx - 副本.conf new file mode 100644 index 0000000..9238fc2 --- /dev/null +++ b/cms.nginx - 副本.conf @@ -0,0 +1,44 @@ +upstream cms-host{ +server cms.fjy8018.xin:8085; +} + + server { + listen 80; + listen 443 ssl; + server_name cms.fjy8018.xin; #域名 + index index.html; #指定的server的root的访问页面 + root /index; #指定的server的root目录 + + #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则 + #error_page 404/404.html; + #HTTP_TO_HTTPS_START + if ($server_port !~ 443){ + rewrite ^(/.*)$ https://$host$1 permanent; + } + #HTTP_TO_HTTPS_END + ssl_certificate /www/wwwroot/cms/full_chain.pem; + ssl_certificate_key /www/wwwroot/cms/private.key; + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; + ssl_prefer_server_ciphers on; + ssl_session_cache shared:SSL:10m; + ssl_session_timeout 10m; + error_page 497 https://$host$request_uri; + + + #SSL-END + + #charset koi8-r; + + #access_log logs/host.access.log main; + + #我工程的context-path=mytest + location /cms { + proxy_pass http://cms.fjy8018.xin:8085; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-Port $server_port; + # root html; + # index index.html index.htm; + } + } \ No newline at end of file diff --git a/cms.nginx.conf b/cms.nginx.conf new file mode 100644 index 0000000..9238fc2 --- /dev/null +++ b/cms.nginx.conf @@ -0,0 +1,44 @@ +upstream cms-host{ +server cms.fjy8018.xin:8085; +} + + server { + listen 80; + listen 443 ssl; + server_name cms.fjy8018.xin; #域名 + index index.html; #指定的server的root的访问页面 + root /index; #指定的server的root目录 + + #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则 + #error_page 404/404.html; + #HTTP_TO_HTTPS_START + if ($server_port !~ 443){ + rewrite ^(/.*)$ https://$host$1 permanent; + } + #HTTP_TO_HTTPS_END + ssl_certificate /www/wwwroot/cms/full_chain.pem; + ssl_certificate_key /www/wwwroot/cms/private.key; + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; + ssl_prefer_server_ciphers on; + ssl_session_cache shared:SSL:10m; + ssl_session_timeout 10m; + error_page 497 https://$host$request_uri; + + + #SSL-END + + #charset koi8-r; + + #access_log logs/host.access.log main; + + #我工程的context-path=mytest + location /cms { + proxy_pass http://cms.fjy8018.xin:8085; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-Port $server_port; + # root html; + # index index.html index.htm; + } + } \ No newline at end of file diff --git a/pom.xml b/pom.xml index 8611f2c..22ce38f 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ com.fjy spring - V2.6.4 + V2.6.7 jar spring diff --git a/src/main/java/com/fjy/spring/controller/LoginController.java b/src/main/java/com/fjy/spring/controller/LoginController.java index 6afd9bb..9bb869f 100644 --- a/src/main/java/com/fjy/spring/controller/LoginController.java +++ b/src/main/java/com/fjy/spring/controller/LoginController.java @@ -8,6 +8,7 @@ import com.fjy.spring.service.AdminService; import com.fjy.spring.service.LogService; import com.fjy.spring.service.UserService; import com.fjy.spring.untils.CodingUtil; +import com.fjy.spring.untils.GetIPAddrUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @@ -57,7 +58,9 @@ public class LoginController { log.setUserid(user.getColuserid()); log.setColtime(dateNowStr); log.setColheader(request.getHeader("user-agent")); - log.setColip(request.getRemoteAddr()); + //解决nginx代理后IP地址获取问题 + //log.setColip(request.getRemoteAddr()); + log.setColip(GetIPAddrUtil.getIpAddr(request)); logService.addLogRec(log); return "redirect:" + request.getScheme() + "://" + request.getServerName() + ":" diff --git a/src/main/java/com/fjy/spring/interceptor/LoginInterceptor.java b/src/main/java/com/fjy/spring/interceptor/LoginInterceptor.java index 80aa6c3..2f9f0fb 100644 --- a/src/main/java/com/fjy/spring/interceptor/LoginInterceptor.java +++ b/src/main/java/com/fjy/spring/interceptor/LoginInterceptor.java @@ -2,7 +2,6 @@ package com.fjy.spring.interceptor; import com.fjy.spring.constant.GlobalConstant; import org.springframework.web.servlet.HandlerInterceptor; -import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; diff --git a/src/main/java/com/fjy/spring/untils/GetIPAddrUtil.java b/src/main/java/com/fjy/spring/untils/GetIPAddrUtil.java new file mode 100644 index 0000000..14429fd --- /dev/null +++ b/src/main/java/com/fjy/spring/untils/GetIPAddrUtil.java @@ -0,0 +1,22 @@ +package com.fjy.spring.untils; + +import javax.servlet.http.HttpServletRequest; + +public class GetIPAddrUtil { + public static String getIpAddr(HttpServletRequest request) { + String ip = request.getHeader("X-Real-IP"); + if (ip == null || ip.length() == 0 || " unknown ".equalsIgnoreCase(ip)) { + ip = request.getHeader(" Proxy-Client-IP "); + //System.out.println("【Proxy-Client-IP】"); + } + if (ip == null || ip.length() == 0 || " unknown ".equalsIgnoreCase(ip)) { + ip = request.getHeader(" WL-Proxy-Client-IP "); + //System.out.println("【WL-Proxy-Client-IP】"); + } + if (ip == null || ip.length() == 0 || " unknown ".equalsIgnoreCase(ip)) { + ip = request.getRemoteAddr(); + //System.out.println("【unknown】"); + } + return ip; + } +} diff --git a/src/main/resources/static/css/style.css b/src/main/resources/static/css/style.css index 749fafd..47b3e2c 100644 --- a/src/main/resources/static/css/style.css +++ b/src/main/resources/static/css/style.css @@ -7,7 +7,6 @@ src: url('../fonts/element-icons.ttf'), url('../fonts/element-icons.woff'); /* IE9 */ } -*{padding:0;margin:0;} html{height:100%;} body{min-height:100%;} .loginTitle{ @@ -60,7 +59,6 @@ a{ .footer{ width:100%; font-size:14px; - position:absolute; bottom:20px; left:0; text-align: center; diff --git a/src/main/resources/templates/dist/thymeleaf/layout.html b/src/main/resources/templates/dist/thymeleaf/layout.html index 8b77ddb..43ef6de 100644 --- a/src/main/resources/templates/dist/thymeleaf/layout.html +++ b/src/main/resources/templates/dist/thymeleaf/layout.html @@ -108,9 +108,8 @@ diff --git a/src/main/resources/templates/home/about.html b/src/main/resources/templates/home/about.html index 6dd96ec..107e4d2 100644 --- a/src/main/resources/templates/home/about.html +++ b/src/main/resources/templates/home/about.html @@ -32,6 +32,7 @@
  • 具备完整开发和维护文档,提供错误码、数据字典
  • URL为RESTful API风格,便于开发和维护
  • 异常统一管理
  • +
  • 更多