我在 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 中也没有帮助。
那么,如何增加最大上传文件大小?
我已将我的网站从 http 重定向到 https。我想允许用户代理XYZ和XYZ输入 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 不断崩溃并在浏览器中报告“坏网关”错误。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) 我需要将 url 重定向到位于文件系统上的 html 文件。这是我迄今为止尝试过的:
location /this/some/url {
alias /path/to/the/file.html
}
Run Code Online (Sandbox Code Playgroud)
当我运行它时,重定向工作但浏览器尝试下载 html 文件。相反,我希望它在浏览器中呈现 html 页面。
我的问题与那里的数千个类似问题完全不同。
我有 2 台专用服务器。更强的是服务MyMainDomain.com
我较弱的服务器但巨大的硬盘驱动器托管MyOtherDomain.com以及上面我的主域的子域中的图像,可以说:sub.MyMainDomain.com。该服务器有 2 个 IP。如果MyOtherDomain.com和 sub.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) 不知道为什么,但我所有的错误页面都以 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) 我正在阅读有关在 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,以便从实例中提供一些静态文件。
静态文件将由我拥有的 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) 所以,我一直在我的 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) 这是一个常见问题,但我仔细检查了建议的解决方案,但没有成功。
这些是来自 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)