标签: nginx

使用 apt-get 安装可选的 Nginx 模块

我目前通过 Nginx 站点上的说明安装了 Nginx:

nginx=stable
sudo su -
add-apt-repository ppa:nginx/$nginx
apt-get update 
apt-get install
Run Code Online (Sandbox Code Playgroud)

我已经配置了 Nginx,它已经运行了一段时间。现在,我想添加一些自定义模块——比如说,上传进度模块。此模块的说明说要添加--add-module=path/to/nginx_uploadprogress_module到您的./configure命令中。但是,我没有从源代码安装 Nginx。

处理这种情况的最佳方法是什么?是否可以告诉 APT 从源代码编译并将选项传递给./configure?我可以在现有安装上编译吗?路径怎么样——我如何让它们匹配?还是我必须删除 APT 托管版本并重新开始?

package-management nginx apt

43
推荐指数
2
解决办法
9万
查看次数

Nginx vs Apache 作为反向代理,选择哪一个

此类问题可能已在此处提出,但我找不到与我的问题真正相符的问题。听说nginx性能相当可观,但是Apache有更多文档,社区(阅读:专家)寻求帮助

现在我想知道的是,两个 Web 服务器在性能、配置的简单性、定制级别等方面的比较如何。在 vps 环境中作为反向代理服务器??

我仍在权衡两者之间的 ruby​​ web 应用程序(不是 ROR)与瘦(ruby web 服务器之一)一起使用。
具体答案将不胜感激。不触及红宝石部分的一般答案是可以的。我仍然是 Web 服务器管理方面的菜鸟。

nginx reverse-proxy apache-2.2

41
推荐指数
3
解决办法
4万
查看次数

如何减少 TIME_WAIT 中的套接字数量?

Ubuntu 服务器 10.04.1 x86

我有一台在 nginx 后面带有 FCGI HTTP 服务的机器,它为许多不同的客户端提供许多小的 HTTP 请求。(高峰时段每秒大约 230 个请求,平均响应大小为 650 字节,每天有数百万个不同的客户端。)

结果,我有很多套接字,挂在 TIME_WAIT 中(使用下面的 TCP 设置捕获图表):

时间的等待

我想减少套接字的数量。

除了这个我还能做什么?

$ cat /proc/sys/net/ipv4/tcp_fin_timeout
1
$ cat /proc/sys/net/ipv4/tcp_tw_recycle
1
$ cat /proc/sys/net/ipv4/tcp_tw_reuse
1

更新:有关机器上实际服务布局的一些详细信息:

客户端-----TCP-socket--> nginx(负载均衡器反向代理) 
       -----TCP-socket--> nginx (worker) 
       --domain-socket--> fcgi-software
                          --single-persistent-TCP-socket--> Redis
                          --single-persistent-TCP-socket--> MySQL (其他机器)

我可能应该切换负载平衡器 --> 工作线程连接到域套接字,但关于 TIME_WAIT 套接字的问题仍然存在——我计划很快在单独的机器上添加第二个工作线程。在这种情况下将无法使用域套接字。

ubuntu nginx linux-networking high-load

41
推荐指数
1
解决办法
8万
查看次数

如何禁用 Nginx 日志记录?

我在配置文件中有以下内容

server {
    listen       80;
    server_name  _;
    access_log  /var/log/nginx/access.log  main;
  ...

server {
    listen       80;
    server_name  example.com
    access_log  off;
    error_log off;
Run Code Online (Sandbox Code Playgroud)

但它仍然保持记录example.com虚拟主机。我究竟做错了什么?

nginx

41
推荐指数
4
解决办法
11万
查看次数

Nginx 中每个虚拟主机的用户

是否可以在 nginx 中为每个虚拟主机配置不同的用户?

就像是

 server {
     user myprojectuser myprojectgroup;
     ...
 }
Run Code Online (Sandbox Code Playgroud)

security nginx

40
推荐指数
3
解决办法
4万
查看次数

错误代码:ssl_error_rx_record_too_long

我有具有以下设置的 nginx:

 server {
        listen       80;
        server_name  site.com www.site.com;
        root /home/site/public_html;

        listen       443;
        #server_name  site.com www.site.com;
        #root /home/site/public_html;
        ssl_certificate      /root/site.pem;
        ssl_certificate_key  /root/site.key;
Run Code Online (Sandbox Code Playgroud)

但是,当我查看 SSL 连接时,我得到:

An error occurred during a connection to grewpler.com.

SSL received a record that exceeded the maximum permissible length.

(Error code: ssl_error_rx_record_too_long)
Run Code Online (Sandbox Code Playgroud)

TrustWave Premium SSL用作 SSL 证书颁发机构。

linux ssl nginx ssl-certificate certificate-authority

40
推荐指数
1
解决办法
6万
查看次数

如何在错误日志之外进一步调试 nginx?

我目前正在接收一个相当大的 HTTP 洪水,它导致我的 nginx 反向代理产生一个 502 错误网关。

我有一个前端服务器运行 nginx 作为后端服务器的代理,但它只是收到一堆connect() failed (110: Connection timed out) while connecting to upstream错误。成吨的。如果我绕过代理服务器连接到后端,我可以很好地运行该站点,所以我知道它在某个地方的反向代理中。但是,我不知道如何确定它超时的原因。

有什么帮助吗?

在 CentOS 6.2 上运行 nginx 1.2.3

nginx reverse-proxy

39
推荐指数
3
解决办法
6万
查看次数

Nginx“默认”服务器?

我有一个带有许多启用的服务器块的 Nginx。每个服务器响应 1 个规范域,并且可以将 1 个或多个转发到该规范 URL。我至少有一台服务器(还没有检查所有服务器),如果我输入一个指向这个框的不存在的域,Nginx 会显示一个它选择的站点(总是同一个站点,但不是一个我在后面)。

我已经浏览了我总是登陆的站点的配置文件,但没有看到任何明显的东西可以将其识别为任何类型的默认站点,但它就在那里,当我胖手指一个 URL 时总是显示出来。

关于我应该寻找什么来追踪这个问题的任何想法?

nginx

39
推荐指数
2
解决办法
6万
查看次数

Nginx:多个路径的位置正则表达式

我在 nginx 配置中有两个位置可以工作:

location ^~ /media/ {
  proxy_pass http://backend.example.com;
}

location ^~ /static/ {
  proxy_pass http://backend.example.com;
}
Run Code Online (Sandbox Code Playgroud)

如何将这两者合并到一个位置?

我已经做了什么:

我试过这个建议

location ~ ^/(static|media)/ {
  proxy_pass http://backend.example.com;
}
Run Code Online (Sandbox Code Playgroud)

但这对我不起作用。

此外,当我不使用后端时,以下配置运行正常:

location ~ ^/(static|media)/ {
  root /home/project_root;
}
Run Code Online (Sandbox Code Playgroud)

更新(日志中的一些字符串)

xx.xx.xx.xx - - [31/Dec/2013:13:48:18 +0000] "GET /content/11160/ HTTP/1.1" 200 5310 "-" "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 OPR/18.0.1284.68"
xx.xx.xx.xx - - [31/Dec/2013:13:48:18 +0000] "GET /static/font-awesome/css/font-awesome.min.css HTTP/1.1" 404 200 "http://www.example.com/content/11160/" "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, …
Run Code Online (Sandbox Code Playgroud)

nginx regex

39
推荐指数
2
解决办法
12万
查看次数

如何在 Mac OS X 上停止 nginx

我已经从 MacPorts 在我的 Mac 上安装并配置了 nginx 服务器

  1. sudo port install nginx
  2. 按照port安装控制台的建议,为nginx创建launchd启动项,然后启动服务器。
  3. 更名nginx.conf.examplenginx.conf并改名mime.types.examplemime.types

它工作正常,但我无法阻止它。

我试过了sudo nginx -s stop,但这并没有停止服务器,我仍然可以看到“欢迎使用 nginx!” 页面在我的浏览器上http://localhost/;此外,我仍然看到 nginx 的主进程和工作进程ps -e | grep nginx

在 Mac 上启动/停止 nginx 的最佳方法是什么?

顺便说一句,我添加了“守护进程关闭”;进入 nginx.conf - 根据各种资源的推荐。

nginx daemon mac-osx

37
推荐指数
3
解决办法
10万
查看次数