>  기사  >  운영 및 유지보수  >  Nginx 프록시 관리자를 사용하여 도메인 간 액세스 권한 부여 관리를 구현하는 방법

Nginx 프록시 관리자를 사용하여 도메인 간 액세스 권한 부여 관리를 구현하는 방법

PHPz
PHPz원래의
2023-09-27 16:43:561642검색

如何使用Nginx Proxy Manager实现跨域访问的授权管理

Nginx 프록시 관리자를 사용하여 도메인 간 액세스 권한 부여 관리를 달성하는 방법

Nginx 프록시 관리자는 역방향 프록시, 로드 밸런싱, SSL/TLS 터미널 프록시 및 기타 기능을 구현할 수 있는 강력한 프록시 서버입니다. 실제 애플리케이션에서는 프런트엔드 교차 도메인 액세스에 문제가 자주 발생합니다. 백엔드 리소스를 보호하려면 권한 부여 관리를 수행해야 합니다. 이 기사에서는 Nginx 프록시 관리자를 사용하여 도메인 간 액세스에 대한 인증 관리를 구현하는 방법을 소개하고 몇 가지 특정 코드 예제를 제공합니다.

  1. Nginx 프록시 관리자 설치 및 구성
    먼저 Nginx 프록시 관리자를 설치하고 구성해야 합니다. 다음 단계를 통해 진행할 수 있습니다.

1.1 Nginx 프록시 관리자 설치
공식 웹사이트나 기타 채널을 통해 Nginx 프록시 관리자 설치 패키지를 다운로드하고 공식 설명서에 따라 설치할 수 있습니다.

1.2 Nginx 프록시 관리자 구성
설치가 완료되면 Nginx 프록시 관리자를 구성해야 합니다. 구성 파일은 일반적으로 /etc/nginx/nginx.conf에 있습니다. 텍스트 편집기를 사용하여 구성용 파일을 열 수 있습니다. /etc/nginx/nginx.conf,可以使用文本编辑器打开该文件进行配置。

  1. 配置跨域访问授权管理
    接下来,我们将配置跨域访问的授权管理。具体的配置如下所示:

2.1 定义跨域访问的授权规则
在Nginx Proxy Manager的配置文件中,我们可以使用location指令定义跨域访问的授权规则。例如,我们可以通过以下方式定义一个允许特定域名进行跨域访问的规则:

location /api {
  add_header 'Access-Control-Allow-Origin' 'http://example.com';
  add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
  add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type';
  add_header 'Access-Control-Allow-Credentials' 'true';
}

在上述示例中,我们使用add_header指令添加了一些跨域访问的授权头字段。其中,Access-Control-Allow-Origin字段指定了允许跨域访问的域名;Access-Control-Allow-Methods字段指定了允许的HTTP方法;Access-Control-Allow-Headers字段指定了允许的HTTP头字段;Access-Control-Allow-Credentials字段指定了是否允许携带cookie进行跨域访问。

2.2 配置跨域访问的错误处理
为了提高安全性,当跨域访问的授权规则不匹配时,我们可以配置Nginx Proxy Manager返回特定的错误信息。例如,可以通过以下方式配置返回403 Forbidden错误:

location /api {
  if ($http_origin != http://example.com) {
    return 403;
  }
}

在上述示例中,我们使用if指令判断跨域访问的域名是否符合要求。如果不符合要求,则返回403错误。

  1. 运行Nginx Proxy Manager
    配置完成后,我们可以通过以下命令启动Nginx Proxy Manager:
sudo service nginx start

此时,Nginx Proxy Manager将开始监听配置的端口,并根据配置的跨域访问授权规则进行处理。

  1. 前端代码示例
    最后,我们提供一个简单的前端代码示例,用于演示如何进行跨域访问。具体示例如下:
const url = 'http://api.example.com';
const headers = {
  'Authorization': 'Bearer xxxxxxxx',
  'Content-Type': 'application/json'
};

fetch(url, {
  method: 'GET',
  headers: headers,
  credentials: 'include'
})
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error(error));

在上述示例中,我们使用fetch函数发送一个跨域访问的GET请求。其中,url变量指定了跨域访问的目标URL;headers变量指定了请求的HTTP头字段;credentials

    교차 도메인 접근 권한 관리 구성

    다음으로, 교차 도메인 접근 권한 관리를 구성하겠습니다. 구체적인 구성은 다음과 같습니다.

    🎜2.1 도메인 간 액세스에 대한 인증 규칙 정의🎜Nginx 프록시 관리자의 구성 파일에서 위치 지시문을 사용하여 도메인 간 액세스에 대한 인증 규칙을 정의할 수 있습니다. 예를 들어 다음과 같은 방법으로 특정 도메인 이름에 대한 도메인 간 액세스를 허용하는 규칙을 정의할 수 있습니다. 🎜rrreee🎜위 예에서는 add_header 지시어를 사용하여 인증 헤더 필드를 추가했습니다. 도메인 간 액세스를 위해. 그중 Access-Control-Allow-Origin 필드는 도메인 간 액세스를 허용하는 도메인 이름을 지정하고, Access-Control-Allow-Methods 필드는 허용되는 HTTP를 지정합니다. Access-Control-Allow-Headers 필드는 허용되는 HTTP 헤더 필드를 지정합니다. Access-Control-Allow-Credentials 필드는 쿠키 전달이 허용되는지 여부를 지정합니다. 도메인 간 액세스. 🎜🎜2.2 도메인 간 액세스에 대한 오류 처리 구성🎜 보안을 강화하기 위해 도메인 간 액세스에 대한 인증 규칙이 일치하지 않는 경우 특정 오류 정보를 반환하도록 Nginx 프록시 관리자를 구성할 수 있습니다. 예를 들어 반환된 403 Forbidden 오류는 다음과 같은 방식으로 구성할 수 있습니다. 🎜rrreee🎜위 예에서는 if 지시어를 사용하여 교차 도메인 액세스를 위한 도메인 이름이 요구 사항을 충족하는지 확인합니다. . 요구 사항이 충족되지 않으면 403 오류가 반환됩니다. 🎜
      🎜Nginx 프록시 관리자 실행🎜구성이 완료되면 다음 명령을 통해 Nginx 프록시 관리자를 시작할 수 있습니다: 🎜🎜rrreee🎜이제 Nginx 프록시 관리자는 구성된 포트 수신 대기를 시작합니다. 구성된 교차 도메인 액세스 권한 부여 규칙을 기반으로 처리됩니다. 🎜
        🎜프런트 엔드 코드 예제🎜마지막으로 도메인 간 액세스를 수행하는 방법을 보여주는 간단한 프런트 엔드 코드 예제를 제공합니다. 구체적인 예는 다음과 같습니다. 🎜🎜rrreee🎜위 예에서는 fetch 함수를 사용하여 도메인 간 액세스에 대한 GET 요청을 보냅니다. 그중 url 변수는 교차 도메인 액세스를 위한 대상 URL을 지정하고, headers 변수는 요청의 HTTP 헤더 필드를 지정합니다. > 매개변수는 도메인 간 액세스를 위해 쿠키를 전달할지 여부를 지정합니다. 🎜🎜요약: 🎜이 문서에서는 Nginx 프록시 관리자를 사용하여 도메인 간 액세스에 대한 인증 관리를 구현하는 방법을 소개하고 몇 가지 구체적인 코드 예제를 제공합니다. Nginx Proxy Manager의 도메인 간 접근 규칙을 구성함으로써 백엔드 리소스에 대한 접근을 유연하게 제어하여 시스템 보안을 보호할 수 있습니다. 이 글이 독자들에게 도움이 되기를 바랍니다. 🎜

위 내용은 Nginx 프록시 관리자를 사용하여 도메인 간 액세스 권한 부여 관리를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.