저는 nginx를 메인 서버로 설정했고 이를 사용하여 포트 :8080에서 Apache에 대한 역방향 프록시를 사용하고 있습니다. 다음은 apache.example.io에 대한 nginx 구성 파일입니다.
#
# apache.example.io
# Testing apache + nginx
#
server {
listen 80;
root /var/www/apache-example-io;
index index.php index.html index.htm;
server_name apache.example.io www.apache.example.io;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
}
location ~ /\.ht {
deny all;
}
}
그리고 여기 아파치 가상 호스트에 대한 내 파일이 있습니다
<VirtualHost 127.0.0.1:8080>
ServerName apache.example.io
ServerAlias www.apache.example.io
ErrorLog /var/www/apache-example-io/errror.log
DocumentRoot /var/www/apache-example-io/public_html
<Directory "/var/www/apache-example-io/public_html">
# Order allow,deny
# Allow from all
# New directive needed in Apache 2.4.3:
# Require all granted
AllowOverride All
</Directory>
</VirtualHost>
내가 가면 이것들은 잘 작동한다http://apache.example.io/index 하지만 방문하면 403 nginx 오류가 발생합니다.http://apache.example.io/ 이 문제를 해결하는 방법을 잘 모르겠습니다. nginx의 오류 로그는 다음과 같습니다.
2018/03/14 21:25:24 [오류] 24730#0:"/var/www/"의 6개 디렉터리 인덱스는 금지되어 있습니다. 클라이언트: 211., 서버: apache.example.io, 요청: "GET / HTTP/1.1", 호스트: "apache.example.io"
인터넷 검색을 통해 수정을 시도했지만 성과가 없는 것으로 나타났습니다.
답변1
그래서 내가 가지고 있는 특정 도메인을 내 서버로 직접 다시 라우팅했기 때문에 기본 경로를 설정하지 않은 것으로 나타났습니다.
내가 열었다
/etc/nginx/conf.d/default.conf
그리고 다음 내용을 추가했습니다.
server {
listen 80 default_server;
return 404;
}
이렇게 하면 지정되지 않은 와일드카드 도메인 등이 단순히 404로 전달됩니다. 새 도메인을 추가하려는 경우 nginx(NodeJS 애플리케이션)를 사용하여 새 파일을 만들고 해당 IP로 전달하거나 PHP 콘텐츠 제공을 위한 Apache 가상 호스트. :)