Articles of nginx

Nginx反向代理 – 从cookies中删除“安全”

为了开发的缘故,我需要让NGINX从cookie头文件中删除“Secure”标志。 Set-Cookie:XSRF-TOKEN=zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzz; Path=/; Secure 应该成为 Set-Cookie:XSRF-TOKEN=zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzz; Path=/; 对于每个Set-Cookie头。 我正在创build一个反向代理configuration,以将开发服务器与UI分离,并且由于上游运行在HTTPS后面,而NGINX运行在纯HTTP上,所以浏览器拒绝发回cookie。

Nginx在子域中:如果索引是.html错误403禁止索引是.php被下载

它只发生在一个子域中,其余的很好: 如果索引号的扩展名是htm或者html,则报错: “403禁止” 如果它的扩展名是PHP的索引尝试下载。 / srv / www中的权限对于所有子域是相同的,并且它们工作。 我把configurationconf: server { ## Escucha en el puerto 80 (HTTP) listen 80; server_name musica.domain.com; location / { return 301 https://$server_name$request_uri; } } server { ## Escucha en el puerto 443 (HTTPS) listen 443 ssl http2; server_name musica.domain.com; ## Certificados ssl_certificate /etc/letsencrypt/live/musica.domain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/musica.domain.com/privkey.pem; include snippets/ssl-params.conf; access_log /var/log/nginx/musica_access.log; […]

nginx proxy_pass仅适用于根path

我想将nginx设置为apache的反向代理。 我在端口8080上有apache。它只适用于根path,例如https://www.example.com ,但它不适用于https://www.example.com/index.html location / { try_files $uri $uri/ /index.php; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $host; proxy_pass http://127.0.0.1:8080; } 我尝试join斜线地址,如http://127.0.0.1:8080/,但后来我得到configuration错误。 就像这里: https : //stackoverflow.com/questions/21662940/nginx-proxy-pass-cannot-have-uri-part-in-location我试图使用重写,但我不知道该重写什么是。

如何解决Nginx的499,当它没有返回到客户端的Web套接字握手?

在一个Kubernetes集群中,我有一个Nginx服务器,就像一个反向代理/ TLS终止解决scheme一样,代理通过一个由Web Sockets(SockJS / Stomp)支持的function的后端Tomcat应用程序的请求。 不幸的是,Web Sockets握手从未成功完成。 在客户端,在我的浏览器中,我可以在控制台中看到以下消息: Opening Web Socket… websockets-0.1.min.js:116 Whoops! Lost connection to https://myhost/stomp Opening Web Socket… websockets-0.1.min.js:116 Whoops! Lost connection to https://myhost/stomp 随后是HTTP 504 Gateway Timeout 。 websockets-0.1.min.js:72 WebSocket connection to 'wss://myhost/stomp/673/ugvpxc1lwmfjnung/websocket' failed: Error during WebSocket handshake: Unexpected response code: 504 – 在tomcat端,我在访问日志中有以下条目: 0:0:0:0:0:0:0:1,2017-06-01 16:53:36.915 +0000,4,GET,HTTP/1.1,"/stomp/673/ugvpxc1lwmfjnung/websocket",101, -,O,-,blablablabla,-,-,"Mozilla/5.0 (Macintosh; Intel Mac OS […]

为什么php函数不能在我的nginx中运行?

PHP7和nginx这样安装在centos7上。 要安装php7 sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm sudo yum install php70w php70w-common 现在用php -v来检查它。 PHP 7.0.19 (cli) (built: May 12 2017 21:01:27) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies with Zend OPcache v7.0.19, Copyright (c) 1999-2017, by Zend Technologies 安装nginx wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm rpm -ivh epel-release-latest-7.noarch.rpm sudo […]

Php-fpm7达到最大池限制

我已经设置了我们的服务器,以便每个站点都有自己的用户。 这似乎是做到这一点(也是最安全的)的标准方式。 我似乎达到了某种限制。 php-fpm.conf文件清楚地说: “FPM可以处理的池的数目没有限制,你的系统会告诉你:)” 。 但是,这个服务最多只能在一个人静静地放下之前启动最多9个池。 这是我的系统让我知道吗? (没有错误和充足的内存)。 包含使用默认设置(Debian)的池:include = / etc / php / 7.0 / fpm / pool.d / * .conf 基本上,这些将被加载9,不再有错误。 如果我在这个文件夹中重命名文件,使它们按不同的顺序排列,将会启动不同的9个池(即,它加载文件夹中的第一个或最后一个9)。 我的池configuration示例是: [user1] user = user1 group = user1 listen = /run/php/php7.0-fpm-user1.sock listen.owner = www-data listen.group = www-data pm = ondemand pm.max_children = 5 pm.start_servers = 2 pm.min_spare_servers = 1 […]

在/ tmp和/ var / tmp / uwsgi中找不到ngnix套接字文件?

在nginx 1.10.2和uwsgi 2.0.14的centos 7上 当我configurationuwsgi在/ var / tmp / uwsgi或/ tmp中打开一个套接字时,我从nginx发出一条消息,说它找不到套接字文件: 2017/06/07 16:54:53 [crit] 2642#0: *7 connect() to unix:///tmp/mywebsite.socket failed (2: No such file or directory) while connecting to upstream, client: 108.162.245.185, server: _, request: "GET /share/3years/music/guitarists/django_reinhardt HTTP/1.1", upstream: "uwsgi://unix:///tmp/mywebsite.socket:", host: "mywebsite.com" 2017/06/07 17:22:11 [crit] 1327#0: *2 connect() to unix:///var/tmp/uwsgi/mywebsite.socket failed (2: No such file […]

在一个nginxconfiguration文件中,如何定义一个包含“$”符号的fastcgi_param?

我正在尝试为PHP应用程序定义一些环境variables,但其中一个variables包含“$”符号。 当我使用nginx -ttestingconfiguration文件时,我收到一条错误消息,告诉我一个variables不存在。 它似乎将“$”之后的文本解释为一个variables名,这当然没有定义。 也许我没有在正确的地方search,但我找不到有关如何逃避“$”字符的信息。 这是可能的,怎么办? 更新:我试图在d3ag0s的注释之后用单引号和双引号括起来,但是我有相同的错误信息。

使用nginx设置数字海洋上的MEAN应用程序

我正在尝试在digitalocean上设置一个Nodejs + Angularjs应用程序。 我将前端(angularjs)和后端(nodejs)分别分别放置在两个分别在端口3000和4000上运行的nodejs服务器上。 我希望angularjs应用程序在mydomain.com上提供,后端服务器通过子域api.mydomain.com提供服务。 我的nginxconfiguration是: server { server_name mydomain.com; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $proxy_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://127.0.0.1:3000; } } server { server_name api.mydomain.com; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $proxy_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://127.0.0.1:4000; } } 以下是液滴的DNSconfiguration: Type Host […]

Nginx httpredirect到https

我有这样的configuration: server { listen 80; server_name example.pl *.example.pl; rewrite ^/(.*)$ http://www.example.pl/$1 permanent; } server { listen 80; listen 443 ssl; ssl on; ssl_certificate /opt/nginx/ssl/server.pem; ssl_certificate_key /opt/nginx/ssl/server.key; server_name www.example.pl; root /var/www/example/public/; # <— be sure to point to 'public'! } 所以现在每个像xx234.example.pl这样的子域都被重写为http://www.example.pl 现在我尝试设置https。 https://www.example.pl工作正常,但我不能将stream量从httpredirect到https。 当我这样做: server { listen 80; server_name example.pl *.example.pl; #rewrite ^/(.*)$ http://www.example.pl/$1 permanent; return […]