nginx 설정 부분 https
2753 단어 기술 등반
실제 프로젝트 에서 우 리 는 모든 요청 을 암호 화 할 필요 가 없다. 예 를 들 어 댓 글 목록 을 조회 하고 상품 정 보 를 조회 하 는 등 민감 한 데 이 터 를 포함 한 요청 을 암호 화하 면 된다.
따라서 오늘 nginx 부분의 https 접근 을 설정 하려 고 합 니 다. 이 테스트 는 어제 생 성 된 비밀 키 와 인증 서 를 계속 사용 하여 로그 인 페이지 를 암호 화 합 니 다. 설정 한 코드 는 다음 과 같 습 니 다.
upstream site{
server localhost:8081;
server localhost:8082;
server localhost:8083;
}
server
{
listen 9001;
server_name localhost;
index index.jsp index.html;
root /home/default;
location ~ .* {
proxy_pass http://site;
proxy_set_header X-Real-IP $remote_addr;
}
location ^~ /test/login.jsp{
rewrite ^ https://$server_addr:443$request_uri? permanent;
}
}
server
{
listen 443 ssl;
server_name localhost;
ssl on;
ssl_certificate /home/dayuanzi/temp/rsamiyao.csr;
ssl_certificate_key /home/dayuanzi/temp/rsamiyaonopw.key;
location / {
rewrite ^ http://$server_addr:9001$request_uri? permanent;
}
location ^~ /test/login.jsp{
proxy_pass http://127.0.0.1:8081;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
배포 서버 상세 정보:
tomcat 세 대:
localhost:8081,localhost:8082,localhost:8083
nginx 한 대
위의 설정 은 다음 과 같은 기능 을 실현 합 니 다.
1. nginx 는 부하 이퀄 라이저 로 서 login. jsp 요청 을 제외 하고 다른 요청 은 평균 적 으로 다른 세 개의 로 컬 서버 에 배 포 됩 니 다.
2、http://localhost:9001/test/login.jsp다시https://localhost/test/login.jsplogin. jsp 암호 화
3、https://localhost/test/* 시 방향 을 바 꿉 니 다.http://locathost:9001/*, 일반 요청 은 암호 화 되 지 않 음
여기 서 간단하게 rewrite 문법: rewrite regex replacement [flag];
flag 는 네 개의 값 을 얻 을 수 있 습 니 다: last: 아파 치 에 해당 하 는 [L] 태그, rewrite 완료 표시 break: 현재 가상 호스트 의 후속 rewrite 명령 집합 실행 중지 redirect: 302 임시 방향 을 되 돌려 줍 니 다. 주소 표시 줄 에 점프 후의 주소 가 표 시 됩 니 다. permanent: 301 을 되 돌려 영구적 으로 방향 을 바 꾸 면 주소 표시 줄 에 점프 후의 주소 가 표 시 됩 니 다.
또한, 테스트 시 다른 기기 에 접근 하면 rewrite ^ http: / $serveraddr:9001$request_uri?중, $server 를 사용 해 야 합 니 다.addr $server 사용 불가name, 그렇지 않 으 면 이 컴퓨터 로 다시 설정 합 니 다.