具有主域的Nginx 80可以正常工作,带子域的Apache2 8080为什么不起作用(从80端口发出400错误请求)?

时间:2019-05-15 05:16:52

标签: apache nginx

我想在一台服务器上运行两个网站,www.domain.com的80端口为nginx,sub.domain.com的8080端口为apache2

现在nginx in port 80可以正常工作了(IP地址和www.domain.com都可以),我只能访问apache2 in port 8080的IP地址(只有localhost:8080有效),但是当我单击sub.domain时。 com,我收到一个400错误的请求,我注意到它仍然在80端口上运行。

我已经80的文件中将8080更改为/etc/apache2/ports.conf,这很奇怪

下面是/etc/apache2/sites-available/000-default.conf

的部分代码
<VirtualHost *:8080>
        ServerAdmin webmaster@localhost
        ServerName sub.domain.com
        <Directory "/var/www/html">
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

    DocumentRoot /var/www/html
    ........
<VirtualHost>

Apache2出问题了吗?具有80端口nginx的www.domain.com可以正常工作,是否需要更改nginx的配置?我粘贴了/etc/nginx/sites-available/www.domain.com的所有代码,如下所示:

upstream app_server {
    server unix:/home/wtf/run/gunicorn.sock fail_timeout=0;
}
server {
    listen 80;

    # add here the ip address of your server
    # or a domain pointing to that ip (like example.com or www.example.com)
    server_name www.domain.com;

    keepalive_timeout 5;
    client_max_body_size 1G;

    access_log /home/wtf/logs/nginx-access.log;
    error_log /home/wtf/logs/nginx-error.log;

    location /static/ {
        alias /home/wtf/donthack/static/;
    }

    location /media/ {
        alias /home/wtf/donthack/media/;
    }

    # checks for static file, if not found proxy to app
    location / {
        try_files $uri @proxy_to_app;
    }

    location @proxy_to_app {
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_redirect off;
      proxy_pass http://app_server;
    }
}

任何建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

  1. 您已重新启动apache服务器进程吗?
    重新加载服务不足以更改侦听端口。您可以使用 lsof -i TCP:8080 -s TCP:LISTEN 来确保httpd进程正在侦听您的新端口。

  2. 如果apache版本太低,您是否在conf中加入了 NameVirtualHost *:8080