标签: web-server

apache2:为什么 <LimitExcept> 参数导致虚拟主机标签中的“此处拒绝不允许”错误?

我已经向 stackoverflow提出了同样的问题,但后来我认为它可能与此处更相关。

在 apache 的 httpd.confVirtualHost标签之间,我把<LimitExcept>表达式如下:

<VirtualHost *:80>
 ServerName geopreprod.xxx.com.tr

 <LimitExcept HEAD POST GET>
     Deny from all
 </LimitExcept> 

  ProxyRequests Off
  ProxyPreserveHost On

  <Proxy *>
    Order deny,allow
    Allow from all
  </Proxy>

  ProxyPass / http://XXXXXXXX...
  ProxyPassReverse / http://XXXXXXXX....
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

然后 apache Web 服务器无法通过给出以下错误启动:

Syntax error on line 513 of XXXXX/httpd.conf:
deny not allowed here
Run Code Online (Sandbox Code Playgroud)

虽然它说<LimitExcept>可以VirtualHost官方文档的标签中使用为什么我会收到这个错误?

在 apache 文档中它说:

Context:    server config, virtual host, directory, .htaccess
Run Code Online (Sandbox Code Playgroud)

configuration web-server apache-2.2

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

如何在 Nginx 中允许特定 IP 的 URL(不是目录!)

我试图拒绝访问我们在 Nginx 上运行的网站上的特定 URL,但允许从特定 IP 访问它,我一直在尝试使用 Location 摆弄,但似乎只是试图找到一个正确的目录而不是 URL。

这是我想出的,但只是返回了 404。

location /specificurl {
       root /var/www/site1.com/current;
       allow 123.123.123.123;
       deny all;
       }
Run Code Online (Sandbox Code Playgroud)

nginx web-server

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

支持 websockets 的 Linux 网络服务器?

我目前在尝试使用socket.io需要来自服务器的 websockets 支持(反向代理)时遇到很多困难。

我想知道,是否还有其他支持 websockets 的 Web 服务器?

我在使用 nginx 时遇到的错误:

2012/05/22 02:19:34 [error] 28159#0: *5 connect() failed (111: Connection refused) while connecting to upstream, 
client: my.ip.ad.dr,
server: localhost,
request: "GET /socket.io/1/?t=1337653158192 HTTP/1.1", 
upstream: "http://127.0.0.1:3000/socket.io/1/?t=1337653158192", 
host: "lifestore.brainpad.org", referrer: "http://mywebad.dr/"
Run Code Online (Sandbox Code Playgroud)

nginx web-server socket

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

在反向代理配置中处理 nginx 中的错误

我使用 nginx 作为我现有 Web 服务器的反向代理。我只想管理一组自定义错误页面,最好在 nginx 内管理,因为这是最接近客户端的级别。

现在我可以使用error_pagesproxy_intercept_errors设置。然而:

  1. 在 400(错误请求)错误的情况下,我需要底层 Web 服务器能够通过一些 JSON 正文内容,详细说明请求错误的原因。所以我只需要一种禁用proxy_intercept_errors400 状态代码的方法。

  2. 对于任何状态代码,我不想显示默认的 nginx 错误页面。现在从我所看到的,为了实现这一点,我需要明确列出可以想象的所有可能的状态代码,并为其提供一个错误页面?例如,而不仅仅是通配符 500 以上的所有错误。

我的问题是 - 上述两个问题是否可以在 nginx 本身内解决?如果没有,上述问题是否有明显的解决方案?

nginx web-server

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

当根目录不存在时为 nginx 创建回退错误页面

我在我的 nginx 服务器上设置了一个任意域配置 - 以减少打开新站点/域时所需的工作量。这个配置允许我简单地/usr/share/nginx/sites/用域/子域的名称创建一个文件夹,然后它就可以工作了。™

server {
    # Catch all domains starting with only "www." and boot them to non "www." domain.
    listen 80;
    server_name ~^www\.(.*)$;
    return 301 $scheme://$1$request_uri;
}

server {
    # Catch all domains that do not start with "www."
    listen 80;
    server_name ~^(?!www\.).+;
    client_max_body_size 20M;

    # Send all requests to the appropriate host
    root /usr/share/nginx/sites/$host;

    index index.html index.htm index.php;
    location / { 
        try_files $uri $uri/ =404;
    }

    recursive_error_pages on;
    error_page 400 /errorpages/error.php?e=400&u=$uri&h=$host&s=$scheme;
    error_page 401 /errorpages/error.php?e=401&u=$uri&h=$host&s=$scheme; …
Run Code Online (Sandbox Code Playgroud)

linux debian configuration nginx web-server

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

Wordpress + nginx 无限重定向循环

我在使用 wordpress 站点进入管理区域时遇到问题。

如果我输入:http : //www.beshan.com/wp-admin/

我得到一个无限重定向循环,但如果我输入:

http://www.beshan.com/wp-admin/index.php

有用

我客户端的服务器是centos linux + nginx

nginx.conf:

user  www www;
worker_processes 8;
error_log  logs/nginx_error.log  crit;
#pid        /usr/local/webserver/nginx/nginx.pid;

#Specifies the value for maximum file descriptors that can be opened by this process. 
worker_rlimit_nofile 51200;
events 
{
  use epoll;
  worker_connections 51200;
}

http 
{
  include       mime.types;
  default_type  application/octet-stream;
  #charset  gb2312;
  server_names_hash_bucket_size 128;
  client_header_buffer_size 32k;
  large_client_header_buffers 4 32k;
  client_max_body_size 8m;

  sendfile on;
  tcp_nopush     on;

  keepalive_timeout 60;

  tcp_nodelay on;
  server_tokens off;

  fastcgi_connect_timeout 300;
  fastcgi_send_timeout 300;
  fastcgi_read_timeout …
Run Code Online (Sandbox Code Playgroud)

nginx web-server wordpress

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

将 TLS 证书和私钥放在同一个文件中有什么影响?

我注意到许多不同的 Web 和邮件服务器软件允许或要求您在单个 .pem 文件中提供 TLS 证书(包括服务器证书、CA 中间证书和 CA 根证书)和私钥。

因此,服务器将证书发送给每个尝试连接的客户端,但是,当然,您希望保持您的私钥安全和保密。那么,当它们都在同一个文件中时,这是如何工作的呢?软件是否知道只发送证书部分而从不发送私钥,即使它们在同一个文件中?

谢谢你。

ssl email-server web-server ssl-certificate tls

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

带有 JSON 响应的 Nginx 错误页面

我正在尝试为在维护期间向我的应用程序提出请求的客户提供维护页面。以下是我为此目的的 nginx 配置。

server {
  recursive_error_pages on;
  listen 80;
   ...

  if (-f $document_root/maintenance.html) {
    return 503;
  }

  error_page 404 /404.html;
  error_page 500 502 504 /500.html;
  error_page 503 @503;

  location = /404.html {
    root $document_root;
  }
  location = /500.html {
    root $document_root;
  }
  location @503 {
    error_page 405 =/maintenance.html;
    if (-f $request_filename) {
      break;
    }
    rewrite ^(.*)$ /maintenance.html break;
  }
}
Run Code Online (Sandbox Code Playgroud)

假设我通过创建$document_root/maintenance.html. 这个文件中,正确地,是当用户与请求服务Accept的报头text/html

$ curl http://server.com/ -i -v -X GET -H "Accept: text/html"
* Adding …
Run Code Online (Sandbox Code Playgroud)

linux nginx web-server

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

nginx 配置因 SSL 密钥/pem 失败(特殊情况)

我正在尝试使用经过认证的 ssl 密钥在我的 nginx 反向代理上安装 SSL,但是当我尝试重新启动服务器时收到此消息:

Restarting nginx: [emerg]: SSL_CTX_use_PrivateKey_file("/etc/nginx/conf.d/cert.key") failed (SSL: error:0906D06C:PEM routines:PEM_read_bio:no start line error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib)
configuration file /etc/nginx/nginx.conf test failed
Run Code Online (Sandbox Code Playgroud)

每个文件都是 root:root 有 600 个权限我已经测试了证书并且它们通过这个网站进行了验证:http ://ssltools.com/cert_key_match

我的键中没有尾随奇怪的字符,每行有 64 个字符

这是我的配置文件

server {
    listen   443;
    server_name     my.domain.com;
    ssl on;
    ssl_certificate      conf.d/cert.pem;
    ssl_certificate_key  conf.d/cert.key;

    location / {
         proxy_pass         http://upstream1;
         proxy_redirect     off;
         proxy_buffering    off;
         proxy_set_header        Host            $host;
         proxy_set_header        X-Real-IP       $remote_addr;
         proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    }
Run Code Online (Sandbox Code Playgroud)

}

有任何想法吗?谢谢

ssl configuration nginx web-server reverse-proxy

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

为什么并发下载速度更快

许多下载管理器(例如thisthisthis)支持通过多个并行连接(每个线程一个)下载文件。其概念是每个连接将单独下载文件的一部分。
例如,如果有 5 个连接,则第一个连接将下载文件的前 0-20% 部分,第二个连接将下载文件的 20-40% 部分,依此类推。

同样,在服务器端,将有 5 个线程,其中一个线程将并行读取文件的 20%。
但是,我认为尝试使用多个线程同时读取单个文件实际上会使下载速度明显变慢,因为机械磁盘的读取磁头将不得不比以前进行更多的搜索。
即使我们假设磁盘控制器排队机制足够智能,可以在一次顺序读取中将所有 5 个多部分请求一起批处理到单个文件,但与仅在一个线程中执行读取然后为该文件提供服务相比,它并没有给我们带来任何优势。仅通过 1 个 http 连接即可文件。

那么如何才能更快地并行下载文件呢?

networking performance hard-drive web-server multi-threading

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