>운영 및 유지보수 >엔진스 >nginx, apache의 별칭, 인증 기능 분석 예시

nginx, apache의 별칭, 인증 기능 분석 예시

WBOY
WBOY앞으로
2023-05-24 23:10:22799검색

먼저 Apache 별칭을 구성하는 방법을 살펴보겠습니다.

코드 복사 코드는 다음과 같습니다.


documentroot /www/jb51.net/www 이것이 루트입니다. 가상 호스트의 디렉토리인데 phpmyadmin 이 디렉토리에 없어서 액세스하고 싶습니다.
servername www.jb51.net
serveralias jb51.net
alias /sdb "/www/public/phpmyadmin/"에는 별칭 기능이 필요합니다: //www.jb51.net/sdb 이것이 훨씬 더 안전합니다.

options indexes followymlinks
allowoverride none
order 허용,deny
allow from all

一.apache 인증

인증 유형: 기본
다이제스트 요약
인증 방법: a.컨테이너 인증: ……
b.숨겨진 파일 인증 .htaccess 파일 생성
방법 1. 컨테이너 인증
a. conf/httpd.conf
b, 구성: 531행 주변의 구성은 다음과 같습니다.

allowoverride none ## 숨겨진 인증은 허용되지 않습니다. 즉, 컨테이너 인증
authtype basic ## 인증 유형은 basic
authname "ajian " ## 인증명은 ajian
authuserfile /var/www/passwd/pass ##pass 는 인증 비밀번호 파일로, 비밀번호 파일이 저장되는 위치를 지정합니다.
require valid-user ## 유효한 사용자(경우에 따라 일부 변경 사항이 있음)
c. mkdir -p /var/www/passwd 디렉토리를 생성합니다. cd /var/www/passwd
d 디렉토리를 입력합니다. create apache user htpasswd -c pass ajian ##pass는 비밀번호 파일 ajian은 사용자
패스 파일의 사용 권한을 apache로 변경: chown apache.apache pass
첨부: 패스 파일에 사용자 추가: htpasswd pass tt # #pass 파일에 tt 사용자 추가
e, 서비스 재시작 및 테스트
방법 2, 숨겨진 인증 통과
위와 거의 동일하지만 구성이 다릅니다
httpd 기본 구성 파일

allowoverride authconfig
생성 숨겨진 파일을 복사하여 인증된 디렉터리를 통과하도록 넣습니다
예: vi /var/www/html/mrtg
authtype basic
authname “ajian”
authuserfile /var/www/passwd/pass
require valid-user

다음은 example

nginx, apache의 별칭, 인증 기능 분석 예시

nginx, apache의 별칭, 인증 기능 분석 예시

nginx, apache의 별칭, 인증 기능 분석 예시

2. nginx 로그인 인증
nginx의 http 인증 기본 비밀번호는 crypt(3)으로 암호화됩니다. Apache의 htpasswd를 사용하여 비밀번호 파일을 생성하십시오.
아파치 설치가 필요하지 않습니다. Apache2, /usr/local/apach2를 설치했습니다.
cd /usr/local/nginx/conf /usr/local/apache2/bin/htpasswd -c -d pass_file user_name # Enter를 눌러 비밀번호를 입력하세요. -c는 파일 생성을 의미하고, -d는 crypt로 암호화합니다.
vi nginx.conf cd /usr/local/nginx/conf /usr/local/apache2/bin/htpasswd -c -d pass_file user_name # Enter를 눌러 비밀번호를 입력하고, -c는 파일 생성을 의미하며 -d는 crypt로 암호화합니다. vi nginx.conf nginx.conf 파일에 인증 명령문을 추가합니다. 여기서 주의할 점은 nginx 0.6.7부터 auth_basic_user_file의 상대 디렉터리는 nginx_home/conf이고 이전 버전의 상대 디렉터리는 nginx_home입니다.


코드 복사 코드는 다음과 같습니다.

server {
listen 80;
server_name tuan.xywy.com;
root /www/tuangou;
index index.html index.htm index.php;
autoindex on;
auth_basic "사용자 이름과 비밀번호를 입력하세요";
auth_basic_user_file htpasswd.file;
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param script_filename /www/tuangou$fastcgi_script_name;
include fastcgi _params ;
}
error_page 404 /404.php;
error_page 403 /404.php;

access_log /logs/tuan_access.log main;
}


별도의 위치에 있는 디렉터리 인증 , 그리고 이 위치에 php를 설명하는 위치를 중첩합니다. 그렇지 않으면 php 파일이 실행되지 않고 다운로드됩니다. auth_basic은 중첩된 위치 뒤에 옵니다.

코드 복사 코드는 다음과 같습니다.

server {
listen 80;
server_name tuan.xywy.com;
root /www/tuangou;
index index.html index.htm index.php;
autoindex on ;
위치 ~ ^/admin/.* {
위치 ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param script_filename /www/tuangou$fastcgi_script_name;
include fastcgi_params;
}
root /www/ tuangou/ ;
auth_basic "auth";
auth_basic_user_file htpasswd.file;
}

location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}

access_log /logs /tuan_access.log main;
}



Three.nginx 별칭 함수 구성은 자동으로 디렉터리를 나열합니다

코드 복사 코드는 다음과 같습니다.


server {

listen www.jb51.net:88;

server_name www.jb51.net;

autoindex on; //디렉토리 목록 기능을 활성화합니다.

# charset gbk;
location /club {방문 이름 //www.jb51.net:88/club
alias /www/clublog/club.xywy.com/ 서버에 로그가 저장되는 곳입니다
} 이 Duan Yi는 www.jb51.net:88/club을 방문하여 클럽 디렉토리의 내용을 보았습니다.
위치 /{
root /www/access;
이 위치는 www.jb51.net:88일 필요는 없습니다. 나오는 것은 기본 nxing 페이지입니다
# index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}



위의 nginx 구성은 다음을 의미합니다. http://hou.xywy.com/을 방문하세요. 88 인증 입력 기본적으로 서버의 /www/access/에 있는 디렉터리에 액세스됩니다. 인증 후 url=http://hou.xywy.com:88/club은 /www/에 있는 디렉터리의 내용을 표시합니다. 클럽로그/club.xywy.com/. , 혼란스러울 수 있으니 주의 깊게 분석해 보세요.

루트와 별칭의 차이점.
가장 기본적인 차이점: 별칭으로 지정된 디렉터리는 정확하고, 루트는 지정된 디렉터리의 상위 디렉터리이며, 상위 디렉터리는 위치로 지정된 이름과 동일한 이름의 디렉터리를 포함해야 합니다. 또한 위에서 언급한 것처럼 alias 태그를 사용하는 디렉터리 블록에서는 rewrite's break를 사용할 수 없습니다.

이 단락을 보면 매우 명확해질 것입니다.

코드 복사 코드는 다음과 같습니다:


location /abc/ {
alias /home/html/abc/;
}


이 구성에서 http://test/abc/a.html은 /home/html/abc/a.html을 지정합니다. 이 구성은 다음과 같이 변경할 수도 있습니다.

코드 복사 코드는 다음과 같습니다.


location /abc/ {
root /home/html/;
}


이러한 방식으로 nginx는 /home을 찾습니다. /html/ 디렉토리 abc 디렉토리 아래에서 얻은 결과는 동일합니다.

그러나 별칭 구성을 다음과 같이 변경하면

코드를 복사합니다. 코드는 다음과 같습니다.


location /abc/ {
alias /home/html/def/;
}


그런 다음 nginx는 Fetch data from /home/html/def/에서 시작됩니다. 이 구성은 루트를 사용하여 직접 구성할 수 없습니다. 구성해야 하는 경우 /home/html 아래에 def->abc의 소프트 링크(바로가기)만 만들 수 있습니다. /.

일반적으로 위치 /에 루트를 구성하고 위치 /기타에 별칭을 구성하는 것이 좋은 습관입니다.

위 내용은 nginx, apache의 별칭, 인증 기능 분석 예시의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제