2024.03.05 - [시행착오] - [laravel + php-fpm + nginx + docker] 2. 재앙 시작
여기서부터 나는 엄청나게 다양한 시도를 셀수 없이 했기 때문에
어떻게 이 문제를 해결했는지에 대한 순서를 정리 하기가 어렵다.
그래서 정리 없이 작성이 될 수 도 있다.
1. 방화벽.
내가 지금 현재 운영하고 있는 서버는. 공유기로 인해 여러대가 물려있다.
다시말해. 하나의 ip 주소로 공유기를 통해 2대 이상을 운영하고 있다는 소리다.
그래서 나는 포트포워딩을 진행 해야 했다.
(ip 한대에 직접 연결한 서버라면 굳이 안해도 된다.)
내가 운영하는 서버를 A로 칭하고. A에게 필요한 port들을 정리해서 포워딩 진행했다.
※ 포트포워딩은 공유기 설정화면에서 진행한다.
- nginx를 위한 웹서버 port : 8080
laravel API를 위한 port : 8001
2번째 laravel API에 대한 8001 포트포워딩도 처음에 진행을 했었다. 근데 지금 이 글을 작성할 때, 지워봤는데 필요없는 설정이였다.
당시 생각으로는 laravel 서버가 가동되고, 8001 포트로 열었으니 8001포트도 열려있어야 된다 생각을 했다.
근데 웹서버만 열려있으면 되는 것 같다.
공유기 방화벽을 진행 하였고, 내부 방화벽도 설정 해줬다.
sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
sudo firewall-cmd --reload
그리고 나서 nginx가 외부로부터 접속이 가능한지 테스트 진행 해봤는데.
얼추 이런 게 나오면 작동은 됐다라고 판단 하면 될라나...
아무튼 포트포워딩을 진행 했다.
근데 자꾸 이런 에러가 나왔다.
- 127.0.0.1:34812 Invalid request (Malformed HTTP request).
- upstream prematurely closed connection while reading response header from upstream,
구글링에도 잘 없고 미쳤었다. 이때.
아무쪼록 결과는 php-fpm이 필요했었던 것이었다.
그래서 ngnix에 php-fpm에 대한 설정을 해야 했다.
nginx의 설정파일 위치에서 다음과 같이 conf 파일을 만들어 주었다.
※ 각 서버마다 또 설치마다 경로가 다를 수 있으니. 잘 찾아보시길.
pwd - /etc/nginx/conf.d
vi /etc/nginx/conf.d/theme-back.conf
내 프로젝트 이름이 theme-back 이기 때문에 theme-back.conf로 지정해줬다.
server {
listen 8080 default_server; # 내 nginx 서버 port는 8080 이므로 8080으로 설정.
server_name _;
root /home/fiq/www/theme-back/theme-back/public; # 나의 laravel 디렉토리 위치 마지막에 /public을 해야 됨.
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php$is_args$args;
send_timeout 600;
}
location /_health {
return 200 'OK';
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm.sock; # 이부분이 힘듬. php-fpm.sock을 찾아야한다.
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
include fastcgi_params;
# 504 Gateway Time-out
fastcgi_read_timeout 300;
# performance boosts for PHP
sendfile on;
tcp_nopush off;
keepalive_requests 0;
# proxy buffers - no 502 errors!
# proxy_buffer_size 128k;
# proxy_buffers 4 256k;
# proxy_busy_buffers_size 256k;
# fastcgi buffers - no 502 errors!
fastcgi_buffering on;
fastcgi_buffer_size 16k;
fastcgi_buffers 16 16k;
}
error_log /var/log/nginx/api_error.log;
access_log /var/log/nginx/api_access.log;
}
위 처럼 진행을 해서 nginx와 php-fpm 를 연결 해줘야 한다.
다음은 php-fpm.sock을 찾아보자.
'시행착오 > laravel' 카테고리의 다른 글
[laravel + php-fpm + nginx] systemctl restart php-fpm 오류 (0) | 2024.05.21 |
---|---|
[laravel + php-fpm + nginx + docker] 4. php-fpm.sock을 찾아서.. (0) | 2024.03.05 |
[laravel + php-fpm + nginx + docker] 2. 재앙 시작 (1) | 2024.03.05 |
[laravel + php-fpm + nginx + docker] 1. 서버 배포. (0) | 2024.03.05 |