Articles of nginx

AWS S3,CloudFront,Web字体CORS错误

我刚从我以前的CDN移动到我的两个网站的CloudFront。 第一个工作正常,但我用DigitalOcean相同的快照创build第二个网站,在这里我越来越 从原始的“ http://www.example.com ”访问“ http://CLOUDFRONT_HOSTNAME.cloudfront.net/wp-content/themes/Newspaper/images/icons/newspaper.woff?14 ”中的字体已被CORS策略:请求的资源上不存在“Access-Control-Allow-Origin”标头。 Origin'http: //www.example.com '因此不被允许访问。 我尝试了所有可用的在线解决scheme,比如在nginx中添加一个头文件。 location ~* \.(ttf|ttc|otf|eot|woff|svg|font.css)$ { add_header Access-Control-Allow-Origin *; } 然后在S3中更新隐私 <CORSConfiguration> <CORSRule> <AllowedOrigin>*</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> <MaxAgeSeconds>3000</MaxAgeSeconds> <AllowedHeader>Authorization</AllowedHeader> </CORSRule> </CORSConfiguration> 大多数的解决scheme都在不同的站点上,包括其他serverfault和stackoverflow解决scheme。 我也使CloudFront中的字体文件无效,但没有运气:( 有人可以指导我可能是什么问题? 我通过WP中的W3 Total Cache插件连接了CloudFront。 UPDATE 1.白名单标题 2.使文件无效 请求和响应 提前致谢 阿里夫

将htaccess url重写规则转换成nginx

我怎样才能在这里转换我的htaccess规则 RewriteRule ^/?([^/]+)/([^/]+)/?$ page-1.php?a=$1&b=$2 [L,QSA] RewriteRule ^/?([^/]+)/([^/]+)/([^/]+)/?$ page-2.php?a=$1&b=$2&c=$3 [L,QSA] 纳入nginx规则? 我试过使用转换器,但我得到以下 winginx location / { rewrite ^/?([^/]+)/([^/]+)/?$ /page-1.php?a=$1&b=$2 break; rewrite ^/?([^/]+)/([^/]+)/([^/]+)/?$ /page-2.php?a=$1&b=$2&c=$3 break; } anilcetin rewrite ^/?([^/]+)/([^/]+)/?$ /page-1.php?a=$1&b=$2 last; rewrite ^/?([^/]+)/([^/]+)/([^/]+)/?$ /page-2.php?a=$1&b=$2&c=$3 last; 但是他们都没有工作,这里有什么问题? 在我的代码这里是一个页面 domain.com?page-1.php?a=a&b=b会变成domain.com/a/b domain.com?page-2.php?a=a&b=b&c=c进入domain.com/a/b/c

Nginx与HTTPS上游失败,错误

nginx与HTTP上游协同工作,但是当我将proxy_pass更改为HTTPS时,几秒钟后失败,出现以下错误: root@websrv1:/etc/nginx/sites-enabled# nginx -t nginx: [emerg] host not found in upstream "backend" in /etc/nginx/sites- enabled/preprod-ssl.conf:30 nginx: configuration file /etc/nginx/nginx.conf test failed Nginxconfiguration: proxy_ssl_verify off; proxy_pass https://backend; proxy_ssl_trusted_certificate /etc/nginx/trusted-ssl/nginx.crt; } upstream backend { server IP:PORT; server IP:PORT; }

连接重置由对等上游问题

我已经在我的nginx服务器上安装了OSticket应用程序。 网页只是第一次打开,如果我只是刷新页面,它connection reset by peer upstream错误给connection reset by peer upstream 。 我尝试更改fastcgi_read_timeout和max_execution时间,如https://laracasts.com/discuss/channels/forge/502-bad-gateway-with-large-file-uploads和https://www.scalescale.com/tips中所述/ nginx / configure-max_execution_time-in-php-fpm-using-nginx /# ,这没有帮助。 nginx错误日志: 2017/08/07 22:15:08 [error] 26877#26877: *42 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 10.231.1.79, server: web.com, request: "GET /ticket/logo.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm/php-fpm.sock:", host: "web.com", referrer: "https://web.com/ticket/" PHP-FPM错误日志: WARNING: [pool www] child […]

与gzip的Proxy_cache

我有2个nginx服务器: Nginx-1 =原始服务器(css​​,image,json等)Nginx-2 = proxy_cache,proxy_pass 这两个服务器已经很好地沟通,proxy_cache是​​好的。 障碍是当我想在nginx-2服务器上做gzip的时候, nginx-1: curl -H "Accept-Encoding: gzip" -I http://example.com/appaux/m2017/theme_2/js/app-min.js HTTP/1.1 200 OK Server: nginx Date: Tue, 08 Aug 2017 07:39:38 GMT Content-Type: application/x-javascript Last-Modified: Wed, 21 Jun 2017 06:54:23 GMT Expires: Sat, 07 Oct 2017 07:39:38 GMT Cache-Control: max-age=5184000 Cache-Control: public Content-Encoding: gzip nginx的-2 curl -H "Accept-Encoding: gzip" -I http://example.com/appaux/m2017/theme_2/js/app-min.js […]

带有HAproxy代理协议和内部redirect的Nginxconfiguration

我需要将HTTPSstream从HAProxyredirect到Nginx,无需终止SSL,也不会丢失有关原始客户端IP的信息。 不幸的是,我不能在Nginx上更改默认443站点的configuration,因为它是由Synology NASconfiguration维护的。 我正在考虑Nginx上的新监听端口,它接受来自HAProxy的代理协议,以及不通过SSL解码/编码的本地443端口的内部redirect,而是传递来自HAProxy的原始客户端IP。 这是可能的吗? 编辑:后台是我在同一个外部443端口隧道OpenVPN和Web服务,所以实际上它看起来如下: router 443 TCP -> HAProxy -> SNI check -> stunnel -> OpenVPN | ——> SSL termination -> Nginx 443 HTTPS 我使用HAProxy,因为ngx_stream_ssl_preread_module在Synology内置的Nginx上不可用。 编辑:我认为情况和问题可以更通用: Nginx: port X accessed via proxy protocol with SSL/TLS port Y 如何使用源客户端IP的信息将端口X的stream传递给Y,而不使用SSL端点? 在端口Y上使用proxy_protocol的listen指令是唯一可能的选项吗?

nginx – 将ssl_client_s_dn从AZ重写为az

我需要configurationNGINX。 客户端CA处于大写状态,请求Uri处于小写状态。 客户端只能从客户端CA请求他的文件 if ( $ssl_client_s_dn_cn != $req_mac) { return 404; } 但他们是不同的。 有谁知道一个规则,允许客户的要求,他的文件A-Z0-9和A-Z0-9? 这里是Nginx的日志文件: REQ MAC "xxxx1236xxxx" SSL_CLIENT_S_DN_CN "XXXX1236XXXX" 客户端XXXX1236XXXX应该只能请求uri /xxxx1236xxxx.xml

如何在tcp模式下将客户端的IP地址从Haproxy转发到Nginx

我想将实际客户端的IP地址从haproxy转发到我的后端服务器在TCP模式。 Haproxy的configuration如下: frontend main bind *:80 mode http option forwardfor option http-server-close default_backend app-main frontend https_main bind *:443 mode tcp option tcplog option tcpka default_backend app-ssl backend app-main balance roundrobin server web1 192.168.1.22:8080 check fall 3 rise 2 server web2 192.168.1.33:8080 check fall 3 rise 2 backend app-ssl balance roundrobin mode tcp option ssl-hello-chk server […]

将子域映射到子目录和自定义标头以进行基本身份validation

我有一个客户端库,我需要支持这个硬编码子目录和自定义头authentication方法。 服务器已经使用子目录的其他东西,所以我想映射子域+子目录到不同的子目录。 服务器使用基本身份validation。 我已经正确地将子域重写到备用子目录,但是我在身份validation方面遇到了问题。 我目前在自定义标头中传递了base64编码的“user:pass”,并尝试使用proxy_set_header设置auth标头。 如何使用自定义标头中的值进行基本身份validation? server { server_name subdomain.example.com; listen 443; ssl on; ssl_certificate /etc/nginx/ssl/example.crt; ssl_certificate_key /etc/nginx/ssl/example.key; rewrite ^/hardcodesubdir/(.*)$ https://example.com/newsubdir/$1; proxy_set_header Authorization "Basic $http_x_custom_header"; }

从根位置服务WordPress静态与不同的path

我的WordPress的应用程序运行在https://example.com/wordpress/myapp 。 我已经设置nginx像这样: #user nobody; worker_processes 1; error_log /var/log/nginx/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { #allows file uploads up to 8 megabytes client_max_body_size 50M; server_tokens off; include mime.types; default_type application/octet-stream; log_format main '$http_x_forwarded_for – $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log […]