Articles of 服务器

nginx:为不同的path使用不同的服务器

我有两个Rails应用程序坐在同一台机器上的两个不同的URI后面。 nginxconfiguration适用于自己的configuration文件中的每个应用程序。 现在其中一个应用程序必须慢慢合并到第二个应用程序中。 在URIpathapplication-one.com/register下有一个可访问的端点。 我只想要这个application-one.com/registerpath访问第二个应用程序和所有其他path(application-one.com/* except /register)仍然访问第一个应用程序。 有没有办法做到这一点,而不使用301redirect,因为我不能在我的情况下使用它们? 示例configuration文件如下所示: upstream unicorn_application_one { server unix:/tmp/unicorn_application_one.sock fail_timeout=0; } server { client_max_body_size …. … server_name application-one.com root /home/deployer/application_one/current/public; try_files $uri/index.html $uri @unicorn_application_one; location @unicorn_application_one { proxy_set_header … …. } location ^~ /assets/ { … } …. } 编辑: 我试过@joaumg的方法,但我不得不改变它: 每当我提取上游到外部文件,我得到了duplicate upstream错误。 所以我只是把@ joaumg的代码改成了: location /register { proxy_pass http://unix:/tmp/unicorn_application_two.sock; […]

Nginx位置configuration(子文件夹)

可以说我有一个像这样的path: /var/www/myside/ 该path包含两个文件夹…让我们说/static和/manage 我想configurationnginx来访问: /static文件夹/ (例如http://example.org/ )这个文件夹有一些.html文件。 /manage文件夹/manage (例如http://example.org/manage )在这种情况下,这个文件夹包含Slim的PHP框架代码 – 这意味着index.php文件是在public子文件夹(例如/ var / www / mysite /manage/public/index.php) 我已经尝试了很多组合,如 server { listen 80; server_name example.org; error_log /usr/local/etc/nginx/logs/mysite/error.log; access_log /usr/local/etc/nginx/logs/mysite/access.log; root /var/www/mysite; location /manage { root $uri/manage/public; try_files $uri /index.php$is_args$args; } location / { root $uri/static/; index index.html; } location ~ \.php { try_files $uri =404; […]

Chrome会忽略ETag标头,只是使用内存caching/磁盘caching

如果我理解正确,那么使用ETags的stream程如下所述: 浏览器将请求发送到服务器。 服务器用ETag发回图像 浏览器随同ETag一起保存资源 在下一个请求中,浏览器发送带有包含保存的ETag的头部If-None-Match的请求。 当返回响应时,chrome开发工具告诉我这些是我的头文件 Cache-Control:max-age=7200 Connection:keep-alive Content-Type:image/png Date:Thu, 27 Apr 2017 13:42:57 GMT ETag:"b36f59c868d4678033d318a182658e18371df8f5" Expires:Thu, 27 Apr 2017 15:42:57 GMT Server:nginx Transfer-Encoding:chunked X-Debug-Token:873c8f X-Debug-Token-Link:http://localhost:8081/_profiler/873c8f 现在,当我重新加载页面时,不会收集新的图像。 它通过Chrome的内存caching或磁盘caching保存,如您在这里看到的 但为什么会这样呢? 我发送了一个ETag,为什么浏览器不向服务器发出另一个请求,而是使用它自己的caching? 我问的原因是,我们想要caching我们的图像,但只要他们改变,他们应该立即更新。 为什么Chrome会这样做? 更新 我只是注意到它在Firefox上的作用,所以这似乎是一个铬“function”,而不是一个configuration。 更新2 设置我的新标题像这样的图像 Cache-Control:max-age=0, private Connection:keep-alive Content-Type:image/png Date:Thu, 27 Apr 2017 14:44:57 GMT ETag:"e5b18bdebe44ed4bba3acb6584d9e6a81692ee27" Expires:Fri, 27 Oct 2017 14:44:57 GMT Server:nginx Transfer-Encoding:chunked […]

在Nginx服务器上创build虚拟主机

最近我一直在使用LAMP,但现在,我已经开始使用nginx了。 所以,我安装了nginx,想创build虚拟主机,因为LAMP的文件夹结构不同于独立的nginx文件夹结构,并且无法理解如何创build虚拟主机。 我访问过几个链接,如: 教程1 , 教程2 – 不适用因为它是独立的nginx 这里有1个问题 ,这也是一种类似于我的情况,但没有答案 。

为什么我得到错误:在Ajax请求期间从上游读取响应头时,recv()失败(104:由对等方重置连接)

我有问题与Ajax。 请求后5分钟停止工作。 我不知道是什么原因造成的。 我看了很多页面,发现一个溶剂,但也没有提供一个好的。 我可以做什么 ?

Docker和小型生产服务器基础设施build议

我搞清楚如何设置我的生产服务器的最佳方式,但我有点卡住如何正确地做到这一点: 目前,我所有的Web应用程序都被dockerified ,我有: 一个nginx前端容器,将请求路由到多个后端容器: 一个Symfony应用程序 两个WordPress的博客 一个NodeJS应用程序 一个用于数据库存储的MySql容器 一个MongoDB容器也是如此 所有这些基础设施都是使用docker-compose开始的。 这工作正常,但它听起来太“monolitihic”对我来说: 我不能停止一个容器而不重新启动所有其他容器。 我无法添加其他Web应用程序,无需重新启动一切 我没有办法在崩溃后自动重启容器… 这是我第一次这样做,你知道一些最佳实践或软件,可以帮助我提高我的生产服务器? 非常感谢 !

无法加载任何PHP文件或使用nginx和php7在日志中看到任何错误

我刚刚在我的服务器上安装了Nginx 1.8和PHP7,试图让它服务于我的应用程序。 当我使我的webroot文件夹索引文件只是返回Hey ,然后我可以看到加载该文本的页面的HTML文件。 但是,当我尝试用index.php文件replaceindex.html文件时,我只是看到一个空白页面,没有错误正在吐口水。 我试图查看/var/log/nginx/access.log和/var/log/nginx/error.log以及我的站点错误日志: /var/log/nginx/my-website-error.log 。 在那里找不到任何错误。 我试着去看看在/var/log/php7.0-fpm.logfind的PHP7.0-FPM错误日志,但是没有。 我一定要编辑我的/etc/php/7.0/fpm/php.ini文件,并设置display_erorrs = On和error_reporting=E_ALL 。 我仍然看不到任何错误,我不能执行任何PHP代码。 通过php执行到FPM的我的Nginxconfiguration文件看起来像: location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; fastcgi_index index.php; include fastcgi_params; } 任何想法发生了什么?

nginx:“/root/index.html”禁止(13:权限被拒绝)

我正在安装nginx。 以下是我遵循的步骤: 在/根目录下创buildindex.html文件 编辑/etc/nginx/nginx.conf。 编辑后它看起来像这样: user nginx; worker_processes 1; error_log /var/log/nginx/error.log; … http { … server { listen 80 default_server; server_name my_domain_name.com; root /root; … } 下面这个问题我放弃了权限: gpasswd – 一个nginx的根 chmod g + x / root (抱歉,无法正确格式化为代码) 我重新启动服务器: 服务nginx重启 我访问了my_domain_name.com,得到了403错误。 /var/log/nginx/error.log内容: "/root/index.html" is forbidden (13: Permission denied), client: 117.211.86.108, server: my_domain_name.com, request: "GET / HTTP/1.1", […]

如何设置NGINX部署不同的单页面应用程序(SPA的…即静态文件)取决于位置(在同一server_name下)子路线

我的目标是在同一个域下设置两个不同的单页面应用程序(SPA),在这里我们显示对应于所请求位置/path的SPA。 我也想默认的两个SPA的/位置之一。 而且,如果有人在浏览器中inputurl,我希望SPA追加的html5历史位置path实际上路由到正确的位置。 用一个例子来解释比较容易。 例: 用户导航到mydomain.com/app,服务器提供/ home / user / app / dist下的内容(有index.html和所有js / css资源)(使用linux so / home / user就是我的主目录path)。 用户导航到mydomain.com/auth,服务器提供/ home / user / auth / dist下的内容 用户导航到/,服务器提供/ home / user / auth / dist下的内容(默认情况下,导航到auth) 用户导航到mydomain.com/auth/login,服务器再次提供/ home / user / auth / dist文件夹下的内容,但该URL保留mydomain.com/auth/login,以便auth SPA可以用作路由 用户导航到mydomain.com/auth/signup,然后服务器又一次为/ home / user / auth / dist文件夹下的内容提供服务,URL保留mydomain.com/auth/login,以便auth SPA可以使用路线 用户导航到mydomain.com/app/home,服务器提供/ […]

Nginx / Unicorn / Rails连接超时

我有一个与Nginx /独angular兽运行的Rails应用程序。 链接到我的nginx.conf和unicorn.rb 我正在通过capistrano进行部署,最初的应用程序运行良好。 然而,经过一段时间(即约10-20分钟)没有请求,则传入的请求将遇到问题。 (返回错误500页出错页面)。 Rails production.log显示它收到请求,但是我什么也没做: I, [2015-01-29T13:12:03.725959 #24176] INFO — : Started GET "/" for xxx.18.170.101 at 2015-01-29 13:12:03 +0000 nginx的access.log xxx.18.170.101 – – [29/Jan/2015:13:14:33 +0000] "GET / HTTP/1.1" 504 1477 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.91 Safari/537.36" nginx'error.log 2015/01/29 13:14:33 [error] 23786#0: *20 upstream timed out (110: […]