nginx代理
Webman dışarıdan erişim sağlamak gerektiğinde, önünde bir nginx proxy kullanılması önerilir. Bunun aşağıdaki gibi faydaları vardır.
- Statik kaynaklar nginx tarafından işlenir, böylece webman iş mantığına odaklanabilir.
- Birden fazla webman'ın 80, 443 portlarını kullanması sağlanır ve farklı siteler alan adları ile ayrılır, böylece tek bir sunucuda birden fazla site dağıtımı yapılabilir.
- php-fpm ile webman mimarisinin bir arada çalışmasını sağlar.
- Nginx, ssl ile https uygulamasını daha basit ve etkili hale getirir.
- Dışarıdan gelen bazı yasadışı isteklere sıkı filtreleme yapabilir.
nginx代理示例
upstream webman {
server 127.0.0.1:8787;
keepalive 10240;
}
server {
server_name 站点域名;
listen 80;
access_log off;
# 注意,这里一定是webman下的public目录,不能是webman根目录
root /your/webman/public;
location ^~ / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Connection "";
if (!-e $request_filename){
proxy_pass http://webman;
}
}
# 拒绝访问所有以 .php 结尾的文件
location ~ \.php$ {
return 404;
}
# 允许访问 .well-known 目录
location ~ ^/\.well-known/ {
allow all;
}
# 拒绝访问所有以 . 开头的文件或目录
location ~ /\. {
return 404;
}
}
Genel olarak, yukarıdaki yapılandırmada geliştiricilerin yalnızca server_name ve root değerlerini gerçek değerlerle değiştirmesi yeterlidir, diğer alanların yapılandırılmasına gerek yoktur.
注意
Özellikle dikkat edilmesi gereken husus, root seçeneğinin mutlaka webman altındaki public dizinine ayarlanmasıdır, doğrudan webman dizini olarak ayarlamaktan kaçınılmalıdır. Aksi takdirde, tüm dosyalarınız dışarıdan indirilebilir ve erişilebilir hale gelebilir; bu, veritabanı yapılandırmaları gibi hassas dosyaları da kapsar.