>  기사  >  백엔드 개발  >  Nginx를 사용하여 Centos7.2에서 가상 호스트 구현

Nginx를 사용하여 Centos7.2에서 가상 호스트 구현

小云云
小云云원래의
2018-03-05 11:33:474402검색

1. 서문

먼저 Linux 시스템에 Nginx가 올바르게 설치되어 있는지 확인해야 합니다. 물론 Nginx가 설치되지 않은 경우

시스템 환경:
Linux 환경: centos-를 참조하세요. 7.2
Nginx 환경: nginx-1.9.9

2. Nginx 소개
Nginx는 고성능 http 서버/역방향 프록시 서버이자 이메일(IMAP/POP3) 프록시 서버입니다. 러시아 프로그래머 Igor Sysoev가 개발한 nginx의 공식 테스트는 50,000개의 동시 연결을 지원할 수 있고 CPU 및 메모리와 같은 리소스를 거의 소비하지 않으며 매우 안정적으로 실행됩니다. 오픈 소스이며 무료입니다.


3. Nginx로 무엇을 할 수 있나요?
1. http 서버: Nginx는 http 서비스를 독립적으로 제공할 수 있는 http 서비스입니다. 정적 웹 서버로 사용할 수 있습니다.
2. 가상 호스트: 하나의 서버에서 여러 웹사이트를 가상화할 수 있습니다. 예를 들어 개인 웹사이트에서 사용하는 가상 호스트입니다.
3. 역방향 프록시/로드 밸런싱: 웹 사이트 방문 수가 특정 수준에 도달하고 단일 서버가 사용자 요청을 충족할 수 없는 경우 여러 서버 클러스터가 필요하며 nginx를 역방향 프록시로 사용할 수 있습니다. 그리고 여러 서버가 부하를 균등하게 공유할 수 있어 특정 서버의 높은 부하로 인한 다운타임이 없으며 특정 서버가 유휴 상태가 되지 않습니다.


4. Nginx를 사용하여 가상 호스트 구현
여기서 실제 프로덕션 환경에서는 공용 네트워크를 통해 비즈니스에 액세스해야 하는 이유를 알아야 합니다. a 클라우드 서버는 공인 IP에 해당하므로 일반 기업에서는 공인 IP가 매우 부족한 자원이지만 BAT 등 일부 대기업의 경우 별 문제가 되지 않을 수 있습니다.
여기서 Nginx를 사용하여 가상 호스트를 구현하면 서로 간섭하지 않고 동일한 서비스에서 여러 웹사이트를 실행할 수 있습니다.


동일한 서버에 IP가 있을 수 있으며 웹사이트는 포트 80을 사용해야 하지만 웹사이트의 도메인 이름은 다릅니다.
다른 웹사이트를 구별하는 세 가지 방법이 있습니다:


1. http 서비스

2. 가상 머신 구현

1) IP 기반 가상 머신
2) 포트 기반 가상 머신
3) 도메인 이름 기반 가상 머신
3 .Anti-Proxy, 로드 밸런싱

5. IP 구별 가상 호스트

하나의 서버에 여러 IP 주소를 바인딩합니다.

방법 1:

표준 네트워크 구성 도구(예: ifconfig 및 Route 명령)를 사용하여 lP 별칭을 추가합니다.


아래 표시된 대로 "ifconfig" 명령을 입력하여 현재 IP 구성을 확인합니다.


ens33 네트워크 카드를 다시 바인딩합니다. IP를 192.168.78.142로 설정하고 네트워크 카드 이름을 ens33:1


/sbin/ifconfig ens33:1 192.168.78.142 broadcast 192.168.78.255 netmask 255.255.255.0 up
/sbin/route add -host 192.168.78.142 dev ens33:1

로 지정합니다. 가상 네트워크 카드가 생성되면 아래와 같습니다.


방법 2:

1. /etc/sysconfig/network 변경 - scripts/ifcfg-ens33 파일을 복사하고,


디렉토리를 입력하고 "cp ifcfg-ens33 ifcfg-ens33:1 -r" 명령을 입력하고 이름을 ifcfg-ens33으로 지정합니다. 1, 아래와 같이:


2. 구성 파일을 수정하고 "vi ifcfg-ens33:1" 명령을 입력하고 다음 내용을 수정합니다.

NAME=ens33:1
DEVICE=ens33:1
IPADDR=192.168.78.142

수정 후 다른 항목을 수정할 필요가 없습니다.


생성이 완료된 후 새 IP를 테스트합니다. 바인딩이 성공했는지 여부를 아래와 같이 DOS 창에 "ping 192.168.78.142" 명령을 입력합니다.


참고: 방법 1을 사용한 IP 바인딩은 시스템이 다시 시작된 후 자동으로 바인딩 해제되며 두 번째 방법은 영구적입니다.

3. 시스템을 다시 시작하고

"reboot" 명령을 입력한 후 시스템을 다시 시작한 후 "ifconfig" 명령을 입력하면 아래와 같이
새 네트워크 카드가 정상적으로 생성된 것을 확인할 수 있습니다.



6 . nginx는 가상 머신을 구현합니다

1) IP 주소를 기반으로 nginx 가상 호스트 구성

테스트를 위해 nginx를 식별하는 두 개의 HTML을 준비합니다. 구별하기 쉽습니다. /usr/local/nginx 디렉터리로 이동하여 HTML을 두 개의 복사본으로 복사합니다.


아래 index.html 내용을 수정하시면 더 간단하니 여기에 기재하지 않겠습니다. 혹시 모르신다면 아래와 같이 메시지를 남겨주시거나 비공개 메시지를 보내주세요.

수정 nginx 구성 파일을 열고 "vi conf/nginx.config" 명령을 입력하세요.

독자들의 복사 편의를 위해 여기서는 불필요한 내용을 삭제했습니다. 내용은 다음과 같습니다.

    server {
        listen       80;
        server_name  192.168.78.141;




        location / {
            root   html-141;
            index  index.html index.htm;
        }


    }


    server {
        listen       80;
        server_name  192.168.78.142;




        location / {
            root   html-142;
            index  index.html index.htm;
        }


    }
아래 그림과 같습니다. :

测试nginx 虚拟主机是否可以正常访问,

测试 192.168.78.141 虚拟主机,如下图:




测试 192.168.78.142 虚拟主机,如下图:




2)、配置 nginx 基于端口的虚拟主机
还是老规矩,准备两个标识 nginx 的 HTML,用于在测试时好区别:进入到 /usr/local/nginx 目录下,将 html 分别复制两份,

在修改下面 index.html 的内容,这儿较简单就不在写了,如果不知道请留言或私信,如下图:


修改 nginx 的配置文件,输入命令 “ vi conf/nginx.config ”

方便读者的复制,内容如下:

server {
        listen       81;
        server_name  192.168.78.141;




        location / {
            root   html-81;
            index  index.html index.htm;
        }


    }


    server {
        listen       82;
        server_name  192.168.78.141;




        location / {
            root   html-82;
            index  index.html index.htm;
        }


    }

如下图所示:


重启Nginx 后,测试nginx 虚拟主机是否可以正常访问,

测试 81端口的 虚拟主机,如下图:


测试 82端口的 虚拟主机,如下图:





3)、基于域名的虚拟主机
基于域名的虚拟主机是最有用的虚拟主机配置方式。
即一个域名只能绑定一个ip地址,一个ip地址可以被多个域名绑定。


实现基于域名的虚拟主机,在这儿还需要修改 Linux 的 HostName,当然还可以通过 这个工具进行修改 ,对于互联网开发的人来说,经常变更 host 必不可免。每次我们都一遍一遍的去修改hosts文件真是很累,如果能更快速的修改成不同hosts,这儿为大家推荐一个好用的软件 SwitchHosts ,轻松一键切换。

以管理员身份打开,然后就可以设置域名和ip的映射关系,新增一个本地解决方案,键入如下内容,

192.168.78.141 www.12345.com
192.168.78.141 register.12345.com
192.168.78.141 login.12345.com

如下图:




注:修改window的hosts文件:(C:\Windows\System32\drivers\etc)


基于 Nginx 域名的虚拟主机配置,修改内容如下图:


    server {
        listen       80;
        server_name  www.12345.com;




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


    }




    server {
        listen       80;
        server_name  register.12345.com;




        location / {
            root   html-81;
            index  index.html index.htm;
        }


    }


    server {
        listen       80;
        server_name  login.12345.com;




        location / {
            root   html-82;
            index  index.html index.htm;
        }


    }

如下图所示:



修改配置文件后,需要 nginx 重新加载配置文件。

测试 www.12345.com,如下图:


测试 register.12345.com,如下图:


测试 login.12345.com,如下图:


相关推荐:

win10 apache配置虚拟主机后localhost无法使用

详解Linux虚拟主机相关问题

关于php之Apache配置虚拟主机

위 내용은 Nginx를 사용하여 Centos7.2에서 가상 호스트 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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