ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

1.web容器基本配置 日志配置 HTTPS证书配置

2022-01-23 23:01:33  阅读:176  来源: 互联网

标签:web tomcat 配置 server HTTPS org 日志


无关···············································

@Configuration注解

spring容器在启动的时候会默认加载一些PostProcess( 后置处理器),在这些后置处理器中有一个处理器叫ConfigurationClassPostProcess 这个处理器专门去处理带有@Configuration注解的类

无关···············································

 

web容器基本配置

spring.main.web-application-type=none   //禁用web容器,点击运行以后就像个普通的没导web依赖的项目一样

server.port=8088    //配置端口号

server.port=-1    //不设置任何端口  关闭所有的http端点

server.port=0  //每次启动的端口号都是随机的

 

现在写一个小例子

 

@RestController
public class HelloController {
    @GetMapping("/hello")
    public List<String> useres(){
        ArrayList<String> numbers = new ArrayList<>();
        for (int i = 0; i < 1000; i++) {
            numbers.add(i+"");
        }
        return numbers;
    }
}

数据量太大了  1000个

 

 

 

 注意看一下,我们的响应头里没有说请求压缩的事情

 

 

 

开启压缩很简单,在配置文件里配置一下就好了

server.compression.enabled=true

现在看这个响应头,现在就开启了压缩 gzip

 


 日志配置

Tomcat的日志分为两种类型

-  访问日志 accesslog 

-  服务器内部日志  

 

默认,日志是不开启的,需要我们配置开启

 

访问日志:

#生成的访问日志将在该目录下(这样写就是在根目录下)
server.tomcat.basedir=my-hihihi
#开启访问日志,默认的日志位置在项目运行的临时目录中(或者我们指定的目录中)
server.tomcat.accesslog.enabled=true

默认生成的日志格式:access_log.2020-12-10.log
当然了,我们也可以更改默认的 前缀 和 后缀
server.tomcat.accesslog.prefix=javaboy_log
server.tomcat.accesslog.suffix=.log

服务器内部日志:
logging.level.org.apache.tomcat=debug

 

logging.level.org.apache.catalina=debug

 

HTTPS证书配置

一般我们在nginx里面配置,不在springboot内嵌的tomcat里面配置。在nginx里配置更简单

 

首先我们用jdk的keytool自己生成一个证书

在jdk的bin目录里面 cmd 敲上 keytool

 


 接着敲 :   keytool -genkeypair -alias selfsigned_localhost_sslserver -keyalg RSA -keysize 2048 -storetype PKCS12 -keystore ebininfosoft-ssl-key.p12 -validity 3650

生成证书 别名是selfsigned_localhost_sslserver 加密算法是RSA 证书大小是2048 存储的位置和文件名是ebininfosoft-ssl-key..p12 当前目录  有效期是3650天

接着敲密码:我设置的是123456 这个密码挺重要,后面会用到 。  后面有些信息不想输入就直接回车跳过就行了

 

 

 可以看到外面生成的证书了

 

 

 

 然后把这个东西移到我们idea的resources目录下,再在配置文件中配置一下

 

#SSL Key Info
security.require-ssl=true
server.ssl.key-store-password=123456
server.ssl.key-store=src/main/resources/ebininfosoft-ssl-key.p12
server.ssl.key-store-type=PKCS12

 

 

 

现在我们点一下运行,测试一下

@RestController
public class HelloController {
    @GetMapping("/hello")
    public String toHelloController(){
        return "666";
    }
}

 

现在我们输localhost:8080是进不去的

 

加上https才能进去


 

 但是这样对用户不太友好,得让http的请求自动跳转到https

我们写一个配置类 用@Configuration注解的类就是配置类

现在我们在地址栏打localhost:8081/hello 就会自动变成https请求  https://localhost:8080/hello

package com.zou.myhttps;

import org.apache.catalina.Context;
import org.apache.catalina.connector.Connector;
import org.apache.tomcat.util.descriptor.web.SecurityCollection;
import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


//这段代码比较程式化,这么写就行
@Configuration
public class TomcatConfig {
    //注入到spring容器中
    @Bean
    TomcatServletWebServerFactory tomcatServletWebServerFactory(){
        TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory(){
            @Override
            protected void postProcessContext(Context context) {
                SecurityConstraint securityConstraint = new SecurityConstraint();
                securityConstraint.setUserConstraint("CONFIDENTAL");
                SecurityCollection collection = new SecurityCollection();
                collection.addPattern("/*");
                securityConstraint.addCollection(collection);
                context.addConstraint(securityConstraint);
            }
        };
        factory.addAdditionalTomcatConnectors(myConnectors());
        return factory;
    }

    //连接器
    private Connector myConnectors() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        connector.setPort(8081);    //没主动配置 所以https端口是8080 那我给http8081吧
        connector.setSecure(false);
        connector.setRedirectPort(8080);
        return connector;
    }
}

 

 


 


      

 

标签:web,tomcat,配置,server,HTTPS,org,日志
来源: https://www.cnblogs.com/tuyaojiao/p/15837070.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有