标签: nginx

增加 PHP-FPM 的最大上传文件大小

我在 php.ini 中增加了 params 值:

upload_max_filesize = 10M
post_max_size = 12M
Run Code Online (Sandbox Code Playgroud)

php --ini在控制台命令显示我:

post_max_size => 12M => 12M
upload_max_filesize => 10M => 10M
Run Code Online (Sandbox Code Playgroud)

但无论如何,当我尝试发送大于 1mb 的文件时,我会出错。在 nginx 日志中,我看到:

2017/06/03 12:06:40 [error] 16254#16254: *7 client intended to send too large body: 1778665 bytes
Run Code Online (Sandbox Code Playgroud)

fastcgi_param PHP_VALUE "upload_max_filesize = 10M \n post_max_size=12M" 在 nginx conf 中也没有帮助。

那么,如何增加最大上传文件大小?

php nginx php-fpm

0
推荐指数
2
解决办法
1万
查看次数

如果用户代理包含 XYZ,则 NGINX 重定向

我已将我的网站从 http 重定向到 https。我想允许用户代理XYZXYZ输入 http 和 https 版本。

现在虚拟主机看起来像这样:

server {
        listen 80;
        server_name example.com www.example.com;
        rewrite  ^/(.*)$  https://www.example.com/$1 permanent;
}
Run Code Online (Sandbox Code Playgroud)

我该如何编辑它,以允许包含 XYZ 的代理同时查看 HTTP 和 HTTPS?换句话说……如何禁用此类代理的重定向?

我试过

if ($http_user_agent ~* "^XYZ$") {
   rewrite ^/(.*)$ https://www.example.com/$1 permanent;
}
Run Code Online (Sandbox Code Playgroud)

但这似乎只重定向了 XYZ。但是如果 XYZ,不是严格的 XYZ,但包含 XYZ,我需要禁用重定向...

nginx 301-redirect

0
推荐指数
1
解决办法
7095
查看次数

为高流量负载配置 Nginx + PHP-FPM

我的 nginx 不断崩溃并在浏览器中报告“坏网关”错误。Nginx 和 PHP-FPM 没有预先配置来处理大流量负载。我必须systemctl restart php7.0-fpm每小时安排一次cron 工作,以确保我的网站在运行时不会停留太久。让我们开始吧。

我从中得到的一些错误/var/log/php7.0-fpm.log

[20-Sep-2017 12:08:21] NOTICE: [pool web3] child 3495 started
[20-Sep-2017 12:08:21] NOTICE: [pool web3] child 2642 exited with code 0 after 499.814492 seconds from start

[20-Sep-2017 12:32:28] WARNING: [pool web3] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 7 idle, and 57 total children
Run Code Online (Sandbox Code Playgroud)

nginx 日志中没有任何内容让我感到意外。如果我让它运行太长时间而不重新启动它 (PHP-FPM),我会收到网关错误。我已经尝试按照教程 3 次调整设置,但仍然不好。现在我可能已经完成了各种设置,但无论哪种方式都行不通。

/etc/nginx/nginx.conf

user www-data;
worker_processes auto;
pid /run/nginx.pid;

worker_rlimit_nofile 100000;

events …
Run Code Online (Sandbox Code Playgroud)

nginx php-fpm

0
推荐指数
1
解决办法
1万
查看次数

如何在不将其下载到 nginx 的情况下从 url 重定向到 html 文件

我需要将 url 重定向到位于文件系统上的 html 文件。这是我迄今为止尝试过的:

location /this/some/url {
    alias /path/to/the/file.html
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,重定向工作但浏览器尝试下载 html 文件。相反,我希望它在浏览器中呈现 html 页面。

url nginx redirect

0
推荐指数
1
解决办法
5034
查看次数

2个域的nginx虚拟主机相同的IP

我的问题与那里的数千个类似问题完全不同。

我有 2 台专用服务器。更强的是服务MyMainDomain.com

我较弱的服务器但巨大的硬盘驱动器托管MyOtherDomain.com以及上面我的主域的子域中的图像,可以说:sub.MyMainDomain.com。该服务器有 2 个 IP。如果MyOtherDomain.comsub.MyMainDomain.com都在同一个 IP 上侦听,则MyOtherDomain.com将中断。如果在不同的 IP 上收听就解决了......但那是不对的!我们需要他们都在 1 个 IP 上工作。

Nginx version: nginx/1.13.8
Run Code Online (Sandbox Code Playgroud)

/etc/nginx/sites-enabled 中的符号链接:

我的其他域

server {

    listen IP_1:443 ssl http2; 
    server_name MyOtherDomain.com; # this domain must match Common Name (CN) in the SSL certificate
    ...........   
    # pass all requests to Meteor
    location / {
          proxy_pass http://127.0.0.1:3000;
Run Code Online (Sandbox Code Playgroud)

sub_MyMainDomain

server {

    listen IP1:443 ssl;    # error
    listen IP2:443 ssl;    # work fine
    server_name …
Run Code Online (Sandbox Code Playgroud)

nginx virtualhost

0
推荐指数
1
解决办法
991
查看次数

为什么我的 404 返回 200 状态码?

不知道为什么,但我所有的错误页面都以 200 响应。这对我来说有点奇怪,页面存在但它们不应该有相应的状态代码吗?如何让 Nginx 使用 404 状态代码呈现我的 404 页面?

例如:

? curl -I http://example.com/404
HTTP/1.1 200 OK <<--------------------------- WTF! THIS SHOULD BE 404!!
Server: nginx/1.8.0
Date: Tue, 17 Apr 2018 02:24:04 GMT
Content-Type: text/html; charset=UTF-8
...
Run Code Online (Sandbox Code Playgroud)

这是我的配置的相关部分:

server {

listen 80 default_server;

server_name example.com;
root /var/www/example/static;
index index.html;

try_files $uri $uri/ $uri.html =404;

# error pages
error_page 400 =400 /400; # bad request
error_page 401 =401 /401; # unauthorized
error_page 403 =403 /403; # forbidden
error_page 404 =404 /404; # …
Run Code Online (Sandbox Code Playgroud)

http nginx http-status-code-404 http-status-code

0
推荐指数
1
解决办法
5643
查看次数

如何在 Ubuntu 14.04 服务器上设置 nginx-debug?

我正在阅读有关在 nginx 中启用调试日志的指南:https : //nginx.org/en/docs/debugging_log.html

我有一个 Ubuntu 14.04 服务器。我必须在哪些目录中运行这些命令

./configure --with-debug
error_log /path/to/log debug;
configure arguments: --with-debug
Run Code Online (Sandbox Code Playgroud)

nginx

0
推荐指数
1
解决办法
3015
查看次数

多个 CORS 来源。我应该使用 if 语句吗?- NginX

我已经设置了一个 NginX,以便从实例中提供一些静态文件。

静态文件将由我拥有的 3 个不同域使用。

NginX 服务器位于其自己的(第 4 个)域中。我想限制对我的文件的访问并应用 CORS 策略。

我已经研究过如何实现这一点,并且我确实做到了。在我的位置块中,我测试了以下代码:

if ($request_method = 'OPTIONS') {
        add_header 'Access-Control-Allow-Origin' 'http://localhost:3000';
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
        #
        # Custom headers and headers various browsers *should* be OK with but aren't
        #
        add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
        #
        # Tell client that this pre-flight info is valid for 20 days
        #
        add_header 'Access-Control-Max-Age' 1728000;
        add_header 'Content-Type' 'text/plain; charset=utf-8';
        add_header 'Content-Length' 0;
        return 204;
    }
    if ($request_method = 'GET') {
        add_header 'Access-Control-Allow-Origin' 'http://localhost:3000';
        add_header 'Access-Control-Allow-Methods' …
Run Code Online (Sandbox Code Playgroud)

nginx cors

0
推荐指数
1
解决办法
5006
查看次数

PHP-fpm 使用 nginx 很慢,

所以,我一直在我的 docker 容器(nginx 连接到 php-fpm)上运行一些基准测试,它比裸机慢 70 倍以上。与每秒 7,000 个裸机相比,我每秒可以管理 100 个请求。

docker-compose.yml:

version: '3'

services:
    #web
    frontend:
        build:
            context: ./environment/nginx
            dockerfile: ./Dockerfile
        container_name: nginx_software
        restart: always
        ports:
            - 80:80
        volumes:
            - ./environment/nginx/nginx.conf:/etc/nginx/nginx.conf
        links:
            - php
    php:
        build:
            context: ./environment/php
            args:
                version: 7.3-fpm
            dockerfile: ./Dockerfile
        container_name: php_software
        restart: always
        ports:
            - 9000:9000
        volumes:
            - ./api:/var/www/software:cached
        links:
            - mysql
    mysql:
        build:
            context: ./environment/mysql
            args:
                version: 5.7
            dockerfile: ./Dockerfile
        container_name: mysql_software
        command: --default-authentication-plugin=mysql_native_password
        restart: always
        ports:
            - 3306:3306
        volumes:
            - ./environment/mysql/data:/var/lib/mysql
        environment:
            MYSQL_ROOT_PASSWORD: …
Run Code Online (Sandbox Code Playgroud)

ubuntu nginx php-fpm docker

0
推荐指数
1
解决办法
2838
查看次数

PHP move_uploaded_file 失败

这是一个常见问题,但我仔细检查了建议的解决方案,但没有成功。

这些是来自 PHP 的错误:

Warning: move_uploaded_file(images/img01.jpg): failed to open stream: Permission denied in /usr/share/nginx/html/media/test.php on line 28

Warning: move_uploaded_file(): Unable to move '/tmp/phpRvUCVx' to 'images/img01.jpg' in /usr/share/nginx/html/media/test.php on line 28
Run Code Online (Sandbox Code Playgroud)

服务器已经安装了 nginx 和 php 7.3 (php-fpm)

上传文件夹的权限:

 drwxrwxrwx.  2 nginx  nginx       6 Apr  5 03:11 images
Run Code Online (Sandbox Code Playgroud)

信息来自ps aux | grep php

centos   24211  0.0  0.0 112708   980 pts/0    S+   16:01   0:00 grep --color=auto php
root     24674  0.0  0.6 285532 11452 ?        Ss   Apr04   0:04 php-fpm: master process (/etc/opt/remi/php73/php-fpm.conf)
nginx    24675 …
Run Code Online (Sandbox Code Playgroud)

nginx php-fpm centos7 php7

0
推荐指数
1
解决办法
2012
查看次数