服务器安装了apache。如何在它旁边安装 nginx?

sha*_*bda 5 nginx apache-2.2

Apache 已安装,主要用于提供 Django/Python 内容。我想安装 nginx 来提供静态内容。怎么做,什么是好的配置。

我在 Ubuntu 上,Apache 是通过 apt-get 安装的。

pQd*_*pQd 5

  1. 第一个选项:你的IP地址很少吗?将 apache 绑定到其中一个,将 nginx 绑定到另一个。

    在 Debian 世界

    对于 /etc/apache2/ports.conf 中的 apache 包括:

    Listen 1.1.2.3:80
    
    Run Code Online (Sandbox Code Playgroud)

    在 /etc/apache2/sites-enabled 中的 vhost 文件中更改:

    NameVirtualHost 1.1.2.3:80; 
    <VirtualHost 1.1.2.3:80>
    ..
    <VirtualHost/>
    
    Run Code Online (Sandbox Code Playgroud)

    对于 /etc/nginx/sites-enabled/ 中的 nginx 添加:

    listen 1.1.2.4:80
    
    Run Code Online (Sandbox Code Playgroud)
  2. 第二个选项:移动 apache 以侦听不同的端口 [文件,如上所述。例如,告诉 apache 监听 127.0.0.1:8080 ] 并指示 nginx 在由 nginx 提供 /static/ 服务时将动态流量反向代理到您的 apache - 例如:

    server {
     listen   1.1.2.3:80;
     server_name  some.name another.dname;
    
     access_log  /var/log/nginx/something-access.log;
    
     location / {
      proxy_pass http://localhost:8080;
      proxy_redirect 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;
     }
     location ~* ^.+\.(jpg|js|jpeg|png)$ {
      root /some/where/on/your/disks;
     }
    
    ; put your static hosting config here.
    }
    
    Run Code Online (Sandbox Code Playgroud)

顺便说一句 - 考虑将静态内容放在另一个域上。这应该会稍微提高最终用户的速度。