nginx 설치
yum 으로 nginx 설치
[root@localhost web]# yum install nginx
부팅 시 자동으로 시작하도록 설정 & 서비스 기동
[root@localhost web]# systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
[root@localhost web]# systemctl restart nginx
방화벽 열기
[root@localhost nginx]# firewall-cmd --zone=public --add-port=80/tcp --permanent
success
[root@localhost nginx]# firewall-cmd --reload
success
기타 설정
나에게 필요했던 설정 포인트 : root 변경 / 포트 변경(7000) / charset 설정 / try_files 설정
[root@localhost nginx]# vi /etc/nginx/nginx.conf
server {
listen 7000 default_server;
listen [::]:7000 default_server;
charset utf-8;
server_name _;
root /opt/web/client;
...
location / {
root /opt/web/client;
index index.html;
try_files $uri /index.html;
}
* try_files $uri /index.html;
요청한 주소의 uri를 무시하고 index.html 파일을 제공
ex) http://localhost/hello => uri : /hello, /opt/web/index.html,
SPA(Single Page Application)의 경우 hello는 index.html을 기반으로 내부 모듈에 의해 결정됨
nginx의 경로에는 hello 없음
참고사이트) https://docs.nginx.com/nginx/admin-guide/web-server/serving-static-content/
selinux 설정
참고사이트) https://www.lesstif.com/pages/viewpage.action?pageId=48988516
https://www.lesstif.com/pages/viewpage.action?pageId=22053128
nginx 기동 시 아래와 같은 에러가 발생하는 경우 selinux 확인
Nov 05 16:34:24 localhost.localdomain nginx[35684]: nginx: [emerg] bind() to 0.0.0.0:7000 failed (13: Permission denied)
selinux 확인
[root@localhost nginx]# sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 31
=> 현재 enforcing모드로 사용 중임을 확인
semanage를 이용해서 설정하기 위해 policycoreutils-python 설치
[root@localhost nginx]# yum install policycoreutils-python
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
...
Complete!
오픈되어 있는 http port 확인
[root@localhost nginx]# semanage port -l | grep http_port_t
http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t tcp 5988
7000번 포트 추가
[root@localhost nginx]# semanage port -m -t http_port_t -p tcp 7000
* 아래와 같은 에러가 발생하는 경우 LANG을 C로 변경한 뒤에 추가
[root@localhost nginx]# semanage port -a -t http_port_t -p tcp 7000
Traceback (most recent call last):
File "/usr/sbin/semanage", line 1074, in
do_parser()
File "/usr/sbin/semanage", line 1061, in do_parser
sys.stderr.write(
"%s: %s\n" % (e.__class__.__name__, e.args[0]))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 12-13: ordinal not in range(128)
[root@localhost nginx]# echo $LANG
ko_KR.UTF-8
[root@localhost nginx]# LANG=C
[root@localhost nginx]# semanage port -a -t http_port_t -p tcp 7000
해당포트가 다른 유형에 이미 추가되어 있어서 실패나는 경우 변경 옵션 사용 (-m)
[root@localhost nginx]# semanage port -a -t http_port_t -p tcp 7000
ValueError: Port tcp/7000 already defined
[root@localhost nginx]# semanage port -l | grep 7000
afs_fs_port_t udp 7000, 7005
gatekeeper_port_t tcp 1721, 7000
'work' 카테고리의 다른 글
MAC OS Dock 이동하기 (0) | 2020.01.29 |
---|---|
[Elasticsearch] 특정 필드 삭제 (0) | 2020.01.28 |
[Flask] CORS - Access to XMLHttpRequest at * from origin * has been blocked by CORS policy (0) | 2020.01.17 |
신뢰할수 있는 루트 인증서 등록 (0) | 2020.01.14 |
[Unix] 파일시스템 관련 명령어 dd (0) | 2019.09.10 |