서버 설치 · 12 min read · Jan 23, 2026

CentOS 7에서 PostgreSQL 및 Nginx로 Mattermost 설치하기

Mattermost는 오픈 소스, 자체 호스팅된 Slack 대안입니다. Mattermost는 방화벽 뒤에서 현대적인 커뮤니케이션을 제공합니다.

독점 SaaS 메시징의 대안으로, Mattermost는 모든 팀 커뮤니케이션을 한 곳에 모아 검색 가능하고 어디서나 접근할 수 있도록 합니다.

Mattermost는 “Slack 호환, Slack 제한 없음”으로, 기존 Slack 통합과의 호환성을 포함하여 Slack의 수신 및 발신 웹훅 통합의 슈퍼셋을 지원합니다. 기존 Slack 팀에서 사용자를 가져오고, 공개 채널 기록 및 테마 설정 색상을 Mattermost로 가져올 수 있습니다.

이 HowTo에서 사용되는 이름, 변수 및 계정

서버의 로컬 IP                : 192.168.2.100  
서버의 FQDN                    : mattermost.example.com  
Mattermost 데이터베이스 이름  : mattermost  
Mattermost 데이터베이스 접근 사용자 : mmuser  
mmuser의 데이터베이스 비밀번호 : DBAss47slX3

전제 조건

이 HowTo는 PostgreSQL을 데이터베이스 백엔드로 사용하여 CentOS7에서 Mattermost 설치를 설명합니다. 이 가이드를 위해 모든 것을 단일 서버에 설치한다고 가정하지만, 경험이 있는 사용자는 각 구성 요소(예: 데이터베이스 서버)를 다른 머신에 설치하는 것이 쉽습니다. 설치는 root 사용자로 수행되었지만, 물론 sudo 사용자가 활성화된 사용자를 사용할 수도 있습니다.

서버의 IP 주소가 192.168.2.100이고 DNS가 mattermost.example.com으로 해석된다고 가정합니다. 따라서 이 HowTo에서 192.168.2.100 또는 mattermost.example.com을 읽을 때마다 서버의 IP 주소로 교체하십시오.

시작하기 전에 최소한의 CentOS7 설치가 필요합니다. 설치 후 이메일을 올바르게 설정했는지 확인하십시오(포스트픽스 구성), 시스템이 이메일을 보낼 수 있도록 합니다(예: 스마트 호스트 또는 유사한 솔루션을 통해).

계속하기 전에 몇 가지 작은 점검을 해보십시오:

서버의 터미널에서 메일을 보내보십시오:

[root@mattermost ~]echo -en "Subject: Testmail\n\nThis is a test\n" | sendmail [email protected]

([email protected]를 서버가 보낼 수 있는 이메일 주소로 교체하십시오). 시스템에서 이메일을 받았는지 확인하십시오!

mattermost.example.com의 이름 해상도 확인

다른 컴퓨터(설정하려는 서버가 아님)에서 mattermost.example.com에 ping을 시도하십시오. 긍정적인 결과를 얻어야 합니다:

C:\>ping mattermost.example.com  
Pinging mattermost.witron.com [192.168.2.100] with 32 bytes of data:  
Reply from 192.168.2.100: bytes=32 time<1ms TTL=64  
Reply from 192.168.2.100: bytes=32 time<1ms TTL=64  
Reply from 192.168.2.100: bytes=32 time<1ms TTL=64  
Reply from 192.168.2.100: bytes=32 time<1ms TTL=64  
  
Ping statistics for 192.168.2.100:  
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),  
Approximate round trip times in milli-seconds:  
Minimum = 0ms, Maximum = 0ms, Average = 0ms

인터넷 연결 확인

이제 wget 패키지를 설치하겠습니다(나중에 필요합니다).

[root@mattermost ~] yum -y install wget

그리고 이를 사용하여 공용 IP를 확인합니다. 그래서 인터넷 연결을 확인할 수 있습니다.

[root@mattermost ~] wget http://ipinfo.io/ip -qO -  
46.101.122.124

결과는 귀하의 공용 IP 주소여야 합니다.

방화벽 상태 확인 및 현재 비활성화

CentOS7 설치에 firewalld가 활성화되어 있는지 확인하십시오. 다음을 입력하여 확인할 수 있습니다.

[root@mattermost ~] systemctl status firewalld

다음과 같은 내용이 표시되면

Active: active (running) since …

다음 두 명령어로 끄고 비활성화하십시오.

[root@mattermost ~] systemctl stop firewalld  
[root@mattermost ~] systemctl disable firewalld

이 튜토리얼의 끝에서 firewalld를 다시 활성화하고 Mattermost와 함께 올바르게 작동하도록 설정하는 방법에 대한 지침을 찾을 수 있습니다.

위의 모든 점검을 통과했거나 이 튜토리얼에 사용할 수 있는 시스템이 있다고 아는 경우 지금 계속 진행할 수 있습니다.

PostgreSQL 데이터베이스 서버 설치

우리는 Mattermost의 데이터베이스 백엔드로 PostgreSQL을 사용할 것입니다. 다음 명령어로 설치하십시오:

[root@mattermost ~] yum -y install postgresql-server postgresql-contrib

설치 후 데이터베이스를 초기화해야 합니다.

[root@mattermost ~] postgresql-setup initdb  
Initializing database ... OK

그런 다음 PostgreSQL을 시작하고 자동 시작을 활성화합니다.

[root@mattermost ~]# systemctl start postgresql  
[root@mattermost ~]# systemctl enable postgresql  
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql.service to /usr/lib/systemd/system/postgresql.service.

PostgreSQL이 실행 중인지 확인하십시오.

[root@mattermost ~]# systemctl status postgresql

다음과 비슷한 내용이 보고되어야 합니다(텍스트 어딘가에 Active: active (running)이 있는지 확인하십시오).

? postgresql.service - PostgreSQL database server  
Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled)  
Active: active (running) since Fri 2016-03-04 11:37:50 CET; 44s ago  
Main PID: 17660 (postgres)  
CGroup: /system.slice/postgresql.service  
??17660 /usr/bin/postgres -D /var/lib/pgsql/data -p 5432  
??17661 postgres: logger process  
??17663 postgres: checkpointer process  
??17664 postgres: writer process  
??17665 postgres: wal writer process  
??17666 postgres: autovacuum launcher process  
??17667 postgres: stats collector process  
  
Mar 04 11:37:48 mattermost systemd[1]: Starting PostgreSQL database server...  
Mar 04 11:37:50 mattermost systemd[1]: Started PostgreSQL database server.  
Mar 04 11:37:59 mattermost systemd[1]: Started PostgreSQL database server.

Mattermost 데이터베이스 및 데이터베이스 사용자 생성

PostgreSQL은 자동으로 postgres라는 이름의 사용자 및 그룹을 생성했습니다. 우리는 데이터베이스 엔진에 연결하고 데이터베이스 및 이를 접근할 수 있는 사용자를 설정하기 위해 postgres 사용자를 사용합니다.

postgres 사용자로 프롬프트를 시작하십시오:

[root@mattermost ~]# sudo -i -u postgres

프롬프트가 이제 다음과 같이 변경됩니다:

-bash-4.2$

이제 데이터베이스 서버에 연결해 보겠습니다.

-bash-4.2$ psql  
psql (9.2.15)  
Type "help" for help.  
postgres=#

PostgreSQL 프롬프트 내에서 ‘mattermost’라는 이름의 데이터베이스를 생성합니다.

postgres=# CREATE DATABASE mattermost;  
CREATE DATABASE

이제 비밀번호 ‘ DBAss47slX3 ‘로 사용자 ‘ mmuser ‘를 생성합니다.

postgres=# **CREATE USER mmuser WITH PASSWORD '*DBAss47slX3*';  
CREATE ROLE

사용자에게 Mattermost 데이터베이스에 대한 접근 권한을 부여하려면 다음을 입력하십시오:

postgres=# GRANT ALL PRIVILEGES ON DATABASE mattermost to mmuser;  
GRANT  
postgres=#

그런 다음 다음을 입력하여 PostgreSQL 프롬프트를 종료할 수 있습니다:

postgres=# \q  
-bash-4.2$

그리고 postgres 사용자로 시작한 셸을 종료합니다.

-bash-4.2$ exit  
logout  
[root@mattermost ~]#

사용자 이름/비밀번호를 통해 로컬호스트에서 PostgreSQL 데이터베이스에 대한 접근 허용

나중에 우리의 Mattermost 인스턴스는 PostgreSQL 데이터베이스와 통신하고 사용자 이름과 비밀번호로 인증하고 싶어합니다. 이를 허용하기 위해 PostgreSQL 구성을 약간 변경해야 합니다. 파일을 엽니다:

vi /var/lib/pgsql/data/pg_hba.conf

vi 또는 nano와 같은 편집기로 다음 줄을 변경하십시오:

host    all             all             127.0.0.1/32              ident

다음과 같이:

host    all             all             127.0.0.1/32              md5

파일을 저장한 후 PostgreSQL을 재시작합니다.

[root@mattermost ~]# systemctl restart postgresql

이제 이전에 생성한 사용자와 비밀번호로 데이터베이스 서버에 연결하여 올바르게 설정했는지 확인해야 합니다(서버에서 다른 비밀번호를 사용한 경우 해당 비밀번호를 사용하십시오):

[root@mattermost ~]# psql --host=127.0.0.1 --dbname=mattermost --username=mmuser --password  
Password for user mmuser:  
psql (9.2.15)  
Type "help" for help.  
  
mattermost=> \q  
[root@mattermost ~]#

이제 PostgreSQL 서버와 데이터베이스가 Mattermost를 위해 준비되었습니다!

Mattermost 다운로드 및 추출

이제 Github 리포지토리에서 Mattermost 서버의 복사본을 wget을 사용하여 직접 다운로드하겠습니다(이 튜토리얼 작성 시점에서 버전 v2.0.0이 현재 버전이었습니다).

[root@mattermost ~]# cd  
[root@mattermost ~]# wget -q "https://github.com/mattermost/platform/releases/download/v2.0.0/mattermost.tar.gz" -O mattermost.tar.gz

이제 아카이브를 추출하고 추출된 파일을 대상 위치(이 경우 /opt/mattermost)에 배치합니다.

[root@mattermost ~]# tar -xvzf mattermost.tar.gz  
[root@mattermost ~]# mv mattermost /opt

Mattermost 설치하기

Mattermost 데몬을 실행할 사용자 생성

나중에 Mattermost를 데몬으로 실행할 것이므로, 시스템에 ‘ mattermost ‘라는 이름의 새 사용자를 설정합니다. 이 사용자가 나중에 Mattermost 인스턴스를 실행합니다. 다음 명령어를 실행하여 시스템 사용자 및 그룹 ‘ mattermost ‘를 생성하십시오:

[root@mattermost ~]# useradd -r mattermost -U -s /sbin/nologin

Mattermost를 위한 데이터 저장 폴더 생성

Mattermost는 일부 데이터를 저장하고 싶어합니다. 예를 들어 업로드된 파일 등을 폴더에 저장합니다. 따라서 해당 폴더를 생성해야 합니다. 하드 드라이브의 어디에나 있을 수 있지만 ‘ mattermost ‘ 사용자에게 접근 가능해야 합니다. 나는 ‘/opt/mattermost/data’를 사용하기로 선택했습니다. 다음 명령어로 폴더를 생성하십시오:

[root@mattermost ~]# mkdir -p /opt/mattermost/data

Mattermost 디렉토리의 소유자 설정

이제 Mattermost 디렉토리의 그룹과 소유자를 이전에 생성한 사용자 및 그룹으로 설정합니다:

[root@mattermost ~]# chown -R mattermost:mattermost /opt/mattermost  
[root@mattermost ~]# chmod -R g+w /opt/mattermost**

Mattermost의 데이터베이스 연결 구성

Mattermost가 PostgreSQL 데이터베이스에 어떻게 연결해야 하는지 알려주기 위해 구성 파일을 편집해야 합니다:

*/opt/mattermost/config/config.json*

SqlSettings ‘ 섹션을 찾아 우리의 필요에 맞게 변경하십시오:

이전

"SqlSettings": {  
 "DriverName": "mysql",  
 "DataSource": "mmuser:mostest@tcp(dockerhost:3306)/mattermost_test?charset=utf8mb4,utf8",  
 "DataSourceReplicas": [],  
 "MaxIdleConns": 10,  
 "MaxOpenConns": 10,  
 "Trace": false,  
 "AtRestEncryptKey": "7rAh6iwQCkV4cA1Gsg3fgGOXJAQ43QVg"  
 },

이후

"SqlSettings": {  
 "DriverName": "postgres",  
 "DataSource": "postgres://mmuser:[email protected]:5432/mattermost?sslmode=disable&connect_timeout=10",  
 "DataSourceReplicas": [],  
 "MaxIdleConns": 10,  
 "MaxOpenConns": 10,  
 "Trace": false,  
 "AtRestEncryptKey": "7rAh6iwQCkV4cA1Gsg3fgGOXJAQ43QVg"  
 },

AtRestEncryptKey는 그대로 두셔도 됩니다!

Mattermost의 이메일 연결 구성

다시 한 번 구성 파일을 편집해야 합니다.

*/opt/mattermost/config/config.json*

‘EmailSettings’ 섹션을 찾아 우리의 필요에 맞게 변경하십시오:

이전

 "EmailSettings": {  
 "EnableSignUpWithEmail": true,  
 "EnableSignInWithEmail": true,  
 "EnableSignInWithUsername": false,  
 "SendEmailNotifications": false,  
 "RequireEmailVerification": false,  
 "FeedbackName": "",  
 "FeedbackEmail": "",  
 "SMTPUsername": "",  
 "SMTPPassword": "",  
 "SMTPServer": "",  
 "SMTPPort": "",  
 "ConnectionSecurity": "",  
 "InviteSalt": "bjlSR4QqkXFBr7TP4oDzlfZmcNuH9YoS",  
 "PasswordResetSalt": "vZ4DcKyVVRlKHHJpexcuXzojkE5PZ5eL",  
 "SendPushNotifications": false,  
 "PushNotificationServer":  
},  

이후

 "EmailSettings": {  
 "EnableSignUpWithEmail": true,  
 "EnableSignInWithEmail": true,  
 "EnableSignInWithUsername": false,  
 "SendEmailNotifications": false,  
 "RequireEmailVerification": false,  
 "FeedbackName": "",  
 "FeedbackEmail": "",  
 "SMTPUsername": "",  
 "SMTPPassword": "",  
 "SMTPServer": "127.0.0.1",  
 "SMTPPort": "25",  
 "ConnectionSecurity": "",  
 "InviteSalt": "bjlSR4QqkXFBr7TP4oDzlfZmcNuH9YoS",  
 "PasswordResetSalt": "vZ4DcKyVVRlKHHJpexcuXzojkE5PZ5eL",  
 "SendPushNotifications": false,  
 "PushNotificationServer": ""  
},  

우리는 127.0.0.1과 포트 25를 사용합니다. 왜냐하면 우리는 이미 외부로 이메일을 보낼 수 있도록 구성된 로컬 포스트픽스를 사용하고 있기 때문입니다. 설정이 다르다면 올바른 값을 설정해야 합니다!

Mattermost가 내부 인터페이스(127.0.0.1)에서만 수신하도록 구성

기본적으로 Mattermost 서버 인스턴스는 모든 인터페이스에서 포트 8065(:8065)로 수신합니다. 우리는 Nginx 서버를 Mattermost 앞에 두고 싶기 때문에 이 동작을 변경하여 localhost(127.0.0.1:8065)에서만 수신하도록 합니다.

다음 줄을 변경하십시오:

        "ListenAddress": ":8065",

다음과 같이:

        "ListenAddress": "127.0.0.1:8065",

config.json 파일에서.

Mattermost 서버 테스트

이제 명령줄에서 Mattermost 서버가 시작되는지 테스트할 수 있습니다. 반드시 ‘mattermost’ 사용자로 수행하십시오. 실수로 ‘root’로 수행했다면 Mattermost 폴더의 권한을 다시 수정해야 합니다!

[root@mattermost ~]# su - mattermost -s /bin/bash  
  
Last login: Fri Mar 4 12:47:52 CET 2016 on pts/0  
su: warning: cannot change directory to /home/mattermost: No such file or directory  
-bash-4.2$

이제 Mattermost 설치 디렉토리로 이동하십시오:

-bash-4.2$ cd /opt/mattermost/bin/

그리고 명령줄에서 Mattermost를 실행하십시오:

-bash-4.2$ ./platform

출력은 다음과 비슷해야 합니다:

[2016/03/04 13:00:10 CET] [INFO] Loaded system translations for 'en' from '/opt/mattermost/i18n/en.json'  
[2016/03/04 13:00:10 CET] [INFO] Current version is 2.0.0 (5950/Sat Feb 13 15:42:01 UTC 2016/c71c5cef632c7dc68072167c6fe091a60835fa02)  
[2016/03/04 13:00:10 CET] [INFO] Enterprise Enabled: false  
[2016/03/04 13:00:10 CET] [INFO] Current working directory is /opt/mattermost/bin  
[2016/03/04 13:00:10 CET] [INFO] Loaded config file from /opt/mattermost/config/config.json  
[2016/03/04 13:00:10 CET] [INFO] Server is initializing...  
[2016/03/04 13:00:10 CET] [INFO] Pinging sql master database  
[2016/03/04 13:00:10 CET] [INFO] Pinging sql replica-0 database  
[2016/03/04 13:00:10 CET] [DEBG] Deleting any unused pre-release features  
[2016/03/04 13:00:10 CET] [INFO] The database schema has been set to version 2.0.0  
[2016/03/04 13:00:10 CET] [DEBG] Initializing user api routes  
[2016/03/04 13:00:10 CET] [DEBG] Initializing team api routes  
[2016/03/04 13:00:10 CET] [DEBG] Initializing channel api routes  
[2016/03/04 13:00:10 CET] [DEBG] Initializing post api routes  
[2016/03/04 13:00:10 CET] [DEBG] Initializing web socket api routes  
[2016/03/04 13:00:10 CET] [DEBG] Initializing file api routes  
[2016/03/04 13:00:10 CET] [DEBG] Initializing command api routes  
[2016/03/04 13:00:10 CET] [DEBG] Initializing admin api routes  
[2016/03/04 13:00:10 CET] [DEBG] Initializing oauth api routes  
[2016/03/04 13:00:10 CET] [DEBG] Initializing webhook api routes  
[2016/03/04 13:00:10 CET] [DEBG] Initializing preference api routes  
[2016/03/04 13:00:10 CET] [DEBG] Initializing license api routes  
[2016/03/04 13:00:10 CET] [DEBG] Parsing server templates at /opt/mattermost/api/templates/  
[2016/03/04 13:00:10 CET] [DEBG] Initializing web routes  
[2016/03/04 13:00:10 CET] [DEBG] Using static directory at /opt/mattermost/web/static/  
[2016/03/04 13:00:10 CET] [DEBG] Parsing templates at /opt/mattermost/web/templates/  
[2016/03/04 13:00:10 CET] [INFO] Starting Server...  
[2016/03/04 13:00:10 CET] [INFO] Server is listening on 127.0.0.1:8065  
[2016/03/04 13:00:10 CET] [INFO] RateLimiter is enabled  
[2016/03/04 13:00:10 CET] [DEBG] Checking for security update from Mattermost  
[2016/03/04 13:00:10 CET] [EROR] Failed to get security update information from Mattermost.

Ctrl+C로 Mattermost 서버를 중지하고, ‘mattermost’ 사용자로 시작한 셸을 종료합니다:

-bash-4.2$ exit  
logout  
[root@mattermost ~]#

Mattermost 인스턴스가 시작되지 않으면 출력을 주의 깊게 읽으십시오. config.json에서 간단한 쉼표를 잊어버려서 많은 문제를 겪었습니다. 또한 dbuser의 비밀번호에 특수 문자를 사용하지 않도록 하십시오. 특히 ‘@’ 기호는 처음에 저를 혼란스럽게 했습니다!

실수로 위 명령을 ‘ root ‘로 실행했다면 Mattermost 폴더의 권한을 다시 수정해야 합니다. 다음 명령어를 사용하십시오:

[root@mattermost ~]# chown -R mattermost:mattermost /opt/mattermost

모든 것이 잘 진행되었다면 이제 계속 진행할 수 있습니다.

Mattermost를 데몬으로 설정

Mattermost를 데몬으로 설정하려면 파일을 생성하십시오.

*/etc/systemd/system/mattermost.service*

다음 내용을 포함합니다:

[Unit]  
Description=Mattermost  
After=syslog.target network.target  
  
[Service]  
Type=simple  
WorkingDirectory=/opt/mattermost/bin  
User=mattermost  
ExecStart=/opt/mattermost/bin/platform  
PIDFile=/var/spool/mattermost/pid/master.pid  
  
[Install]  
WantedBy=multi-user.target

그런 다음 다음 명령어로 데몬 파일을 다시 로드합니다:

[root@mattermost ~]# systemctl daemon-reload

이제 우리는 이 서비스를 시작/중지/활성화/비활성화할 수 있습니다.

Mattermost 데몬 시작

[root@mattermost ~]# systemctl start mattermost.service

Mattermost 상태 확인

[root@mattermost ~]# systemctl status mattermost.service  
? mattermost.service - Mattermost  
Loaded: loaded (/etc/systemd/system/mattermost.service; disabled; vendor preset: disabled)  
 Active: active (running) since Fri 2016-03-04 14:03:40 CET; 4s ago  
Main PID: 18573 (platform)  
CGroup: /system.slice/mattermost.service  
??18573 /opt/mattermost/bin/platform  
...
...

active (running)인지 확인하십시오!

데몬을 자동 시작으로 활성화

[root@mattermost ~]# systemctl enable mattermost.service  
Created symlink from /etc/systemd/system/multi-user.target.wants/mattermost.service to /etc/systemd/system/mattermost.service.

이제 Mattermost가 127.0.0.1:8065에서 수신 중인지 테스트하기 위해 다음 명령어를 실행합니다:

[root@mattermost config]# curl -s "http://127.0.0.1:8065" | grep -b "2015 Mattermost"

단일 줄이 ‘2015 Mattermost’를 포함해야 합니다.

11343:        © 2015 Mattermost, Inc.

그렇다면 Mattermost 서버 인스턴스가 실행 중임을 확신할 수 있으며 계속 진행할 수 있습니다.

SELinux 관련 권한 문제 수정

CentOS7에서는 SELinux가 기본적으로 활성화되어 있습니다. 우리는 완전히 끌 수 있지만, Mattermost 서버가 실행될 수 있도록 재구성하는 것이 더 좋습니다.

다음 두 명령어를 입력하여 SELinux 권한을 수정하십시오:

[root@mattermost config]# chcon -Rt httpd_sys_content_t /opt/mattermost/  
[root@mattermost config]# setsebool -P httpd_can_network_connect 1

Nginx 서버 설정

우리는 Mattermost 서버 인스턴스 앞에 Nginx 서버를 배치할 것입니다.

주요 이점은:

  • 포트 매핑 :80에서 :8065로
  • 표준 요청 로그
  • 나중에 SSL로 전환할 때 더 많은 옵션

epel-repository 활성화

Nginx는 CentOS의 기본 리포지토리에 없습니다. 따라서 먼저 epel 리포지토리를 활성화해야 합니다. 이는 간단한 작업으로, 다음을 입력하십시오:

[root@mattermost config]# yum -y install epel-release && yum update

Nginx 설치

epel-release를 활성화한 후 다음 명령어로 Nginx를 간단히 설치할 수 있습니다:

[root@mattermost config]# yum -y install nginx

이렇게 하면 Nginx와 모든 종속성이 설치됩니다.

Nginx 구성

Nginx를 구성하는 방법은 여러 가지가 있습니다. 이 튜토리얼에서는 포트 80에서 Mattermost 서버를 호스팅하는 매우 간단한 Nginx 설정을 만드는 방법만 보여줍니다.

Nginx 기본 구성 파일 변경

현재 nginx.conf의 백업을 생성하려면 다음을 실행하십시오:

[root@mattermost config]# cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

그런 다음 /etc/nginx/nginx.conf를 다음 내용으로 교체하십시오:

# For more information on configuration, see:  
# * Official English Documentation: http://nginx.org/en/docs/  
# * Official Russian Documentation: http://nginx.org/ru/docs/  
  
user nginx;  
worker_processes auto;  
error_log /var/log/nginx/error.log;  
pid /run/nginx.pid;  
  
events {  
 worker_connections 1024;  
}  
  
http {  
 log_format main '$remote_addr - $remote_user [$time_local] "$request" '  
 '$status $body_bytes_sent "$http_referer" '  
 "\"$http_user_agent\" "$http_x_forwarded_for"';  
  
 access_log /var/log/nginx/access.log main;  
  
 sendfile on;  
 tcp_nopush on;  
 tcp_nodelay on;  
 keepalive_timeout 65;  
 types_hash_max_size 2048;  
  
 include /etc/nginx/mime.types;  
 default_type application/octet-stream;  
  
 # Load modular configuration files from the /etc/nginx/conf.d directory.  
 # See http://nginx.org/en/docs/ngx_core_module.html#include  
 # for more information.  
 include /etc/nginx/conf.d/*.conf;  
  
 server {  
 server_name mattermost.example.com;  
 location / {  
 client_max_body_size 50M;  
 proxy_set_header Upgrade $http_upgrade;  
 proxy_set_header Connection "upgrade";  
 proxy_set_header Host $http_host;  
 proxy_set_header X-Real-IP $remote_addr;  
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
 proxy_set_header X-Forwarded-Proto $scheme;  
 proxy_set_header X-Frame-Options SAMEORIGIN;  
 proxy_pass http://127.0.0.1:8065;  
 }  
 }  
}

문서에서 언급한 대로 올바른 호스트 이름을 사용하고 있는지 확인하십시오.

구성 파일에 구문 오류가 없는지 확인하려면 다음 명령어를 실행하여 구문을 확인하십시오:

[root@mattermost config]# nginx -t  
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok  
ginx: configuration file /etc/nginx/nginx.conf test is successful

Nginx를 데몬으로 시작하고 활성화

Nginx 시작

[root@mattermost config]# systemctl start nginx

상태 확인

[root@mattermost config]# systemctl status nginx

출력이 최소한 다음과 같은 줄을 포함하는지 확인하십시오:

...  
Active: active (running)...  
...

데몬으로 활성화

[root@mattermost config]# systemctl enable nginx  
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.

모든 것이 잘 진행되었다면 이제 Nginx 뒤에서 실행 중인 Mattermost 설치가 있어야 합니다. 브라우저에서 다음 URL을 열어 확인하십시오:

http://mattermost.example.com

Mattermost 로그인 화면이 나타나야 합니다!

Mattermost 로그인 화면

이제 이메일 주소를 입력하고 계정을 생성하여 Mattermost 설치를 계속 설정할 수 있습니다.

Firewalld

이 튜토리얼에서 firewalld를 비활성화했습니다. firewalld를 다시 활성화하고 싶지만 포트 80을 열어두고 싶다면(현재 Nginx를 통해 Mattermost에 사용 중) 다음을 수행하십시오:

Firewalld 시작 및 재활성화

[root@mattermost config]# systemctl start firewalld  
[root@mattermost config]# systemctl enable firewalld  
Created symlink from /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service to /usr/lib/systemd/system/firewalld.service.  
Created symlink from /etc/systemd/system/basic.target.wants/firewalld.service to /usr/lib/systemd/system/firewalld.service.

방화벽에서 포트 80 열기

[root@mattermost config]# firewall-cmd --zone=public --add-port=80/tcp --permanent  
success  
[root@mattermost config]# firewall-cmd --reload  
success

이제 firewalld가 실행 중일 때도 Mattermost 설치에 접근할 수 있어야 합니다!

요약

이 튜토리얼이 유용하고 작동하기를 바랍니다. 프로덕션 환경에서는 Mattermost 웹사이트에 대한 인증서를 생성/사용하고 Nginx를 통해 https를 활성화해야 합니다. 이는 이 Howto를 약간 수정하여 쉽게 수행할 수 있습니다.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.