目前有三个环境和项目
主项目 环境 nginx tp5.test.com:7888
项目一 mamp apache 项目地址 xxxx.com:8888/shop/goods/test
项目二 本地mac自带的apache 项目地址 127.0.0.1/you.php 项目目录/Library/WebServer/Documents/
配置好环境
在自己本地的tp5项目下
访问http://tp5.test.com:7888/static/images/index.jpg
另一个项目下引用这个图片
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<img src="http://tp5.test.com:7888/static/images/index.jpg">
</body>
</html>
测试 可以访问
在apache下
都能访问
只允许tp5.test.com:7888能访问
那么修改nginx配置,将xxx.com:7888虚拟站点加入白名单
那么修改配置为
发现访问 依然可以访问到图片,并未配置成功
后来经过排查得知自己用的tp5.test.com:7888是配置的虚拟站点 所以要在虚拟站点的位置来配置
location ~* \.(jpg|png|gif)$ {
root /home/resources;
valid_referers server_names;
if ($invalid_referer){
rewrite ^/ http://127.0.0.1/error.png;
}
}
允许xxx.com:8888可以访问图片
修改配置为
location ~* \.(jpg|png|gif)$ {
root /home/resources;
valid_referers server_names xxx.com:8888;
if ($invalid_referer){
rewrite ^/ http://127.0.0.1/error.png;
}
}
nginx 在mamp 下的配置如下
MAMP_ngx_http_image_filter_module_MAMPload_module "modules/ngx_http_image_filter_module.so";
MAMP_ngx_http_perl_module_MAMPload_module "modules/ngx_http_perl_module.so";
MAMP_ngx_http_xslt_filter_module_MAMPload_module "modules/ngx_http_xslt_filter_module.so";
MAMP_ngx_mail_module_MAMPload_module "modules/ngx_mail_module.so";
MAMP_ngx_stream_module_MAMPload_module "modules/ngx_stream_module.so";
MAMP_User_Directive_MAMPuser MAMP_User_MAMP MAMP_Group_MAMP;
worker_processes auto;
events {
worker_connections 1024;
}
http {
include /Applications/MAMP/conf/nginx/mime.types;
default_type text/html;
gzip on;
gzip_types text/css text/x-component application/x-javascript application/javascript text/javascript text/x-js text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
sendfile on;
keepalive_timeout 65;
# access_log "/Applications/MAMP/logs/nginx_access.log";
error_log "MAMP_NginxErrorLog_MAMP";
MAMP_Bonjour_SubsFilter_IF_MAMP
subs_filter_types text/html text/xml application/javascript;
MAMP_Bonjour_SubsFilter_END_MAMP
server {
listen MAMP_Port_MAMP default_server;
root "MAMP_Localhost_DocumentRoot_MAMP";
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
index MAMP_Localhost_DirectoryIndex_MAMP;
}
location ~* /MAMP[^-]*(.*)$ {
root "/Library/Application Support/appsolute/MAMP PRO";
index index.php;
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/Applications/MAMP/Library/logs/fastcgi/nginxFastCGI_phpMAMP_PhpLocalhost_MAMP.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /Applications/MAMP/conf/nginx/fastcgi_params;
}
}
location ~* /phpMyAdmin(.*)$ {
root "/Library/Application Support/appsolute/MAMP PRO";
index index.php;
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/Applications/MAMP/Library/logs/fastcgi/nginxFastCGI_phpMAMP_PhpLocalhost_MAMP.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /Applications/MAMP/conf/nginx/fastcgi_params;
}
}
location ~* /phpPgAdmin(.*)$ {
root /Applications/MAMP/bin;
index index.php;
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/Applications/MAMP/Library/logs/fastcgi/nginxFastCGI_phpMAMP_PhpLocalhost_MAMP.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /Applications/MAMP/conf/nginx/fastcgi_params;
}
}
location ~* /phpLiteAdmin(.*)$ {
root /Applications/MAMP/bin;
index index.php;
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/Applications/MAMP/Library/logs/fastcgi/nginxFastCGI_phpMAMP_PhpLocalhost_MAMP.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /Applications/MAMP/conf/nginx/fastcgi_params;
}
}
location ~* /SQLiteManager(.*)$ {
root /Applications/MAMP/bin;
index index.php;
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/Applications/MAMP/Library/logs/fastcgi/nginxFastCGI_phpMAMP_PhpLocalhost_MAMP.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /Applications/MAMP/conf/nginx/fastcgi_params;
}
}
location ~* /adminer(.*)$ {
root /Applications/MAMP/bin;
index adminer.php;
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/Applications/MAMP/Library/logs/fastcgi/nginxFastCGI_phpMAMP_PhpLocalhost_MAMP.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /Applications/MAMP/conf/nginx/fastcgi_params;
}
}
location /icons {
alias /Applications/MAMP/Library/icons;
autoindex on;
}
location /favicon.ico {
alias /Applications/MAMP/bin/favicon.ico;
# log_not_found off;
# access_log off;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/Applications/MAMP/Library/logs/fastcgi/nginxFastCGI_phpMAMP_PhpLocalhost_MAMP.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /Applications/MAMP/conf/nginx/fastcgi_params;
}
location ~ /\. {
deny all;
}
#location ~* \.(gif|jpg|png|pdf)$ {
# expires 30d;
# }
# location = /robots.txt {
# allow all;
# log_not_found off;
# access_log off;
# }
# location ~* \.(txt|log)$ {
# allow 127.0.0.1;
# deny all;
# }
# location ~ \..*/.*\.php$ {
# return 403;
# }
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
}
MAMP_VirtualHost_iteration_begin_MAMP
server {
listen MAMP_IP_Port_MAMP;
server_name MAMP_VirtualHost_ServerName_MAMP;
MAMP_VirtualHost_ServerAliases_MAMP
root "MAMP_VirtualHost_DocumentRoot_MAMP";
location / {
try_files MAMP_Try_Files_MAMP;
if (!-e $request_filename) {
rewrite ^(.*)$ /app.php?s=/$1 last;
break;
}
index MAMP_VirtualHost_DirectoryIndex_MAMP;
autoindex MAMP_VirtualHost_AutoIndex_MAMP;
MAMP_VirtualHost_Allow_MAMP
MAMP_VirtualHost_Deny_MAMP
MAMP_LocationCustom_MAMP
}
location ~* \.(jpg|png|gif)$ {
root /home/resources;
valid_referers server_names xxxp.com:8888;
if ($invalid_referer){
rewrite ^/ http://127.0.0.1/error.png;
}
}
MAMP_Nginx_ReverseProxy_IF_MAMP
# proxy the PHP scripts to Apache
location ~ \.php$ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://MAMP_Apache_IP_MAMP:MAMP_Apache_Port_MAMP;
}
MAMP_Nginx_ReverseProxy_ELSE_MAMP
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/Applications/MAMP/Library/logs/fastcgi/nginxFastCGI_phpMAMP_PhpHost_MAMP.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /Applications/MAMP/conf/nginx/fastcgi_params;
}
MAMP_Nginx_ReverseProxy_END_MAMP
MAMP_Bonjour_Substitution_IF_MAMP
proxy_set_header Accept-Encoding "";
subs_filter MAMP_Bonjour_Hostname_MAMP MAMP_Bonjour_DNS_Name_MAMP gi;
MAMP_Bonjour_Substitution_END_MAMP
MAMP_VirtualHost_AdditionalCustom_MAMP
}
MAMP_VirtualHost_iteration_end_MAMP
MAMP_SSLVirtualHost_iteration_begin_MAMP
server {
listen MAMP_SSL_IP_Port_MAMP;
server_name MAMP_SSLVirtualHost_ServerName_MAMP;
root "MAMP_SSLVirtualHost_DocumentRoot_MAMP";
# access_log /Applications/MAMP/logs/nginx_ssl_access.log;
error_log /Applications/MAMP/logs/nginx_ssl_error.log;
ssl on;
ssl_certificate "MAMP_SSLVirtualHost_Certificate_MAMP";
ssl_certificate_key "MAMP_SSLVirtualHost_CertificateKey_MAMP";
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_session_tickets off;
MAMP_SSLVirtualHost_OnlyAllowTLS_MAMPssl_protocols TLSv1 TLSv1.1 TLSv1.2;
MAMP_SSLVirtualHost_OnlyAllowTLS_MAMPssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
MAMP_SSLVirtualHost_OnlyAllowTLS_MAMPssl_prefer_server_ciphers on;
location / {
try_files MAMP_Try_Files_MAMP;
index MAMP_SSLVirtualHost_DirectoryIndex_MAMP;
autoindex MAMP_VirtualHost_AutoIndex_MAMP;
MAMP_VirtualHost_Allow_MAMP
MAMP_VirtualHost_Deny_MAMP
}
MAMP_Nginx_ReverseProxy_IF_MAMP
# proxy PHP scripts to Apache
location ~ \.php$ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://MAMP_Apache_IP_MAMP:MAMP_Apache_Port_MAMP;
}
MAMP_Nginx_ReverseProxy_ELSE_MAMP
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/Applications/MAMP/Library/logs/fastcgi/nginxFastCGI_phpMAMP_PhpHost_MAMP.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /Applications/MAMP/conf/nginx/fastcgi_params;
}
MAMP_Nginx_ReverseProxy_END_MAMP
MAMP_Bonjour_Substitution_IF_MAMP
proxy_set_header Accept-Encoding "";
subs_filter MAMP_Bonjour_Hostname_MAMP MAMP_Bonjour_DNS_Name_MAMP gi;
MAMP_Bonjour_Substitution_END_MAMP
MAMP_VirtualHost_AdditionalCustom_MAMP
}
MAMP_SSLVirtualHost_iteration_end_MAMP
}
# DONT REMOVE: MAMP PRO nginx.conf template compatibility version: 9