Nginx有关Session共享,Http安全认证,代码安全锁等实战问题

知识要点:

session共享解决方案实战

Http安全认证403解决方案

代码安全锁解决方案

session解决方案实战

  • session粘滞---iphash方式
    在nginx的配置文件nginx.conf
upstream tomcatServer{ 
    #upstream 服务器组  
    #服务名称                权重    
    server 127.0.0.1:8080   weight=1;
    server 127.0.0.1:8082   weight=1;
    #缺点: 同一个ip访问同一个服务器  会导致单台服务器压力过大 
    #ip_hash;
    }
  #放在server块之前
  • session复制方案
    在tomcat的conf目录中server.xml文件下
    添加如下配置

#在server找到catalina下面添加如下文件:
#解析:该方案以组播的形式配置
 

          
          
            
            

            
              
            
            
            
          

          
          

          

          
        

还要在web.xml中添加一个自闭合标签使得我们的配置在web项目中能够正常使用


  • redis共享方案
1、pom文件配置中添加

           
org.springframework.boot
           
spring-boot-starter-data-redis


            
org.springframework.session
            
spring-session-data-redis
 
2、
在application.yml文件中添加
#对Redis 属配置 
spring.redis.database=0      
spring.redis.host=127.0.0.1    #设置ip地址
spring.redis.port=6379        #设置端口号
spring.redis.password=        #如果是默认的那么密码为空
#添加注解
#代码部分修改启动类添加
3、@EnableRedisHttpSession

http安全认证后403解决方案

  • 修改访问权限
    检查权限控制启动用户和工作用户是否一致。
    在nginx.conf修改释放user注释 修改用户为root最高权限。
user  root;            #设置用户权限为root
worker_processes  1;
  • 修改文件权限
    我们出现403很大一部分原因是因为文件权限不足导致的,那么我们就需要修改文件的权限来完成。
    方法如下
chmod -R 777 file  # 更改文件的读写权限   -R代表递归该目录下所有文件 file指的是你的文件夹
  • 修改文件所有者
    还有一种可能文件所有者不是nginx nginx无法读取到此文件
#是因为要访问的文件所属者不属于nginx   到文件存储目录输入命令: 
chown nginx:nginx file   # 更改文件的所有者为nginx
  • 修改文件状态

代码安全锁解决方案

①gitee方案
在gitee中对代码进行加签
签的种类有很多可以在github上进行下载 选择自己适合的(github里面的代码认证部分)

  • 代码编写中不写注释 不遵守代码的协定简洁性
  • 多写点tood注释 在不同的地方插入不同的数据(树枝填海策略)
  • 更改通用规定 比如时间time 我们用user来定义 修改定义策略
  • 正常重载后的函数,其功能应该和被重载的函数应该是接近的,我们要做的就是让重载后的函数 和被重载函数的功能完全没有关系。
  • 这个时候看代码的人如果基础不牢的话,可能需要去温习下函数重载的知识,是不是自己以前理解错了。
  • 混乱#define
  • 样板示例:
ifndef DONE#ifdef TWICE// put stuff here to declare 3rd time aroundvoidg(char* str);#define DONE#else// TWICE#ifdef ONCE// put stuff here to declare 2nd time around

这样做完之后除了你自己编译的时候知道后期无人知晓
做的时候记得备份一份清晰的自己看的注释文档 ,不然你的代码后期没有人会接。
不过既然采用了单体式服务那么我相信你的服务后期必然会升级 不建议使用 仅限于部分自用部分!

你可能感兴趣的:(Nginx有关Session共享,Http安全认证,代码安全锁等实战问题)