Nginx 에서 가상 호스트 와 지정 한 접근 경 로 를 설정 하 는 방법 에 대한 설명

3932 단어
여러 가상 호스트 추가
최근 ubuntu 에서 nginx 를 괴 롭 히 고 설치 에 성 공 했 습 니 다. rewrite 만 테스트 하지 않 았 습 니 다. 서버 에 여러 개의 사이트 가 있 기 때문에 서버 에서 시도 하지 못 하고 천천히 합 니 다.인터넷 에서 몇 개의 문장 을 찾 아 보 았 는데, 다음 편 은 남아 서 시험 을 하 였 다.nginx 에서 가상 호스트 의 설정 은 apache 의 기본 과 유사 합 니 다.주의해 야 할 몇 가지 점 은 첫째, htaccess 설정, 즉 정적 설정 입 니 다. nginx 에 서 는 보통 가상 호스트 의 설정 텍스트 에 써 야 합 니 다. 그러나 저 는 파일 을 포함 하여 이 문 제 를 해결 하 는 것 을 본 적 이 있 습 니 다. 즉, 가상 호스트 설정 스 크 립 트 에 include. htaccess 파일 을 보 았 지만 해 본 적 이 없습니다.둘째, php, fastcgi 를 어떤 방식 으로 실행 할 계획 입 니까?나 는 인터넷 에 떠 도 는 이런 방법 이 좋 은 방법 이 라 고 생각 하지 않 는 다. 반대로 나 는 훌륭 한 역방향 프 록 시 서버 로 서 역방향 프 록 시 의 장점 을 발휘 해 야 한다 고 생각 하기 때문에 phop 을 실행 하 는 방식 에 있어 서 먼저 고려 해 보 세 요.자, 본론 으로 돌아 가자.nginx 의 디 렉 터 리 구 조 를 살 펴 보면 어떻게 해 야 할 지 이미 알 고 있 을 것 입 니 다. apache 의 가상 호스트 설정 과 대체적으로 유사 합 니 다./ etc / nginx / sites - available 에 새 파일 을 만 듭 니 다. 예 를 들 어 www. jb51. net 이 라 고 합 니 다. 그리고...

vi www.jb51.net

파일 추가 내용 은 다음 과 같 습 니 다.

server
{
listen [::]:80;
server_name www.jb51.net jb51.net;
root /var/www/jb51.net;
index index.html index.htm index.php;
include /etc/nginx/common.conf;
location /nginx_status
{
stub_status on;
access_log off;
allow all;
}
}

간단 한 설명: listen 은 감청 포트 이 므 로 더 이상 말 할 필요 가 없습니다.server_name 몇 마디 더 하 세 요. server 가 생각 났 을 수도 있 으 니까 요.alias, 사실 nginx 에서 첫 번 째 는 servername, 뒤에 서버alias, 그래서 nginx 에서 server alias name 별명 은 따로 설명 하지 않 아 도 됩 니 다. 이 apache 는 큰 차이 가 있 습 니 다. 주의 하 세 요.index 는 웹 페이지 를 찾 는 우선 순위 include 는 파일 을 포함 하 는 것 입 니 다. www. jb51. net 에 포 함 된 파일 은 무엇 에 사용 합 니까?phop 의 실행 방식, 파일 캐 시 등 을 지정 합 니 다. 제 가 제시 한 설정 을 붙 여 보 겠 습 니 다.

location ~* \.(ico|css|js|gif|jpe?g|png)(\?[0-9]+)?$ {
expires max;
break;
}
location ~ .*\.php$ {
# fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
}
if ( $fastcgi_script_name ~ \..*\/.*php ) {
return 403;
}

마지막 위치 / nginxstatus 는 apache 의 server - status 와 비슷 하 므 로 얼마 말 하지 않 습 니 다.

location /nginx_status
{
stub_status on;
access_log off;
allow all;
}

그리고 두 번 째 단 계 는 sites - enable 에 소프트 연결 을 만 듭 니 다.

ln -s /etc/nginx/sites-available/www.jb51.net /etc/nginx/sites-enabled/www.jb51.net

당신 은 설정 문법 이 정확 한 지 검사 해 야 합 니까?검사 해 보기:

/etc/init.d/nginx configtest

Testing nginx configuration: nginx.


오류 가 되 돌아 오지 않 았 습 니 다. nginx 를 다시 시작 하면 됩 니 다. /etc/init.d/nginx restart
접근 경로 지정
niginx 는 가상 디 렉 터 리 에 대한 설명 이 없 는 것 같 지만 요청 경 로 를 지정 할 때 nginx 가 접근 하 는 경로 도 해결 방법 이 라 고 할 수 있 습 니 다.

server {
listen    80 default;
server_name _;

location / {
root  html;
index 403.html;
}

location ~ //.ht {
deny all;
}

  location /phpadmin/ {
alias  /opt/www/phpadmin/;
index  index.php;
}
location ~ /.php$ {
include httpd.conf;
}
}


주의해 야 할 것 은 location / phpadmin / {} 과 location / phpadmin {} 은 완전히 다르다 는 것 이다.
전 자 는 디 렉 터 리 에 접근 할 수 있 고 후 자 는 서버 로 재 설정 합 니 다. 예 를 들 어:http://127.0.0.1/phpadmin 다시 지정http://_/phpadmin
아래 설정 은 위 와 기본적으로 유사 합 니 다. 유일한 차이 점 은 모든 / phpadmin / 에 대한 접근 이 올 바 르 게 해석 되 고 다른 방문 은 페이지 에 존재 하지 않 는 정 보 를 되 돌려 줍 니 다 (404).

server {
listen    80 default;
server_name _;

location / {
root  html;
#index 403.html;

return 404;
}

location ~ //.ht {
deny all;
}

  location /phpadmin/ {
alias  /opt/www/phpadmin/;
index  index.php;
}
location ~ /.php$ {
include httpd.conf;
}
}


좋은 웹페이지 즐겨찾기