有人能告诉我这里发生了什么事吗? 据我所知,这些执行初始化脚本的方法是相同的。 box:~# whoami root box:~# /etc/init.d/nginx restart nginx: [emerg] open() "/var/run/nginx.pid" failed (13: Permission denied) nginx: configuration file /etc/nginx/nginx.conf test failed box:~# service nginx restart nginx: [emerg] open() "/var/run/nginx.pid" failed (13: Permission denied) nginx: configuration file /etc/nginx/nginx.conf test failed box:~# head -1 /etc/init.d/nginx #!/bin/sh box:~# /bin/sh /etc/init.d/nginx restart Stopping nginx: [ OK ] Starting […]
我有一个rails应用程序部署在一个amazon ec2 ubuntu实例,configuration与nginx工作正常。 问题是,当我尝试在Facebook上发布网站的url而没有https http://example.com或www.example.com时,它会以“welcome to nginx”的forms发布网站的标题,而不是描述已经在meta标签中设置。 当点击链接redirect到网站,因为它应该但我想摆脱“欢迎nginx”文本,并希望看到在元标记中设置的说明。 但是,使用https发布url会发布元标记中提供的正确信息。 另一方面,使用或不使用https的情况下在浏览器中input网站的URL也应该redirect到该网站。 这里是我的应用程序的nginxconfiguration: server { listen 443 ssl; ssl on; server_name myipaddress; passenger_enabled on; rails_app_spawner_idle_time 0; passenger_min_instances 1; root /home/ubuntu/example/public; ssl_certificate (.pem file path); ssl_certificate_key (.key file path); } server { listen 80; server_name myip; return 301 https://$server_name$request_uri; } server{ listen 80; server_name example.com; return 301 https://www.$server_name$request_uri; […]
这个问题的前提不幸是模糊的,但我不能指出一个更具体的问题。 我把一台机器从nginx 1.6.3升级到了1.8,现在发布一个nginx -s quit并没有什么意义。 该命令不输出,即使在所有虚拟主机中启用了debugging级别 ,access_log和error_log文件也不会显示任何exception。 /var/log/nginx/error.log除了“信号进程启动”通知之外,也没有任何内容。 pgrep nginx显示进程停留在那里,没有发生任何事情。 我知道退出信号并不一定会立即停止nginx,因为它应该正常退出,但问题是,即使机器被防火墙隔离,并且没有处理任何请求, nginx -s quit仍然不会执行任何操作。 在与1.6.3完全相同的条件下,过程立即停止。 我完全丧失了如何debugging这个问题,并find根本原因,但显然有些不对劲。 任何帮助指出我正确的方向将不胜感激。 编辑:我们看到的行为是以下,一步一步: apt-get更新/升级nginx 1.6.3到1.8的机器(当提示安装新的/etc/nginx/nginx.conf时) sudo nginx -s quit第一次sudo nginx -s quit按预期工作 sudo service nginx start将nginx带回原样 sudo nginx -s quit第二次sudo nginx -s quit ,什么都不做了,重启后也会保持原状 我们在VM中多次testing,结果是一致的。 也许这是1.8的错误?
在/ var / log / nginx /我有访问和错误日志。 有些是.log错误,其他的有.gz 我想我搞砸了权限。 有些文件是由root / root创build的,其他文件是使用nginx.conf中configuration的用户创build的 什么用户/组应该创build这些文件? 为什么? 它可以是根? 我可以看到现在新的.log文件是由root创build的,但不知道是否是正确的。 而且我想问问哪里是谁创build这些文件的用户?
我正在使用nginx上游到不同的服务器组,取决于用户的地理位置。 因为看来geoip模块不会为本地地址(localhost,192.168.0.X等)返回任何值。 https://www.maxmind.com/en/faq 我试图ot处理这个如下:1)检查当前的IP是本地IP: geo $isLanIP { default no; 192.168.0.0/24 yes; 127.0.0.1 yes; } 2)取决于isLanIP proxy_pass的不同上行的值: if ($isLanIP ~ no){ proxy_pass http://$geoip_country_code.SearchControllerUpStream/; break; } if ($isLanIP ~ yes){ proxy_pass http://local.SearchControllerUpStream/; break; } 当启动nginx时,错误“”proxy_pass“不能在正则expression式给定的位置,或者在名为lo的内部。 … .conf:64'被提出。 L64是第二个proxy_pass调用。 BR。 服务器块: server { listen 8080; server_name host; access_log /var/log/nginx/host.access.log main; error_page 404 = 404.html; error_page 403 = 403.html; […]
我创build了一个解决scheme来托pipeAWS上具有高stream量(> 500个用户)的magento商店。 在access.log中出现HTTP 499错误通常是Varnish。 发生这种情况时,有这种访问权限的用户将面临503。 我不知道什么可能会导致错误499,但我明白它的意义。 我改变了几个参数,但没有成功。 任何想法? 我的/etc/varnish/default.vcl: backend webserver01 { .host = "172.31.30.167"; .port = "80"; .connect_timeout = 10s; .first_byte_timeout = 90s; # .probe = { # .url = "/heartbeat/index.php"; # .timeout = 30 s; # .interval = 15 s; # .window = 6; # .threshold = 3; # } } backend webserver02 […]
我有一个运行在nginx + php-fpm上的网站,我正在寻找一个configuration文件,它实际上向我展示了一个404和其他一些错误页面,因为我的configuration文件的当前状态只改变了URL并且不显示我一个404页面。 例如。 我去mywebsite.com/some-non-existent/url并与主页,而不是404页面迎接。 另外,是try_files语法“安全”使用还是应该使用重写? 我已经广泛阅读了nginx文档,也阅读了wordpress codexconfiguration。 在我下面粘贴我的configuration文件,看看是否有人可以对这个问题有所了解。 server { listen 127.0.0.1:80; server_name my.website.com; root home/my.website.com; access_log logs/my.website.com-access.log; error_log logs/my.website.com-error.log notice; charset utf-8; index index.php; location / { #try_files $uri $uri/ /index.php$is_args&$args; try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { #try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; include fastcgi_params; […]
我有一个问题让nginxconfiguration工作。 似乎一切工作正常,但我的PHP脚本不会收到GET参数。 我得到的最相关的链接是这一个nginx + php-fpm – 我的$ _GET参数在哪里? 但是我的configuration稍有不同,只需在最后一个try_files指令中添加$ query_string就行不通了。 这是我的configuration: server { server_name api.example.com; root /home/example/api/web; location /v2 { alias /home/example/api/v2/web; try_files $uri /v2/index.php; location ~* \.(js|css|less|png|jpg|jpeg|gif|ico|woff|ttf|svg|tpl)$ { expires 24h; access_log off; } location /v2/index.php { fastcgi_index index.php; fastcgi_pass php56; fastcgi_split_path_info ^/v2/(.+\.php)(.*)$; fastcgi_param SCRIPT_FILENAME /home/example/api/v2/web/$fastcgi_script_name; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_NAME /v2/index.php; } } } 然后使用这个configuration, […]
我想这样做,但与nginx服务器我写下面的设置,但login页面/ redmine /loginredirect到/login 请协助。 location /redmine { proxy_pass http://localhost:3000/; proxy_redirect default; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_cache dhis; fastcgi_read_timeout 6000; } 我应该添加什么,所以返回页面中的任何链接指向以/ redmine前缀开头。
我有一个运行在端口80上的nginx实例和在端口4567上运行在同一台机器上的另一个应用程序(embedded jetty)。 我正在尝试将URL中包含/api/任何请求redirect到端口4567上运行的服务器。 为此,我在nginx.conf文件中的http上下文标签中添加了以下内容: server { listen 80; location /api { proxy_pass http://127.0.0.1:4567; } } 但是这不起作用。 每当我尝试请求任何包含/api/ *的URL时,我只需从nginx获得404 Not Found 。 我错过了什么? 谢谢。