我试图从源代码安装Opscode主厨nginx,它有点奇怪,它没有任何抱怨,但不安装它。 这是我的angular色属性如何看起来像 "nginx":{ "default_site_enabled":false, "version":"1.2.6", "init_style":"init", "install_method":"source", "configure_flags":[ "–without-http_access_module", "–without-http_auth_basic_module", "–without-http_autoindex_module", "–without-http_browser_module", "–without-http_charset_module", "–without-http_fastcgi_module", "–without-http_memcached_module", "–without-http_referer_module", "–without-http_scgi_module", "–without-http_split_clients_module" ], "log_dir":"/var/log/nginx", "binary":"/opt/nginx/sbin/nginx", "source":{ "prefix":"/opt/nginx/dist", "modules":["http_ssl_module", "http_gzip_static_module" ] } }, 厨师日志显示: [2012-12-19T02:37:44+00:00] INFO: Processing bash[compile_nginx_source] action run (nginx::source line 82) [2012-12-19T02:37:45+00:00] INFO: bash[compile_nginx_source] ran successfully 我无能为力发生了什么:(
我在Linux上使用Nginx和PHP-FPM。 我不确定这个问题是否PHP不写入PHP.ini中指定的位置,或者根本不工作。 Nginx和PHP-FPM生成的一些日志包含PHP错误,但是与其他Nginx日志输出混合在一起。 当我运行phpInfo()时,error_log中的值被设置为我的主目录中的一个文件夹,但是没有任何东西被创build。 我知道Nginx conf和PHP-FPM conf中的值可以覆盖PHP.ini中设置的值,但是运行phpInfo()会显示最终的configuration值。 我希望能够有1个文件夹,Nginx的访问和错误日志,以及PHP错误的单独文件。 谢谢。
假设一个位置块需要处理类似的URL / test_api / group_1 / version(几个URL属于这个组,例如,/ test_api / aaa / version,/ test_api / bbb / version) / test_api / group_2 / revision(其他几个URL属于这个组,例如,/ test_api / yyy / revision,/ test_api / zzz / revision) 如何在将“/ test_api / group_2 / revision”传递给位置块中的默认服务器时select性地重写“/ test_api / group_1 / version”? 如果这是不可能的,还有其他的方法来实现相同的目标。 以下是我目前的不歧视位置块。 location /test_api { types { application/json json; } root […]
以下标题(来自静态媒体响应)不会导致在Firefox中进行caching。 在Chrome中他们这样做。 HTTP/1.1 200 OK Server: nginx Date: Sat, 22 Dec 2012 21:20:39 GMT Content-Type: application/x-javascript; charset=utf-8 Last-Modified: Fri, 21 Dec 2012 19:28:54 GMT Transfer-Encoding: chunked Connection: keep-alive Cache-Control: public, max-age=86400 Content-Encoding: gzip 我的Nginx服务器的静态内容如下所示: server { listen 80; server_name static.example.com; # Logs access_log /var/log/nginx/static.example.com.access.log; error_log /var/log/nginx/static.example.com.error.log; # Root location / { alias /var/www/app/deps/current/repo/src/example/static/; add_header Cache-Control […]
我试图设置Nginxconfiguration自动redirect到我的静态子域(site.domain.com)任何域/子域指向(CNAME)到/ var / www内的相应目录。 该目录将以指定的域名/子域名命名。 每当有人添加新域名时,我不想使用VirtualHost或更改/重新启动Nginx。 我偶然发现了这个答案,但是我还是不太明白。 我应该设置为根目录? 当前configuration: server { server_name site.domain.com; listen 80 default_server; root /var/www/; index index.html index.htm; }
Nginx从Repository安装。 最初,它工作正常。 但是,我在启用了站点的站点中取消了默认configuration文件的链接,并在站点可用的文件夹中添加了新的虚拟主机文件,并使用ln -s将其链接起来。 nginx -t在重新启动后通过,但不在端口80上侦听。 但是,如果我复制实际的虚拟主机文件在启用网站的文件夹中。 重新启动后,它再次工作。 在旁注中,对于默认虚拟主机文件也是如此。 这里是ls -lR对于nginx diretory的输出 .: total 60 drwxr-xr-x 2 root root 4096 Nov 3 03:38 conf.d -rw-r–r– 1 root root 898 Nov 3 03:06 fastcgi_params -rw-r–r– 1 root root 2258 Nov 3 03:06 koi-utf -rw-r–r– 1 root root 1805 Nov 3 03:06 koi-win -rw-r–r– 1 root root […]
我对nginx相当陌生,我试图将其设置为反向代理服务器。 到目前为止,我有Apache 8080上的后端服务器和端口80上的Nginx。 我的网站使用了大量的Cookie,我无法控制…我正在使用Expression Engine CMS,它不允许禁用我不想要的cookie(不想使用EE核心代码)。 因此,我们可以说,我的主页上的一个典型的命中返回cookiesA,B和C,我不使用。 有时我也有我需要的cookiesD和E。 我想设置nginx来隐藏响应中的cookie A,B和C,并且只有当请求没有cookie或cookie D和E为空时才返回caching的内容。 那可以在nginx下设置吗? 到目前为止,我已经在我的configuration,这忽略了任何cookie。 我只想忽略或隐藏某些Cookie: proxy_cache_path /opt/nginx/cache levels=1:2 keys_zone=mycache:20m max_size=1G; proxy_temp_path /opt/nginx/tmp_cache/; proxy_hide_headers Expires Cache-Control Set-Cookie; proxy_cache_use_stale error timeout invalid_header http_502; proxy_cache_bypass $cookie_nocache; proxy_no_cache $cookie_nocache; … location / { 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_cache mycache; proxy_cache_valid 200 302 6h; proxy_cache_valid 404 […]
我有一个资产经理进程的CSS和JS通过PHP。 我使用nginx和php5-fpm来加载我的应用程序。 但返回的CSS和JS文件不gziped。 例如我的url是http://mysite.com/phpcssprocessor/mycssfile.css这个文件通过PHP生成。 这是我的虚拟主机configuration: # / location / { # gzip gzip on; gzip_static on; gzip_proxied any; gzip_types application/javascript application/json application/x-javascript application/xml text/css text/javascript text/plain text/x-component text/xml; # disable etag if_modified_since off; add_header 'Last-Modified' ''; # mvc rewrite try_files $uri $uri/ /index.php?$uri&$args; }
我有几个PHP站点,我想根据权限分开。 因此,我创build了一个新用户并为这些用户设置了一个PHP池。 考虑下面的configuration: PHP-FPM以用户php身份运行 nginx以用户nginx身份运行 webroot是/srv/http ,可以通过php和nginx访问。 /srv/http/index.php文件可以被php读取,但不能被nginx读取。 fastcgi_stuff文件包含用于设置标题,设置后端等的基本fastcgi参数。假设静态文件和PHP文件的webroot是相同的。 下面的nginx.conf包含了这个configuration的要点,它被放置在一个server指令中: server_name example.com; root /srv/http; index index.php; location ~ \.php$ { include fastcgi_stuff; } 如果我通过上述configuration请求http://example.com/ ,则按预期加载页面。 对于http://example.com/does.not.exist ,我得到了预期的404。 为了防止将不存在的文件传递给PHP-FPM,我尝试添加下面的一行: try_files $uri =404; if ( !-e $request_filename ){ return 404; } 两者都不像广告一样工作,它试图打开文件,而不是通过执行stat()调用来检查存在。 我通过检查源代码并在工作进程上运行strace来确认这一点。 这是我遇到的一个基本情况,另一个案例是我隐藏扩展,因此把一个try_files $uri.php =404在位置块。 有什么build议么?
我正在尝试configurationNginx,以便我可以从子目录(aka domain.com/phpmyadmin)访问PhpMyAdmin。 下面提供的代码似乎适用于我,虽然我不希望别名是/ phpmyadmin 。 location /phpmyadmin { root /usr/share/; index index.php index.html index.htm; location ~ ^/phpmyadmin/(.+\.php)$ { try_files $uri =404; root /usr/share/; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; } location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; } } 如果我尝试更改位置名称 位置/ phpmyadmin {… 至… 位置/秘密{… 一切似乎都打破了。 我究竟做错了什么?