nginx 구성을 다른 웹사이트로 전달하는 방법
요구 사항
다음과 같은 요구 사항이 있습니다. 프로젝트의 특정 주소로 점프하지만 이 주소는 사용자에게 노출되기를 원하지 않습니다.
그래서 우리는 프록시 레이어를 만들고 ngnix를 사용하여 프로젝트의 특정 경로를 통해 이 주소로 직접 프록시를 사용하는 방법을 생각했습니다.
관련 문서를 쿼리한 결과 해결 방법은 다음과 같습니다.
return 302 사용
location /myBaidu { return 302 http://baidu.com; }
이 해결 방법은 Baidu로 직접 이동하여 도메인 이름을 변경합니다. 이는 direct location.href = 'baidu와 동일합니다. .com'은 분명히 우리 요구에 적합하지 않습니다.
우리가 원하는 효과는 Baidu로 프록시를 지정하는 것이지만 브라우저의 URL 상자는 여전히 /sparkMonitor입니다. 그런 다음 Proxy_pass를 사용하세요
proxy_pass를 사용하세요
우리 웹 사이트 도메인 이름이 http://myorigin이라고 가정합니다. com /
location /myBaidu { proxy_pass http://www.baidu.com/; }
이렇게 구성하면 아래와 같이 http://myorigin.com/myBaidu에서 바이두 페이지에 바로 접속할 수 있습니다
proxy_pass에서 사용하는 구문은 /
와 관련이 있습니다. 경로에 /: 상대 경로가 추가됩니다. 이는 http://www.baidu.com/
location /myBaidu { proxy_pass http://www.baidu.com/; }
로 프록시하는 것과 같습니다. http://myorigin.com/myBaidu/abc를 방문하는 것은 방문하는 것과 같습니다. http://www.baidu.com/abc
경로에 /:절대경로를 추가하지 않은 경우 http://www.baidu.com/myBaidu
location /myBaidu { proxy_pass http://www.baidu.com; }
http:/로 접속하는 것과 같습니다. /myorigin.com/myBaidu/abc는 http://www.baidu.com/myBaidu/abc
경로에 /xxx/
location /myBaidu { proxy_pass http://www.baidu.com/xxx/; }
를 추가하면 http://myorigin에 접속하는 것과 같습니다. com/myBaidu/abc는 http://www.baidu.com/xxx/abc
에 액세스하는 것과 같습니다. http://myorigin.com/을 방문하면 /xxx
location /myBaidu { proxy_pass http://www.baidu.com/xxx; }
로 경로가 추가됩니다. myBaidu/abc, http://www.baidu.com/xxxabc
기타 질문
proxy_pass 솔루션을 사용하여 Baidu 페이지에 대한 역프록시를 사용하면 문제가 없습니다.
하지만 우리 프로젝트에서는 인트라넷 도메인 이름으로 점프해야 하며, 이 도메인 이름과 http://myorigin.com/은 상호 운용이 불가능하므로 프록시를 구성할 때 이를 IP 주소로 구성해야 합니다. 그런 다음 프록시가 성공적으로 점프합니다.
그러나 이때 에이전트를 여는 페이지에는 스타일이 표시되지 않습니다. 콘솔을 확인하면 다음 오류가 발견되었습니다.
아래 표시된 오류를 보려면 클릭하세요
이로부터 문제는 명백합니다. 프록시 웹사이트는 루트 디렉터리의 절대 경로를 사용하여 /static 아래에서 jquery 파일을 찾기 때문에 http://myorigin.com/static을 직접 찾습니다. 이런 식으로 프록시 프로젝트를 찾을 수 없습니다/정적 파일이므로 jquery는 오류를 찾을 수 없으며 페이지 스타일이 유효하지 않습니다
그리고 /static 파일뿐만 아니라 다른 파일도 마찬가지입니다. 파일을 찾을 수 없으며 경로가 라우팅과 충돌하여 문제가 발생할 수 있습니다
따라서 프론트엔드 프로젝트의 nginx 구성을 다른 웹사이트에 주의해서 전달해야 한다는 결론을 내릴 수 있습니다. 특정 상황에 대한 구체적인 분석이 필요합니다
위 내용은 nginx 구성을 다른 웹사이트로 전달하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undress AI Tool
무료로 이미지를 벗다

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Stock Market GPT
더 현명한 결정을 위한 AI 기반 투자 연구

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

1. PHP 개발 질문 및 답변 커뮤니티에서 Laravel MySQL VUE/React 조합의 첫 번째 선택은 생태계의 성숙과 높은 개발 효율로 인해 Laravel MySQL VUE/React 조합의 첫 번째 선택입니다. 2. 고성능은 캐시 (REDIS), 데이터베이스 최적화, CDN 및 비동기 큐에 의존해야합니다. 3. 입력 필터링, CSRF 보호, HTTPS, 비밀번호 암호화 및 권한 제어로 보안을 수행해야합니다. 4. 돈 선택적 광고, 회원 가입, 보상, 커미션, 지식 지불 및 기타 모델은 핵심은 커뮤니티 톤 및 사용자 요구에 맞는 것입니다.

Nginx가 "ToomyopenFiles"오류를 경험하면 일반적으로 시스템 또는 프로세스가 파일 디스크립터 제한에 도달했기 때문입니다. 솔루션은 다음과 같습니다. 1. Linux 시스템의 소프트 및 하드 제한을 늘리거나 nginx의 관련 매개 변수를 설정하거나 /etc/security/limits.conf에서 실행 사용자를 설정합니다. 2. 예상 트래픽에 적응하도록 nginx의 worker_connection 값을 조정하고 과부하 된 구성을 확인하십시오. 3. 시스템 수준 파일 설명자의 상한을 늘리십시오. fs.file-max, /etc/sysctl.conf edit 및 변경 사항을 적용하십시오. 4. 로그 및 리소스 사용량을 최적화하고 Open_L 사용과 같은 불필요한 파일 핸들 사용을 줄입니다.

MAC 환경 구조에서 홈 브루의 핵심 역할은 소프트웨어 설치 및 관리를 단순화하는 것입니다. 1. 홈브리는 종속성을 자동으로 처리하고 복잡한 편집 및 설치 프로세스를 간단한 명령으로 캡슐화합니다. 2. 소프트웨어 설치 위치 및 구성의 표준화를 보장하기 위해 통합 소프트웨어 패키지 생태계를 제공합니다. 3. 서비스 관리 기능을 통합하고 양조 서비스를 통해 서비스를 쉽게 시작하고 중지 할 수 있습니다. 4. 편리한 소프트웨어 업그레이드 및 유지 관리 및 시스템 보안 및 기능을 향상시킵니다.

Nginx의 HTTP/2 또는 HTTP/3 지원을 가능하게하려면 전제 조건을 충족하고 올바르게 구성해야합니다. HTTP/2는 Nginx1.9.5, OpenSSL1.0.2 및 HTTPS 환경을 필요로합니다. add-with-http_v2_module 모듈 구성 중에 청취 문을 수정하여 443SSLHTTP2; 서비스에 과부하; HTTP/3은 quic을 기반으로하며, 컴파일 중에 BoringsSL 또는 OpenSSLquic 브랜치를 도입하고 UDP 청취 포트를 구성하려면 Nginx-Quic과 같은 타사 모듈이 필요합니다. 배포 중 일반적인 문제는 ALPN이 활성화되지 않음, 인증서 호환성, 방화벽 제한 및 컴파일 오류가 포함됩니다. 우선 순위를 사용하는 것이 좋습니다.

PHP 환경과 생산 사이의 불일치 문제를 해결하기 위해 핵심은 Kubernetes의 컨테이너화 및 오케스트레이션 기능을 사용하여 환경 일관성을 달성하는 것입니다. 특정 단계는 다음과 같습니다. 1. 모든 PHP 버전, 확장, 종속성 및 웹 서버 구성을 포함하여 통합 된 Docker 이미지를 구축하여 동일한 이미지가 개발 및 생산에 사용되도록합니다. 2. Kubernetes의 구성 및 비밀을 사용하여 비 민감하고 민감한 구성을 관리하고 볼륨 마운트 또는 환경 가변 주입을 통해 다양한 환경 구성의 유연한 스위칭을 달성합니다. 3. Unified Kubernetes 배포 정의 파일 (배포 및 서비스 등)을 통한 응용 프로그램 동작 일관성을 보장하고 버전 제어에 포함시킵니다. 4.

1. PHP 전자 상거래 백엔드의 주류 프레임 워크에는 Laravel (빠른 개발, 강력한 생태학), Symfony (엔터프라이즈 수준, 안정적인 구조), YII (우수한 성능, 표준화 된 모듈에 적합); 2. 기술 스택에는 MySQL Redis 캐시, Rabbitmq/Kafka 메시지 대기열, Nginx PHP-FPM 및 프론트 엔드 분리가 장착되어 있어야합니다. 3. 높은 동시성 아키텍처는 계층화되고 모듈화되어야하며 데이터베이스는 분리/분산 데이터베이스를 읽고 쓰고, 캐시 및 CDN으로 가속화되고, 작업의 비동기 처리,로드 밸런싱 및 세션 공유, 점차 마이크로 서비스 및 모니터링 및 경보 시스템을 설정해야합니다. 4. 다중 수익 창출 경로에는 제품 가격 차이 또는 플랫폼 커미션, 사이트 광고, SAAS 구독, 맞춤형 개발 및 플러그인 시장, API 연결이 포함됩니다.

Nginx 구성에서 위치 블록 내의 @ 기호는 이름이 지정된 위치를 정의하는 데 사용됩니다. 이들은 내부적으로 사용되는 엔드 포인트이며 클라이언트 요청과 직접 일치 할 수 없습니다. 일반적으로 error_page, try_files 또는 다시 쓰기 지시문을 통해 호출됩니다. 1. 이름 지정 위치는 @로 시작합니다. 예를 들어, 위치@notfound는 직접 요청에 응답하지 않지만 다른 구성 부분에서 트리거됩니다. 2. 이것은 종종 사용자 정의 오류 처리, 내부 라우팅 및 백엔드 에이전트 백업에 사용됩니다. 3. 예를 들어, try_files와 결합하여 정적 파일이 존재하지 않을 때 @backend로 전달합니다. 4. 참고 사항에는 다음이 포함됩니다. 직접 액세스하지 않음, 명명 충돌을 피하고 설명 이름을 사용합니다. 이름이 지정된 위치에는 포함될 수 있습니다

Nginx 구성을 수정 한 후 먼저 구문을 테스트 한 다음 서비스를 다시로드해야합니다. 1. nginx-t를 사용하여 구성 파일 구문을 확인하십시오. "SyntaxIsok"및 "TestisSuccessful"프롬프트가 프롬프트되면 정확하다는 것을 의미합니다. 오류가 있으면 특정 문제 라인이 표시됩니다. 2. 구성 파일 권한이 높으면 sudonginx-t를 사용하여 실행해야합니다. 3. 테스트가 실제로로드되었는지 확인하십시오. nginx-t-c/path/to/your/nginx.conf를 통해 경로를 지정하거나 ps-ef | grepnginx를 통해 기본 프로세스에서 사용한 구성 파일을 볼 수 있습니다. 4. 테스트가 통과 된 후 SudongInx-Sreload Overload 서비스를 실행하여 새 구성을 발효시킵니다.
