nginx代理
Khi webman cần cung cấp truy cập từ bên ngoài, nên thêm một proxy nginx trước webman, điều này có những lợi ích sau.
- Tài nguyên tĩnh được xử lý bởi nginx, cho phép webman tập trung vào việc xử lý logic kinh doanh
- Cho phép nhiều webman chia sẻ cổng 80, 443, phân biệt các trang khác nhau qua tên miền, thực hiện triển khai nhiều trang trên một máy chủ
- Có thể cùng tồn tại kiến trúc php-fpm và webman
- Proxy nginx thực hiện ssl cho https, đơn giản và hiệu quả hơn
- Có thể lọc nghiêm ngặt một số yêu cầu không hợp pháp từ bên ngoài
nginx代理示例
upstream webman {
server 127.0.0.1:8787;
keepalive 10240;
}
server {
server_name tên_miền_trang_web;
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;
}
}
Nói chung, trong cấu hình trên, các nhà phát triển chỉ cần đặt server_name và root thành giá trị thực tế, các trường khác không cần cấu hình.
注意
Đặc biệt lưu ý rằng tùy chọn root phải được cấu hình thành thư mục public dưới webman, không được để trực tiếp thành thư mục webman, nếu không, tất cả các tệp của bạn có thể bị tải xuống từ bên ngoài, bao gồm cả cấu hình cơ sở dữ liệu và các tệp nhạy cảm khác.