우분투 리눅스에서 Nginx Server Blocks

이 튜토리얼은 Ubuntu Linux에서 Nginx Server Block을 설정하는 데 필요한 모든 단계를 보여줍니다.

Nginx Server Blocks은 Apache Virtual host 기능과 거의 같습니다.

이 튜토리얼은 Ubuntu 18.04에서 테스트되었습니다.

1. Ubuntu Linux에 Nginx를 설치하십시오.

Ubuntu APT 명령을 사용하여 Nginx 서버를 설치하십시오.

# apt-get update
# apt-get install nginx

Nginx 웹 서버를 수동으로 다시 시작하십시오.

# service nginx restart
# service nginx status

Nginx 서비스 상태를 확인하십시오.

● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2018-12-29 04:29:22 UTC; 1h 17min ago
Docs: man:nginx(8)
Process: 2233 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status
Process: 2221 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exite
Main PID: 2238 (nginx)
Tasks: 2 (limit: 1152)
CGroup: /system.slice/nginx.service
├─2238 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─2239 nginx: worker process

우분투 리눅스에서 Nginx 웹 서버 설치를 마쳤습니다.

2. Nginx에 PHP 지원 추가

Nginx는 PHP 지원을 추가하기 위해 외부 프로그램이 필요합니다.

Ubuntu APT 명령을 사용하여 PHP 필수 패키지를 설치하십시오.

# apt-get update
# apt-get install php7.2-fpm

선택 과목. 가장 많이 사용되는 PHP 모듈을 설치하려면 다음 명령을 사용하십시오.

# apt-get install php7.2-xml php7.2-curl php7.2-gd php7.2-mbstring php7.2-mysql
# apt-get install php7.2-bz2 php7.2-zip php7.2-json php7.2-readline

시스템에서 PHP 구성 파일의 위치를 찾으십시오.

php.ini 구성 파일을 편집하십시오.

# updatedb
# locate php.ini
# vi /etc/php/7.2/fpm/php.ini

귀하의 PHP 버전이 우리와 다를 수 있습니다.

귀하의 PHP 구성 파일 위치가 우리와 다를 수 있습니다.

여기에 우리의 구성 파일이 있습니다.

file_uploads = On
max_execution_time = 300
memory_limit = 256M
post_max_size = 32M
max_input_time = 60
max_input_vars = 4440
upload_max_filesize = 32M

Nginx 기본 웹 사이트 구성 파일을 편집하십시오.

# vi /etc/nginx/sites-available/default

여기에 우리의 구성 이전의 원본 파일이 있습니다.

server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ =404;
}
}

우리의 구성을 가진 새로운 파일이 있습니다.

server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.php index.html index.htm;
server_name _;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
}

Nginx 구성 파일에 오류가 없는지 확인하십시오.

# nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

PHP 서비스를 다시 시작하십시오.
Nginx 서비스를 다시 시작하십시오.

# service php7.2-fpm restart
# service nginx restart

Ubuntu Linux에서 PHP와의 Nginx 통합을 마쳤습니다.

3. Nginx 서버 블록 구성

서버 블록은 하나의 Nginx 서버가 동일한 IP 주소를 사용하여 여러 웹 사이트를 제공 할 수있게 해주는 기능입니다.

Nginx Server 블록 기능을 사용하는 데 필요한 인프라를 만들 수 있습니다.

# mkdir /websites/mining-pool -p
# cd /websites/mining-pool
# mkdir www
# chown www-data.www-data /websites -R

저희 웹 사이트의 이름은 mining-pool.ninja입니다.

mining-pool.ninja 웹 사이트 파일은 / websites / mining-pool / www 디렉토리에 있어야합니다.

Alert!

Mining-pool.ninja was used as an example!

You need to change your configuration files to reflect your website name.

웹 사이트에 Nginx Virtualhost 설정 파일을 만드십시오.

# vi /etc/nginx/sites-available/mining-pool.conf

여기에 우리의 구성 파일이 있습니다.

server {
listen 80;
listen [::]:80;
root /websites/mining-pool/www;
index index.php index.html index.htm;
server_name mining-pool.ninja;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
}

심볼릭 링크를 생성하여 Nginx 가상 호스트 구성을 활성화하십시오.

Nginx 서비스를 다시 시작하십시오.

# ln -s /etc/nginx/sites-available/mining-pool.conf /etc/nginx/sites-enabled/
# service nginx restart

Nginx Server 블록 구성을 마쳤습니다.

4. DNS 도메인 구성

액세스 GODADDY DNS 도메인을 구입할 수 있습니다.

이 예에서는 MINING-POOL.NINJA라는 도메인을 구입합니다.

어떤 웹 사이트라도 DNS 도메인을 구입할 수 있습니다. GoDaddy는 제 개인적인 선택입니다.

Nginx를 실행하는 컴퓨터에 웹 사이트를 가리키는 DNS 항목을 만듭니다.

이 예에서는 도메인 MINING-POOL.NINJA를 IP 주소 35.163.100.49로 가리키는 DNS 항목을 만들었습니다.

Godaddy Apache DNS Configuration

NSLOOKUP 명령을 사용하여 DNS 구성을 테스트하십시오.

# apt-get update
# apt-get install dnsutils
# nslookup mining-pool.ninja

Non-authoritative answer:
Name: mining-pool.ninja
Address: 35.163.100.49

DNS 도메인 구성을 마쳤습니다.

우리의 설정을 테스트하기 위해 기본적인 PHP 테스트 페이지를 만들어 보자.

# vi /websites/mining-pool/www/index.php

다음은 index.php 파일의 내용입니다.

<?php phpinfo(); ?>

브라우저를 열고 웹 사이트의 HTTP 버전에 액세스하십시오.

이 예에서는 브라우저에 다음 URL이 입력되었습니다.

• http://mining-pool.ninja

PHP 정보 페이지가 제시되어야합니다.

PHPInfo Nginx