반응형

안녕하세요 가야태자 @talkit 입니다. 

리눅스/Linux Slack 대체 프로그램 Mattermost를 설치해보자. How to install Mattermost on Ubuntu Linux https://talkit.tistory.com/695

위글에 이어서 ^^ 지금 현재 저는 성공 했습니다. 위에 보이시겠지만, ^^

https 모드로 동작하고 있습니다. 

지금 현재 조금 더 공부해야 할 것은 NGINX 프록시로 설정하는 부분입니다. 이부분은 또 성공 하면 글을 쓰도록 하고 제가 성공한 부분이 mattermost를 직접 https로 운영하는 것을 알려 드리겠습니다. 

1. 우선, 도메인을 하나 사셔야 합니다. 

요즘 저는 https://www.hosting.kr 에서 도메인을 구매하고 있습니다. 저렴 합니다. ^^

2. certbot라는 프로그램을 깔아야 합니다. 

무료 SSL 인증서인 Let's Encrypt 스크립트를 이용해서 진행할 계획이어서 certbot을 설치 해야 합니다. 

sudo apt update
sudo apt install certbot python3-certbot-nginx

NGINX는 안까셔도 될 것 같지만, ^^

저는 궁극적으로 nginx위에 https를 올리고 mattermost를 운영하고 싶어서 일단 설치 했습니다. 

3. http로 성공한 mattermost에 접속 하셔서 다음과 같이 설정 합니다. 

System Console에 접속 하셔야 하구요.

ENVIRONMENT > Web Server 항목의 내용은 변경 해야 합니다. 

1) Site URL을 https://구매한도메인:443 으로 변경하시고

2) Listen Address를 :443으로 변경 하십시오.

3) Fordward port 80 to 443 을 true로

4) Connection Security를 TLS로 변경 하십시오.

5) Use Let's Encrypt를 true로 변경하십시오.

일단 이렇게 하시면 끝입니다. 

그리고 맨 아래에 Save 버튼을 클릭 합니다. 

sudo setcap cap_net_bind_service=+ep /opt/mattermost/bin/mattermost

위 명령어를 이용해서 mattermost가 1000번대 이하의 포트에서 실행 되도록 바꾸줍니다. 

저는 이것 때문에 한동한 고생했습니다. 고생하지 마시기를 저도, 매뉴얼을 제대로 안읽는 스타일이라서 ^^

sudo systemctl restart mattermost

mattermost를 재시작 또는 시작 해주시면 됩니다. 

그러면, 설치가 잘 될 것으로 생각 됩니다. 

이게 NGINX하고 충돌이 일어 납니다. 이건 아직 해결을 못했습니다. 

NGINX가 깔려 있지 않는 곳에서 운영 가능 합니다. 

일단 NGINX를 안쓰시면 ^^ 

sudo systemctl stop nginx
sudo systemctl disable nginx

위명령어로 nginx를 끄고, 자동실행이 안되게 하십시오.

Mattermost만 운영할때이고, 다른 사이트와 같이 운영해야하면 일단 저는 http로 사용하시는 것을 권해 드려야겠네요.

NGINX 관련 설정이 성공하면 다시 글을 작성하겠습니다. 

감사합니다. 

 

반응형
반응형

안녕하세요 가야태자 @talkit 입니다.

리눅스/Linux 우분투에 NGINX Web server 설치하기 How to install NGINX Web server on Ubuntu Linux. https://talkit.tistory.com/700

앗 지난 번 글이 블로그에 700번째 글이었네요 ^^

요즘 블로깅을 열심히하고 있습니다.

NGINX 설정파일 위치

/etc/nginx/sites-available

우분투의 경우 nginx의 설정파일을 저기 들어 있습니다.

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

기본적으로 default라는 파일이 설치하면 존재 합니다.

그래서 저도 한번 열어 보겠습니다.

# Default server configuration
#
server {
        listen 80 default_server;
        listen [::]:80 default_server;

        root /var/www/html;

        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;

        server_name _;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }
}

일단 SSL이라든지 여러가지 설정이 주석으로 정의 되어 있습니다만, 주석부분은 대부분 지워 버리면 실제로 위와 같은 결과만 나옵니다. ^^

default 서버는 80번 포트에서 대기 중이구요. /var/www/html 폴더에 html 파일이 있습니다.

그리고 시작 파일은 index.html, index.htm, index.nginx-debian.html 이 시작 파일 입니다.

default를 없애고, example를 만들어 보도록 하겠습니다. 저는 앞으로 여기서 mattermost를 만들어야겠지요 ^^ 아닌가 mattermost는 나중에 ^^

sudo mkdir /var/www/example

example 디렉토리를 웹 홈에 만들구요.

sudo vi /var/www/example/index.html

index.html 파일을 생성 합니다. 

리눅스/Linux vi/vim NIX에서 가장 유명한 텍스트 편집기 - 글쓰기. One of the best text editor on NIX fields. - Writing https://talkit.tistory.com/699

위 글을 보시면 vi로 글쓰는 방법이 나와 있습니다. ^^ 

<html>
	<body>
	NGINX 테스트 웹페이지에 오신 것을 환영합니다.
	<body>
</html>

위 코드를 index.html에 붙여 넣으십시오. 저장하고 나오시면 됩니다. 

:wq 안 잃어버리셨죠 ^^

sudo vi /etc/nginx/sites-available/example.com

example.com 블락을 만들기위해서 파일을 하나 만들겠습니다. 

server {
listen 80;
root /var/www/example;
index index.html;
server_name 127.0.0.1;
}

위 내용을 붙여 넣으시고, 저장 합니다. 

sudo rm -f /etc/nginx/sites-enabled/default

sites-enabled에서 default 링크를 삭제 합니다. 

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled

음 example.com을 sites-enabled 폴더에 링크를 걸어 줍니다. 

sudo systemctl restart nginx

nginx를 재시작해 줍니다. 

sudo systemctl 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 Sun 2023-01-01 00:30:21 PST; 10s ago
       Docs: man:nginx(8)
    Process: 3211 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 3212 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 3213 (nginx)
      Tasks: 17 (limit: 19071)
     Memory: 13.6M
     CGroup: /system.slice/nginx.service
             ├─3213 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ├─3214 nginx: worker process
             ├─3215 nginx: worker process
             ├─3216 nginx: worker process
             ├─3217 nginx: worker process
             ├─3218 nginx: worker process
             ├─3219 nginx: worker process
             ├─3220 nginx: worker process
             ├─3221 nginx: worker process
             ├─3222 nginx: worker process
             ├─3223 nginx: worker process
             ├─3224 nginx: worker process
             ├─3225 nginx: worker process
             ├─3226 nginx: worker process
             ├─3227 nginx: worker process
             ├─3228 nginx: worker process
             └─3229 nginx: worker process

Jan 01 00:30:21 ubuntu systemd[1]: Starting A high performance web server and a reverse proxy server...
Jan 01 00:30:21 ubuntu systemd[1]: Started A high performance web server and a reverse proxy server.

재시작 했으면 상태도 한번 확인해주시고 ^^

브라우져에서 확인을 하면

저같은 경우는 위와 같이 나옵니다. ^^

잘 만들어서 잘 구동이 되고 있네요 ^^

오늘은 여기까지 하겠습니다. 제 목표는 저기 Not secure 없애는 거여서  다음글 또는 그 다음 글에서 아마 가능 할 것으로 생각 됩니다. ^^

감사합니다.

 

반응형
반응형

안녕하세요. 가야태자 @talkit 입니다.

궁극적으로 하려고 하는 것은 Mattermost라는 Slack 대체 프로그램에 TLS 기반의 SSL을 도입하게 하는 것입니다.

그전에 NGINX를 잘 몰라서 설치해보고, SSL을 어떻게 구성하는지를 좀 알아보고 다시 Mattermost를 손을 대야 할 것 같습니다.

웹서버는?

웹서버는 간단하게 정의하자면 웹을 서비스하는 서버 입니다. 저희가 http 또는 https로 시작하는 주소를 입력하면 브라우져에서 여러 화면들을 확인하게 되는데, 그 주소에 웹서버가 있기 때문입니다.

그런데, 저는 Apache Web Server 주로 사용하는 사람입니다. 하지만, 그렇다고, 블로그에 아파치를 설치하는 방법을 적은 적이 없네요 ^^ 앞으로는 적도록 하겠습니다.

https://httpd.apache.org/

아파치 웹서버는 위 URL에서 정보를 확인하고 다운로드 할 수 있습니다.

물론 Ubuntu에서 기본 패키지로 제공하기 때문에 금방 설치할 수 있습니다.

이번에 적으려고 하는 NGINX도 웹서버의 일종입니다. Apache 보다는 좀 더 뒤에 나온 제품이어서 좀 더 신선한 기능들을 제공하긴 하지만, 서로 경쟁 관계여서 요즘은 NGINX가 좀 더 점유율을 가져가고 있다고 알고 있습니다. ^^ 서로를 보고 보완을 하고 있는 것으로 알고 있습니다.

W3Techs - extensive and reliable web technology surveys 출처 :&nbsp;https://w3techs.com/

위에서 보시다 싶이 NGIX가 1.1% 정도 우위를 점유하고 있습니다.

NGINX의 공식 웹사이트는 https://nginx.org/en/ 에서 확인할 수 있습니다.

우리는 우분투 리눅스에 오늘 NGINX를 설치할 것입니다. ^^

우분투 리눅스 설치.

리눅스/Linux VMWARE에 우분투/Ubuntu 20.04 설치하기/Install https://talkit.tistory.com/677

리눅스/Linux VMWARE에 우분투/Ubuntu 18.04 설치하기/Install https://talkit.tistory.com/637

위두 글을 이용해서 VMWARE에 리눅스를 설치 하십시오.

Putty 로 리눅스에 접속하기

[무료소프트웨어] 무료 보안쉘 클라이언트 PuTTY 최신 버전 다운로드 및 설치하기. How to Install the latest version PuTTY that is free Secure Shell Client. https://talkit.tistory.com/674

리눅스/Linux 오라클 VPS에 접속해보자. How to connect to free VPS on Oracle Cloud. https://talkit.tistory.com/673

리눅스/Linux SSH를 통해서 VMWARE Linux에 접속해보자. How to connect to Linux on VMWARE via SSH https://talkit.tistory.com/688

리눅스에 접속하시는 방법은 위 글들에서 설명해 두었습니다. 참고해서 접속하시면 될 것 같습니다.

리눅스에 NGINX 설치

저는 계속 Putty러 접속을 합니다.

여러분들이 VMWARE에 우분투를 설치하셨거나, 우분투 리눅스 VPS를 하나 가지고 계시거나 하다는 전제 하에서 이 글은 시작 하고 있습니다.

리눅스에 접속하기

서버에 우선 접속하십시오.

Putty를 여시고 저기 주소에 입력하시거나 아래에 있는 저장된 세션에서 선택해서 접속 하시면 됩니다.

login as: talkit
talkit@192.168.0.27's password:
Welcome to Ubuntu 20.04.5 LTS (GNU/Linux 5.15.0-56-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

0 updates can be applied immediately.

Your Hardware Enablement Stack (HWE) is supported until April 2025.
Last login: Thu Dec 29 23:51:08 2022 from 192.168.0.3
talkit@ubuntu:~$ ps -ef | grep nginx
talkit      2021    2007  0 23:50 pts/0    00:00:00 grep --color=auto nginx
talkit@ubuntu:~$

저는 잘 접속이 되었구요.

접속해서 ps로 nginx가 없는 것 까지 확인 했습니다. 제가 Mattermost를 설치하면서 nginx도 설치 했거든요 ^^

nginx 설치 이전으로 VMWARE파일을 돌려 놨습니다.

NGINX 설치하기

그 다음 과정을 계속 진행 하겠습니다.

sudo apt update

위 명령어는 옵셔널 이긴 하지만 한번씩 해주는 것이 좋습니다.

sudo apt install nginx

NGINX 설치는 정말 간단합니다. ^^

 sudo apt install nginx
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  libnginx-mod-http-image-filter libnginx-mod-http-xslt-filter libnginx-mod-mail libnginx-mod-stream
  nginx-common nginx-core
Suggested packages:
  fcgiwrap nginx-doc
The following NEW packages will be installed:
  libnginx-mod-http-image-filter libnginx-mod-http-xslt-filter libnginx-mod-mail libnginx-mod-stream
  nginx nginx-common nginx-core
0 upgraded, 7 newly installed, 0 to remove and 0 not upgraded.
Need to get 605 kB of archives.
After this operation, 2,141 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 nginx-common all 1.18.0-0ubuntu1.4                                                                                                                                                                                                                        [37.7 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 libnginx-mod-http-image-filter amd6                                                                                                                                                                                                                       4 1.18.0-0ubuntu1.4 [14.8 kB]
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 libnginx-mod-http-xslt-filter amd64                                                                                                                                                                                                                        1.18.0-0ubuntu1.4 [13.0 kB]
Get:4 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 libnginx-mod-mail amd64 1.18.0-0ubu                                                                                                                                                                                                                       ntu1.4 [42.9 kB]
Get:5 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 libnginx-mod-stream amd64 1.18.0-0u                                                                                                                                                                                                                       buntu1.4 [67.4 kB]
Get:6 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 nginx-core amd64 1.18.0-0ubuntu1.4                                                                                                                                                                                                                        [425 kB]
Get:7 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 nginx all 1.18.0-0ubuntu1.4 [3,620                                                                                                                                                                                                                        B]
Fetched 605 kB in 2s (293 kB/s)
Preconfiguring packages ...
Selecting previously unselected package nginx-common.
(Reading database ... 160070 files and directories currently installed.)
Preparing to unpack .../0-nginx-common_1.18.0-0ubuntu1.4_all.deb ...
Unpacking nginx-common (1.18.0-0ubuntu1.4) ...
Selecting previously unselected package libnginx-mod-http-image-filter.
Preparing to unpack .../1-libnginx-mod-http-image-filter_1.18.0-0ubuntu1.4_amd64.deb ...
Unpacking libnginx-mod-http-image-filter (1.18.0-0ubuntu1.4) ...
Selecting previously unselected package libnginx-mod-http-xslt-filter.
Preparing to unpack .../2-libnginx-mod-http-xslt-filter_1.18.0-0ubuntu1.4_amd64.deb ...
Unpacking libnginx-mod-http-xslt-filter (1.18.0-0ubuntu1.4) ...
Selecting previously unselected package libnginx-mod-mail.
Preparing to unpack .../3-libnginx-mod-mail_1.18.0-0ubuntu1.4_amd64.deb ...
Unpacking libnginx-mod-mail (1.18.0-0ubuntu1.4) ...
Selecting previously unselected package libnginx-mod-stream.
Preparing to unpack .../4-libnginx-mod-stream_1.18.0-0ubuntu1.4_amd64.deb ...
Unpacking libnginx-mod-stream (1.18.0-0ubuntu1.4) ...
Selecting previously unselected package nginx-core.
Preparing to unpack .../5-nginx-core_1.18.0-0ubuntu1.4_amd64.deb ...
Unpacking nginx-core (1.18.0-0ubuntu1.4) ...
Selecting previously unselected package nginx.
Preparing to unpack .../6-nginx_1.18.0-0ubuntu1.4_all.deb ...
Unpacking nginx (1.18.0-0ubuntu1.4) ...
Setting up nginx-common (1.18.0-0ubuntu1.4) ...
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /lib/systemd/system/nginx.                                                                                                                                                                                                                       service.
Setting up libnginx-mod-http-xslt-filter (1.18.0-0ubuntu1.4) ...
Setting up libnginx-mod-mail (1.18.0-0ubuntu1.4) ...
Setting up libnginx-mod-http-image-filter (1.18.0-0ubuntu1.4) ...
Setting up libnginx-mod-stream (1.18.0-0ubuntu1.4) ...
Setting up nginx-core (1.18.0-0ubuntu1.4) ...
Setting up nginx (1.18.0-0ubuntu1.4) ...
Processing triggers for systemd (245.4-4ubuntu3.19) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for ufw (0.36-6ubuntu1) ...
talkit@ubuntu:~$

중간에 Y 한번만 눌러 주시면 됩니다.

 sudo systemctl 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 2022-12-31 23:56:28 PST; 51s ago
       Docs: man:nginx(8)
   Main PID: 2701 (nginx)
      Tasks: 17 (limit: 19071)
     Memory: 13.8M
     CGroup: /system.slice/nginx.service
             ├─2701 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ├─2702 nginx: worker process
             ├─2703 nginx: worker process
             ├─2704 nginx: worker process
             ├─2705 nginx: worker process
             ├─2706 nginx: worker process
             ├─2707 nginx: worker process
             ├─2708 nginx: worker process
             ├─2709 nginx: worker process
             ├─2710 nginx: worker process
             ├─2711 nginx: worker process
             ├─2712 nginx: worker process
             ├─2713 nginx: worker process
             ├─2714 nginx: worker process
             ├─2715 nginx: worker process
             ├─2716 nginx: worker process
             └─2717 nginx: worker process

Dec 31 23:56:28 ubuntu systemd[1]: Starting A high performance web server and a reverse proxy server...
Dec 31 23:56:28 ubuntu systemd[1]: Started A high performance web server and a reverse proxy server.

리눅스 서비스를 확인하면 이미 nginx가 활성화 되어 있는 상태 입니다. ^^

방화벽 설정 - 생략

방화벽 관련 설정도 있지만 방화벽 설정은 안해서 ^^

웹서버에 브라우져로 접속해 보기

웹서버가 켜져 있는걸 확인 했으니까 브라우져로 접속을 해보겠습니다.

Welcome to nginx!
If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

잘 설치 되었다고 뜨네요 ^^

기본적으로 여기까지하면 웹서버가 설치 되었습니다. 

다음에는 웹서버의 웹 문서들을 어디에 놓을 건지에 대해서 말씀 드리겠습니다. 

감사합니다. 

 

 

반응형

+ Recent posts