我知道有很多关于这个话题的帖子,但似乎没有一条适合我。我不确定这是否是因为我必须对两个服务器块都这样做,或者我做错了什么。请帮帮我。
下面是我在Amazon远程服务器上的nginx配置,第一个块表示后端,第二个块表示前端:
limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:60m; # nginx 1.1.9 or higher
limit_req_zone $binary_remote_addr zone=req_limit_per_ip:60m rate=20r/s;
server {
listen 8080;
server_name api.commonskudev.com;
root /var/www/api/public;
gzip on;
server_tokens off;
index index.php;
client_max_body_size 64M;
fastcgi_read_timeout 300;
fastcgi_send_timeout 300;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
send_timeout 300;
try_files $uri $uri/ @rewrite-staging;
location @rewrite-staging {
rewrite ^ /index.php;
}
location ~* \.php$ {
include fastcgi_params;
# fastcgi_param HTTPS on;
fastcgi_pass 127.0.0.1:9000;
}
}
server {
listen 443 default_server ssl;
server_name rightsleeve.commonskudev.com;
# rewrite ^ http://commonskudev.com/maintenance.html;
ssl on;
# ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
# ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;
ssl_certificate /etc/nginx/csku-dev.crt;
ssl_certificate_key /etc/nginx/csku-dev.key;
gzip on;
gzip_proxied any;
client_max_body_size 64M;
fastcgi_read_timeout 300;
fastcgi_send_timeout 300;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
send_timeout 300;
root /var/www/web;
server_tokens off;
index index.php;
error_page 404 /404.php;
rewrite ^/v[0-9]+\.[0-9]+/(.*)$ /$1;
rewrite ^/project/([0-9]+) /project.php?job_number=$1;
if ($http_referer ~* "semalt\.com") {
return 444;
}
location ~* ^(css|js|images|files) {
expires 1y;
add_header Pragma public;
add_header Cache-Control public;
}
location ~* \.(ttf|woff) {
add_header Access-Control-Allow-Origin "*";
}
location ~* \.php$ {
if (!-f $document_root/$fastcgi_script_name) {
return 404;
}
limit_conn conn_limit_per_ip 35;
limit_req zone=req_limit_per_ip burst=35;
include fastcgi_params;
fastcgi_param HTTPS on;
fastcgi_pass 127.0.0.1:9000;
}
location ~* \.(png|jpg|dst|xls) {
try_files $uri $uri/ @nofile;
}
location @nofile {
rewrite ^ /images/404.png;
}
if ($uri ~* ^/([a-zA-Z0-9_\-]+)$) {
rewrite ^/([a-zA-Z0-9_\-]+) /vanity_url.php?mask=$1&$args;
}
location /v1 {
proxy_pass http://api.commonskudev.com:8080;
proxy_set_header Host $host;
}
}
server {
listen 80 default_server;
server_name rightsleeve.commonskudev.com;
rewrite ^(.*) https://$host$1 permanent;
}
您可以使用类似的重写:
location / {
try_files $uri $uri.html $uri/ @extensionless-php;
index index.html index.htm index.php;
}
location ~ \.php$ {
try_files $uri =404;
}
location @extensionless-php {
rewrite ^(.*)$ $1.php last;
}
正如从这个SO答案。
我在nginxweb服务器上,我想删除来自url的扩展。 我目前有以下会议: 如果试图遵循一些类似的案例说明,但似乎没有任何工作与我的conf。 问题是这段代码 在两种情况下运行良好: 客户要求https://mywebsite.com/page.php:好的 客户要求https://mywebsite.com/page:好的 不重写url! 如果客户端试图访问具有文件扩展名的页面,我需要告诉NG
我有一个nginx服务器正在运行,希望删除。我的文件中的php扩展名。我已经尝试了一些方法,但我唯一能做到的就是打破fastcgi过程,下载php文件。服务器在以下配置下运行正常: 谢谢你的努力和时间。
我一直在尝试让nginx在没有. php或. html扩展的情况下工作,我需要一点帮助。提前感谢您的时间! 我尝试了在如何使用NGINX从url中删除. php和. html扩展中找到的解决方案?但是没有效果 这是我当前的nginx配置。这是几个教程的组合,但它是有效的。
我想我的nginx使显示所有网址的清洁。 http://www.mydomain.com/indexhtml.html像http://www.mydomain.com/indexhtml http://www.mydomain.com/indexphp.php像http://www.mydomain.com/indexphp 通过一些研究,我做了第一个案例。它通过以下配置完成: 它适用于index
问题内容: 我希望我的nginx使显示的所有URL干净。 通过一些研究,我使第一个案例奏效。它是通过以下配置完成的: 它适用于将indexhtml.html显示为indexhtml,但.php则没有任何反应。如果我将$uri.html更改为$uri.php,则它不适用于.html和.php。我已经尝试在php位置放置类似内容,但没有成功。 有什么建议吗? 问题答案: 根据我的研究,如果您将/etc
我使用创建容器。 现在我要删除此图像中的卷。 我该怎么办?