
server {
listen 80;
server_name example.com;
# 내부 서비스의 포트로 프록시
location / {
# 연결될 서비스 IP:PORT 정보
proxy_pass http://127.0.0.1:580;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# HTTPS 여부를 Laravel로 전달
proxy_set_header X-Forwarded-Proto $scheme;
}
}
sudo certbot --nginx -d example.com
vi App\Http\Middleware\TrustProxies
namespace App\Http\Middleware;
use Illuminate\Http\Request;
use Fideloper\Proxy\TrustProxies as Middleware;
class TrustProxies extends Middleware
{
/**
* The trusted proxies for this application.
*
* @var array<int, string|null>
*/
protected $proxies = '*'; // 또는 ['127.0.0.1'] (프록시 서버의 IP)
/**
* The headers that should be used to detect proxies.
*
* @var int
*/
protected $headers = Request::HEADER_X_FORWARDED_ALL;
}
위 설정을 하지 않을 경우, 라라벨에서는 리버스프록시 설정시 모든파사드의 URL연결을 Http로 간주하게됨.