2019 - 02 - 13 노트 - Nginx 기능 설정 (리 버스 에이전트, SSL)
5880 단어 linux 학습 노트
리 버스 프 록 시 (Reverse Proxy) 는 프 록 시 서버 로 퍼 블 릭 네트워크 의 연결 요청 을 받 은 후 내부 네트워크 에 있 는 서버 에 전송 요청 을 하고 서버 에서 얻 은 결 과 를 퍼 블 릭 네트워크 에서 연결 을 요청 한 클 라 이언 트 에 게 되 돌려 주 는 것 을 말한다.
필드 사용
location /
{
proxy_pass http://ip; # IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
실험 설정:
최종 적 으로 실현 해 야 할 목적: C 는 A 기계 내부 네트워크 의 사 이 트 를 방문 해 야 한다.
네트워크 카드 추가: B 가상 컴퓨터 에서 네트워크 카드 장치 파일 을 추가 한 후 dhclient 명령 을 실행 하여 두 번 째 네트워크 카드 의 IP 주 소 를 가 져 옵 니 다. 네트워크 카드 설정 파일 ifcfg - ens 33 에서 ifcfg - ens 38 까지 복사 하여 설정 을 수정 합 니 다.
[root@dxg ~]# cd /etc/yum.repos.d/
[root@dxg yum.repos.d]# vi nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
[root@dxg yum.repos.d]# yum install -y nginx
[root@dxg yum.repos.d]# cd /etc/nginx/conf.d/
[root@dxg conf.d]# vi default.conf
deny all; #
[root@dxg conf.d]# vi bbs.aibenwoniu.xyz.conf
server
{
listen 80;
server_name bbs.aibenwoniu.xyz;
location /
{
proxy_pass http://192.168.85.129;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
[root@dxg conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@dxg conf.d]# nginx -s reload
[root@dxg conf.d]# firewall-cmd --add-port=80/tcp --permanent # ,
[root@dxg conf.d]# firewall-cmd --reload
액세스 인증
[root@dxg conf.d]# vi /etc/hosts
192.168.48.132 bbs.aibenwoniu.xyz
[root@dxg conf.d]# curl -I bbs.aibenwoniu.xyz
HTTP/1.1 200 OK
Server: nginx/1.14.2
Date: Mon, 11 Feb 2019 06:52:07 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
X-Powered-By: PHP/7.3.1
nginx 부하 균형
부하 균형 은 전단 의 요 구 를 백 엔 드 의 각 기계 에 균형 있 게 나 누 어 주 는 것 이다.
[root@dxg conf.d]# vi qq.com.conf
upstream qq.com
{
ip_hash;
server 111.161.64.48:80;
server 180.163.26.39:80;
}
server
{
listen 80;
server_name www.qq.com;
location /
{
proxy_pass http://qq.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
검증 하 다.
[root@dxg conf.d]# curl -x111.161.64.48:80 www.qq.com -I
HTTP/1.1 200 OK
Server: squid/3.5.24
Date: Mon, 11 Feb 2019 09:07:35 GMT
Content-Type: text/html; charset=GB2312
Connection: keep-alive
Vary: Accept-Encoding
Vary: Accept-Encoding
Expires: Mon, 11 Feb 2019 09:08:35 GMT
Cache-Control: max-age=60
Vary: Accept-Encoding
Vary: Accept-Encoding
X-Cache: MISS from shenzhen.qq.com
ssl 설정
Nginx 가 https (암호 화 된 http) 로 웹 사 이 트 를 방문 할 수 있 도록 ssl 을 설정 합 니 다. http 기본 값 은 80 포트 이 고 https 기본 값 은 443 포트 입 니 다.
[root@linux2019 nginx]# mkdir ssl
[root@linux2019 nginx]# cd ssl/
[root@linux2019 ssl]# vi ca
[root@linux2019 ssl]# vi crt
[root@linux2019 ssl]# vi key
#
[root@linux2019 conf.d]# vi bbs.aibenwoniu.xyz.conf
listen 443 ssl;
server_name bbs.aibenwoniu.xyz;
ssl on;
ssl_certificate /etc/nginx/ssl/bbs.crt;
ssl_certificate_key /etc/nginx/ssl/bbs.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
[root@linux2019 conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@linux2019 conf.d]# nginx -s reload
[root@linux2019 conf.d]# firewall-cmd --add-port=443/tcp --permanent
success
[root@linux2019 conf.d]# firewall-cmd --reload
success
[root@linux2019 conf.d]# systemctl restart nginx
검증 하 다.
[root@linux2019 conf.d]# curl -H "host:bbs.aibenwoniu.xyz" https://192.168.85.129/index.php
curl: (60) Peer's Certificate issuer is not recognized.
More details here: http://curl.haxx.se/docs/sslcerts.html
curl performs SSL certificate verification by default, using a "bundle"
of Certificate Authority (CA) public keys (CA certs). If the default
bundle file isn't adequate, you can specify an alternate file
using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
the bundle, the certificate verification probably failed due to a
problem with the certificate (it might be expired, or the name might
not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
the -k (or --insecure) option.
[root@linux2019 conf.d]# curl -k -H "host:bbs.aibenwoniu.xyz" https://192.168.85.129/index.php
PS1: curl - k \ # curl 이 안전 하지 않 은 ssl 연결 을 사용 하고 데 이 터 를 전송 할 수 있 도록 합 니 다 (인증서 가 신뢰 되 지 않 음)
PS2: SSL 관련 확장 학습 -https://github.com/aminglinux/nginx/tree/master/ssl
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
2019 - 02 - 13 노트 - Nginx 기능 설정 (리 버스 에이전트, SSL)리 버스 프 록 시 (Reverse Proxy) 는 프 록 시 서버 로 퍼 블 릭 네트워크 의 연결 요청 을 받 은 후 내부 네트워크 에 있 는 서버 에 전송 요청 을 하고 서버 에서 얻 은 결 과 를 퍼 블 릭 네...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.