다음은 간단한 예입니다.
centos7 시스템 라이브러리에는 기본적으로 nginx rpm 패키지가 없으므로 먼저 rpm 종속성 라이브러리를 업데이트해야 합니다.
1) yum을 사용하여 nginx를 설치하려면 nginx를 포함해야 합니다. library , nginx 라이브러리 설치
[root@localhost ~]# rpm -uvh http://nginx.org/packages/centos/7/noarch/rpms/nginx-release-centos-7-0.el7.ngx.noarch.rpm
2) 다음 명령을 사용하여 nginx
[root@localhost ~]# yum install nginx
3) nginx 구성
[root@localhost ~]# cd /etc/nginx/conf.d/ [root@localhost conf.d]# cat test.conf server { listen 80; server_name localhost; location / { root /var/www/html; index index.html; } } [root@localhost conf.d]# cat /var/www/html/index.html this is page of test!!!!
4) nginx 시작
[root@localhost ~]# service nginx start //或者使用 systemctl start nginx.service
5) 테스트 액세스(103.110.186.23은 192.168입니다.) .1.23 머신 외부 네트워크 IP)
[root@localhost conf.d]# curl http://192.168.1.23 this is page of test!!!!
다음 상황을 살펴보십시오. http://192.168.1.23/proxy/index.html을 사용하여 액세스 테스트를 수행하세요
테스트의 편의를 위해 먼저 다른 머신 192.168을 사용하십시오. .1.5 포트 8090에 nginx를 배포합니다. 구성은 다음과 같습니다.
[root@bastion-idc ~]# cat /usr/local/nginx/conf/vhosts/haha.conf server { listen 8090; server_name localhost; location / { root /var/www/html; index index.html; } } [root@bastion-idc ~]# cat /var/www/html/index.html this is 192.168.1.5 [root@bastion-idc ~]# /usr/local/nginx/sbin/nginx -s reload
테스트 액세스(103.110.186.5는 192.168.1.5의 외부 네트워크 IP입니다.):
[root@bastion-idc ~]# curl http://192.168.1.5:8090 this is 192.168.1.5
192.168.1.23은 는 nginx 역방향 프록시 머신, nginx 구성은 다음과 같습니다.
1) 첫 번째 경우:
[root@localhost conf.d]# cat test.conf server { listen 80; server_name localhost; location / { root /var/www/html; index index.html; } location /proxy/ { proxy_pass http://192.168.1.5:8090/; } }
이렇게 하면 http://192.168.1.23/proxy/에 대한 액세스가 http://192.168에 대한 프록시가 됩니다. .1.5:8090/. p와 일치하는 프록시 디렉토리는 루트 디렉토리 /var/www/html
에 존재할 필요가 없습니다. 터미널에서 http://192.168.1.23/proxy에 액세스하는 경우(즉, 뒤에 "/"가 없음) ), 액세스가 실패합니다! Proxy_pass
[root@localhost conf.d]# curl http://192.168.1.23/proxy/ this is 192.168.1.5 [root@localhost conf.d]# curl http://192.168.1.23/proxy <html> <head><title>301 moved permanently</title></head> <body bgcolor="white"> <center><h1>301 moved permanently</h1></center> <hr><center>nginx/1.10.3</center> </body> </html>
에서 설정한 url 뒤에 "/"가 추가되기 때문에 페이지가 http://103.110.186.23/proxy에 접속하면 자동으로 "/"가 추가됩니다. (같은 이유는 url 뒤에 "/"가 추가되기 때문입니다. proxy_pass로 구성), http://103.110.186.5:8090
2)의 결과로 역전됩니다. 두 번째 경우, Proxy_pass
[root@localhost conf.d]# cat test.conf server { listen 80; server_name localhost; location / { root /var/www/html; index index.html; } location /proxy/ { proxy_pass http://192.168.1.5:8090; } } [root@localhost conf.d]# service nginx restart redirecting to /bin/systemctl restart nginx.service
로 구성한 URL 뒤에 "/"가 추가되지 않으면 다음을 방문하세요. http://192.168.1.23/proxy 또는 http://192.168.1.23/proxy/는 실패합니다!
이 구성 후 http://192.168.1.23/proxy/에 대한 액세스는 http://192.168.1.5:8090/proxy/
3) 세 번째 상황
[root@localhost conf.d]# cat test.conf server { listen 80; server_name localhost; location / { root /var/www/html; index index.html; } location /proxy/ { proxy_pass http://192.168.1.5:8090/haha/; } } [root@localhost conf.d]# service nginx restart redirecting to /bin/systemctl restart nginx.service [root@localhost conf.d]# curl http://192.168.1.23/proxy/ 192.168.1.5 haha-index.html
이렇게 구성한 경우 http://103.110.186.23/proxy를 방문하여 http://192.168.1.5:8090/haha/
4)로 프록시 설정합니다. 4) 네 번째 상황: 세 번째 구성의 URL에 상대적 "/" 추가
[root@localhost conf.d]# cat test.conf server { listen 80; server_name localhost; location / { root /var/www/html; index index.html; } location /proxy/ { proxy_pass http://192.168.1.5:8090/haha; } } [root@localhost conf.d]# service nginx restart redirecting to /bin/systemctl restart nginx.service [root@localhost conf.d]# curl http://192.168.1.23/proxy/index.html 192.168.1.5 hahaindex.html
위 구성 후 http://192.168.1.23/proxy/index.html에 액세스하면 http://192.168.1.5:8090/hahaindex.html
로 프록시가 됩니다. 마찬가지로 http:/에 액세스합니다. /192.168.1.23/proxy/test.html은 http://192.168.1.5:8090/hahatest.html
[root@localhost conf.d]# curl http://192.168.1.23/proxy/index.html 192.168.1.5 hahaindex.html
로 프록시됩니다. 이 경우 http://192.168은 1.23/proxy에 직접 액세스할 수 없습니다. /, 기본 index.html 파일도 유지되어야 합니다. 그렇지 않으면 액세스가 실패합니다!
------------------------------- ------ -----------------
위 4가지 경로 뒤에 "/"를 추가합니다. 경로 뒤에 "/"가 없는 상황에 대해 이야기해 보겠습니다.
1) 첫 번째 경우, Proxy_pass 뒤의 URL에 "/"가 있습니다:
[root@localhost conf.d]# cat test.conf server { listen 80; server_name localhost; location / { root /var/www/html; index index.html; } location /proxy { proxy_pass http://192.168.1.5:8090/; } } [root@localhost conf.d]# service nginx restart redirecting to /bin/systemctl restart nginx.service
2 ) 두 번째 경우, Proxy_pass 뒤의 url에 "/"
[root@localhost conf.d]# cat test.conf server { listen 80; server_name localhost; location / { root /var/www/html; index index.html; } location /proxy { proxy_pass http://192.168.1.5:8090; } } [root@localhost conf.d]# service nginx restart redirecting to /bin/systemctl restart nginx.service [root@localhost conf.d]#
가 포함되어 있지 않은 경우, 이렇게 구성하면 http://103.110.186.23/proxy에 접속하면 자동으로 "/"가 추가됩니다(즉, http://103.110.186.23/proxy/), 192.168.1.5:8090/proxy/
3) 세 번째 경우
[root@localhost conf.d]# cat test.conf server { listen 80; server_name localhost; location / { root /var/www/html; index index.html; } location /proxy { proxy_pass http://192.168.1.5:8090/haha/; } } [root@localhost conf.d]# service nginx restart redirecting to /bin/systemctl restart nginx.service
이렇게 구성하면 http://103.110에 접속하게 됩니다. .186.23/proxy는 "/"(즉, http://103.110.186.23/proxy/가 됨), http://192.168.1.5:8090/haha/
4)에 대한 프록시를 자동으로 추가합니다. 네 번째 상황: 세 번째 구성과 비교하면 URL이 다릅니다. "/"
[root@localhost conf.d]# cat test.conf server { listen 80; server_name localhost; location / { root /var/www/html; index index.html; } location /proxy { proxy_pass http://192.168.1.5:8090/haha; } } [root@localhost conf.d]# service nginx restart redirecting to /bin/systemctl restart nginx.service
이렇게 구성하면 세 번째 결과와 마찬가지로 http://103.110.186.23/proxy에 액세스합니다. http://192.168.1.5:8090/haha/
로 프록시되었습니다.위 내용은 nginx Proxy_pass 역방향 프록시 구성 예제 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!