docker 의 nginx 설정 https
1. 이전에 nginx 용 기 를 만 들 때 80 포트 만 비 추 었 는데 이번 에는 이전의 nginx 용 기 를 직접 멈 추 었 습 니 다. (물론 실행 중인 Docker 용기 에 포트 맵 을 추가 할 수도 있 습 니 다) 저 는 용 기 를 다시 만 들 었 습 니 다.
docker run -d --name myNginxhttps -p 80:80 -p 443:443 -v /var/www/html:/usr/share/nginx/html -v /home/ubuntu/share/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/ubuntu/share/nginx/nginx/conf.d:/etc/nginx/conf.d nginx:alpine
2. 텐 센트 클 라 우 드 에서 도 메 인 이름 의 ssl 인증 서 를 다운로드 하고 nginx 에서 사용 할 ssl 인증 서 를 선택 하 십시오.(다음은 텐 센트 클 라 우 드 에서 발췌 한 내용)
Nginx 인증서 배포:
인증서 가 져 오기
Nginx 폴 더 에서 SSL 인증서 파일 획득 1www.domain.com_bundle. crt 와 비밀 키 파일 2www.domain.com.key。 1_www.domain.com_bundle. crt 파일 은 두 개의 인증서 코드 를 포함 합 니 다.www. domain. com. key 파일 에는 비밀 키 코드 인 '- - BEGIN RSA PRIVATE KEY - - -' 와 '- - - END RSA PRIVATE KEY - - -' 가 포함 되 어 있다.
인증서 설치
도 메 인 이름 www. domain. com 의 인증서 파일 1www.domain.com_bundle. crt, 비밀 키 파일 2www. domain. com. key 는 같은 디 렉 터 리 에 저 장 됩 니 다. 예 를 들 어 / usr / local / nginx / conf 디 렉 터 리 에 저 장 됩 니 다.Nginx 루트 디 렉 터 리 아래 conf / nginx. conf 파일 을 수정 합 니 다. 내용 은 다음 과 같 습 니 다.
server {
listen 443;
server_name www.domain.com; #
ssl on;
ssl_certificate 1_www.domain.com_bundle.crt;
ssl_certificate_key 2_www.domain.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#
ssl_prefer_server_ciphers on;
location / {
root html; #
index index.html index.htm;
}
}
다음은 제 설정 입 니 다. 저 는 두 개의 설정 파일 을 나 누 었 습 니 다. 하 나 는 listen 80 이 고 다른 하 나 는 443 입 니 다.
server {
listen 80;
server_name www.xxxxxx.com;
return 301 https://$server_name$request_uri;
location / {
root /usr/share/nginx/html/xxxxxx.com;
index index.html index.php;
}
location ~ \.php$ {
fastcgi_pass 172.17.0.2:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html/xxxxxx.com$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
include fastcgi_params;
}
}
server {
listen 80;
listen 443;
server_name www.xxxxxx.com;
ssl on;
ssl_certificate /etc/nginx/conf.d/cert/Nginx/1_xxxxxx.com_bundle.crt;
ssl_certificate_key /etc/nginx/conf.d/cert/Nginx/2_xxxxxx.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
access_log /etc/nginx/conf.d/cert/xxxxxx_ssl.log main;
error_log /etc/nginx/conf.d/cert/xxxxxx_error_ssl.log;
location / {
root /usr/share/nginx/html/xxxxxx.com;
index index.html index.php;
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
}
location ~ \.php$ {
fastcgi_pass 172.17.0.2:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html/xxxxxx.com$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
include fastcgi_params;
}
}
나중에 제 가 워드 프레스 백 엔 드 를 방 문 했 을 때 첫 페이지 에 접근 할 수 있 지만 백 엔 드 에 접근 할 수 없다 는 것 을 발 견 했 습 니 다. 나중에 'Nginx 가 워드 프레스 위 정적 설정' 이라는 문 제 를 찾 아 보 았 기 때문에 다음 코드 를 추 가 했 습 니 다.
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
마지막 으로 nginx 다시 시작 하기
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Nginx 에서 Wordpress 가 404 해결 방안 을 제시 합 니 다.텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.