Articles of nginx

如何根据用户代理和位置在uwsgi_pass和try_file之间进行select?

当像GoogleBot这样的机器人请求时,如何将nginxconfiguration为使用uwsgi_pass ,并且path的文件扩展名不存在给定范围或try_file否则?

Nginx的Httpsredirect不工作在Ubuntu 16.04

如何将所有HTTP请求redirect到Nginx中的HTTPS? 我已经按照下面的链接: https://www.thecodeship.com/web-development/guide-implementing-free-ssl-certificate-nginx-lets-encrypt/ 以下是我已经添加到我的网站的configuration文件的代码。 server { listen 80; listen [::]:80; server_name mydomain.com; include /etc/nginx/snippets/letsencrypt.conf; location / { return 301 https://mydomain$request_uri; } } server { server_name mydomain.com; listen 443 ssl http2; listen [::]:443 ssl http2; ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem; include /etc/nginx/snippets/ssl.conf; root /var/www/mydomain.com/public_html/public; index index.html 1.html; location / { try_files $uri $uri/ =404; } […]

温暖caching,但不要提出太多的DNS请求

我有一个超过一百万页的网站,上面有一个varnishcaching,位于nginx的后面,每天我运行一个cron来使所有页面无效(不要问我为什么,这很复杂…)。 该网站在Cloudflare的后面,我根据DNS请求收费。 我能做些什么来减less发送到Cloudfare的URL请求的数量? 我想放入一个单独的服务器前缀,绕过Cloudflare,但意识到清漆的关键是完整的FQDN +尾随URL

NGINX被用作反向代理拒绝连接

upstream backend { server 127.0.0.1:8080; } server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; include snippets/self-signed.conf; include snippets/ssl-params.conf; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location / { proxy_pass http://backend; […]

当它们被nginx使用时,从/ var / www / html复制文件

我在/var/www/html有很多数据。 它超过2GB。 现在我有可能在主机上托pipe网站( nginx正在使用/ var / www / html),或者我可以使用docker。 对于docker的用户,我将/var/www/html的内容复制到另一个文件夹( src/ ),并在我的容器中装入src/ : 脚步: stop nginx copy files /var/www/html –> xxx/src/ start docker 副本需要几分钟的时间,所以有一些停机时间。 执行以下操作是一个坏主意吗? copy files /var/www/html –> xxx/src/ (while nginx is running) stop nginx start docker 会有问题吗?

configurationNginx从虚拟机到本地机器

我目前有一个服务器在nginx虚拟机中设置,如下所示: server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /home/pets/petsPage; index index.html index.htm:; # Make site accessible from http://localhost/ server_name localhost; location / { proxy_pass http://localhost:8080/; } } 我通过主机在本地机器上调用它: 127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost 192.168.56.10 petsPage.com 这工作正常。 但是,现在我有另一台服务器在同一个负责API的虚拟机上运行。 api将被调用一个代理通行证,这是localhost:3000。 我怎么会在我的本地机器的主机文件中调用这个? 由于虚拟机承载这两个,IP是相同的,所以我怎么区分它,并给它一个URL像api.petsPage.com?

NGINXdocker集装箱立即停止

我开始在Docker中了解Docker和nginx。 我想使用我自己的自定义静态文件和我自己的nginx.conf,所以我创build了一个docker文件: FROM nginx RUN rm /etc/nginx/nginx.conf COPY /nginx.conf /etc/nginx/nginx.conf COPY / /usr/share/nginx/html # Expose ports EXPOSE 80 而我的nginx.conf: #user nobody; worker_processes auto; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr – $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" […]

网站目录的安全权限

我们有一个Centos nginxnetworking服务器上的一些网站。 通常我们把nginx:nginx作为所有者,拥有775个权限,开发者是nginx组的一部分。 如果您想知道为什么开发人员需要在那里编写代码,那么我们就是一个不同的人,像git pull在服务器上一样。 问题是,其中一个网站被黑客攻击(从一个WordPress的错误)和所有的网站都在/ www / docs / websitename所有这些都被入侵。 有没有办法允许nginx和用户的正常工作没有“traspassing”?

nginx,限制除index.php之外的所有.php,允许POST

我试图限制通过HTTP访问.php文件,只允许index.php。 我应该只允许通过POST访问.php文件。 我做了以下几点: location ~ ^((?!index\.php).)*$ { allow 127.0.0.1 deny all; } 这会阻止除index.php之外的所有文件,但是也会阻止POST查询。 有任何想法吗?

nginx http到https重写规则不再起作用

我有一个nginx服务器,是众多内部服务的反向代理。 虽然我不知道问题何时开始, 目前,重写语句不再将所有httpstream量redirect到https。 重写语句的最终目标是将所有networkingstream量(包括子文件夹)重新写入example.com,重写为www.example.com。 此外,http:// www.example.com的所有networkingstream量都将redirect到https:// www.example.com。 目前,如果您导航到http:// example.com/service1,则会显示404未findnginx。 /var/log/nginx/error.log日志文件数据如下: 2017/08/24 18:36:55 [error] 31476#31476: *919529 open() "/etc/nginx/html/service1" failed (2: No such file or directory), client: 1.2.3.5, server: , request: "GET /chub HTTP/1.1", host: "example.com" 我注意到的一个项目是显示尝试访问网页的日志文件不是在configuration文件中定义的。 这导致我相信configuration文件存在问题,并且nginx不使用其中的指令来路由stream量。 如果您导航到https:// example.com/service1,则会被redirect到正确的URL。 另外,你是否使用www也无所谓。 或者不,输出是一样的。 唯一certificate成功的是https:// www.example.com。 我已经尝试了很多不同的listen / server_name / return / rewrite指令,但都没有成功。 以下是nginx站点configuration。 请注意,由于窗口大小,一些文本会环绕。 另外请注意,我不得不在一些URL中添加空格,因为我没有10个需要添加超过2个URL的代表点。 log_format awstats '$remote_addr […]