我使用Ubuntu 14.10,nginx 1.6.2,php 5.5.12。 我有一个这样的网站设置: server { root /usr/share/nginx/www/oliviataussig; index index.php; server_name oliviataussig.com www.oliviataussig.com; location / { try_files $uri $uri/ /index.php =404; } location ~ \.php$ { try_files $uri =404; include fastcgi.conf; fastcgi_pass unix:/var/run/php5-fpm.sock; } } 当我去主页(index.php),它工作正常。 但是,当我点击页面上的任何链接(这是一个类似于WordPress的CMS)时,我想回到/index.php ,并且这样做,但是index.php被下载而不是被执行。 我如何解决这个问题?
我正在运行SSL所需的Web服务,并计划切换托pipe提供商。 为了避免我们的用户在DNScaching清除的时候出现停机,我计划在几天内将来自旧服务器的请求代理到新服务器。 旧网站和新网站都运行nginx和openssl。 我有一个设置,似乎在Chrome和Firefox中完美的工作,但在Safari和curl失败。 我旧服务器的nginx(1.6.2)configuration中的代理configuration部分非常简单: upstream droplet { server zin.droplets.gimlet.us:443; } server { listen 80; listen 443 ssl; server_name demo.gimlet.us; # proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # proxy_ssl_session_reuse off; proxy_set_header Host $host; location / { proxy_pass https://droplet; } error_log /tmp/proxy_error.log; access_log /tmp/proxy_access.log; } (更改proxy_ssl_protocols和proxy_ssl_session_reuse似乎没有什么区别) 有趣的是,来自Safari和curl的请求不会在我的/ tmp日志中生成日志条目。 但是,在主要的error.log,我得到一个条目,如: 2014/11/21 17:02:08 [alert] 2937#0: worker process 13634 exited on […]
我有nginx服务器,作为代理国际请求和生活在.com域。 我有简单的代理configuration,其中tradernet.com服务器代理到tradernet.ru服务器的所有传入stream量。 我想添加的是语言cookie,将被.ru服务器用来提供正确的语言。 这是我在做什么: set $language $cookie_language; #Setting language cookie if ($language = "") { add_header Set-Cookie "language=en;Domain=.tradernet.com;Path=/;Max-Age=31536000"; } 正如你所看到的,我在domain .com上设置了cookie,并且它不起作用,因为.ru上的服务器正在等待设置为.tradernet.ru域的cookie。 如果我尝试使用.ru域名添加cookie,由于某种原因,这不起作用 – 我的请求正在被代理到.ru服务器而没有任何语言cookie。 add_header Set-Cookie "language=en;Domain=.tradernet.ru;Path=/;Max-Age=31536000"; 所以问题是 – 如何在代理服务器中添加cookie,将有另一个域?
为了节省空间,我们gzip所有的日志和文本文件,这些文件被用户浏览,但这些文件被下载,而不是在浏览器中打开,我找不到一种方法来设置这种文件的MIMEtypes的text/plain例如这不起作用 types { text/plain txt txt.gz log.gz } 那么nginx有没有办法告诉txt.gz和log.gz文件要作为text/plain ?
我想收集来自nginx的日志(几台服务器,所有服务器上的日志logging为1000000行)到中央统计服务器进行统计处理。 我看到2个变种: 将日志写入每个服务器的本地日志文件 在每个服务器中重命名模板“DD.MM.YYYY HH”的日志并通过ssh向日志服务器发送日志,例如 将重新加载日志的信号发送到每台服务器上的nginx 使用系统日志传输(或其他 – 这可能autorename文件的模板“DD.MM.YYYY HH”?)发送日志到统计服务器 在stat服务器的内存中使用hadoop或临时目录来处理来自所有服务器的写入日志(在这种情况下哪种变体的生产效率更高?) 你能build议别的吗?
我有一个应用程序在192.168.101.120:8080 。 现在我想通过端口80上的nginx运行它。 看看nginx.conf : user nginx; worker_processes 1; error_log /var/log/nginx/error.log; #error_log /var/log/nginx/error.log notice; #error_log /var/log/nginx/error.log info; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr – $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; […]
我正在尝试将cdn.minora.me/forum/中的每个文件重写到另一个目录中: server { listen 443 ssl; listen [::]:443 ssl; ssl on; ssl_certificate /etc/nginx/ssl/minora.me.crt; ssl_certificate_key /etc/nginx/ssl/minora.me.key; root /srv/minora.me/webservices/cdn.minora.me; index index.html index.htm index.php; server_name cdn.minora.me; location ~* \.(eot|ttf|woff|js|css|svg)$ { add_header Access-Control-Allow-Origin *; } location /forum/(images|language|sounds|templates|uploads|vendor|src\/modules|nodebb\.min\.js(\.map)?|stylesheet\.css|admin\.css) { alias /srv/minora.me/webservices/forum.minora.me/public/; } location / { try_files $uri $uri/ /index.php; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm-cdn.minora.me.sock; fastcgi_index index.php; […]
我正在寻找一个解决scheme来分发一个webapp作为一个单一的部署。 类似于在应用程序容器中部署java webapps的方式 – 一个war文件(实际上是一个zip文件)。 所以不是复制整个网站资源树,我想把一个zip文件放在文档根目录下,让nginx根据需要从文件中提取文件。
我尝试用nging / munin隔离SELinux问题。 我在“/var/log/nging/error.log”中看到了这个错误信息: [crit] 8802#0:* 55连接()到unix:/var/run/munin/fcgi-html.sock失败(13:权限被拒绝)连接上游时,客户端:1.2.3.5,server:,request: “GET / munin / HTTP / 1.1”,上游:“fastcgi:// unix:/var/run/munin/fcgi-html.sock:”,主机:“1.2.3.4” 然后我试着audit2allow来修复selinux权限: # cat /var/log/audit/audit.log | audit2allow -M nginx-munin-socket # semodule -i nginx-munin-socket audit.log消息消失了,但nginx套接字错误总是在那里。 当我使用“setenforce 0”,那么我没有nginx套接字错误消息。 所以我相信我的问题绝对是selinux。 但是我现在不知道如何隔离这个问题!? nginx的,穆宁,socket.te module nginx-munin-socket 1.0; require { type httpd_t; type init_t; type munin_var_run_t; class sock_file write; class unix_stream_socket connectto; } #============= httpd_t ============== allow […]
当我从Google Chrome请求我的网站时,我收到了CERT_INVALID错误,但是当我使用Qualys SSLtesting进行testing时,它会通过所有testing并收到A + 。 除此之外,SSL似乎与其他浏览器一起工作。 正在使用的SSL证书是来自PositiveSSL的域validation证书。 我打包CA证书的顺序是: domain_cert.pem COMODORSADomainValidationSecureServerCA.pem COMODORSAAddTrustCA.pem AddTrustExternalCARoot.pem 所以用于打包的命令如下: cat domain_cert.pem COMODORSADomainValidationSecureServerCA.pem COMODORSAAddTrustCA.pem AddTrustExternalCARoot.pem> ssl-bundle.crt 这应该是正确的,但我得到一个浏览器错误,如下图所示: