Как запустить nginx через другой порт (кроме 80)

Привет, я новичок в nginx, я пытался настроить его на своем сервере (работающем под Ubuntu 4), на котором уже работает apache.

Итак, после того как я apt-get install это я пытался запустить nginx. Затем я получаю сообщение, как это:

Starting nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
configuration file /etc/nginx/nginx.conf test is successful
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)

Это имеет смысл, поскольку Apache использует порт 80.

Затем я попытался изменить nginx.confЯ ссылаюсь на некоторые статьи, поэтому я изменил это так:

   server {

        listen       8080;

        location / {
         proxy_pass  http://94.143.9.34:9500;
         proxy_set_header   Host             $host:8080;
         proxy_set_header   X-Real-IP        $remote_addr;
         proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
         proxy_set_header Via    "nginx";
        }

После сохранения и повторной попытки запуска nginx я получаю ту же ошибку, что и ранее. Я не могу найти соответствующий пост об этом, могут ли какие-нибудь хорошие люди пролить свет?

Я должен опубликовать весь контент в Conf здесь:

user www-data;
worker_processes  1;

error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
    # multi_accept on;
}

http {
    include       /etc/nginx/mime.types;

    access_log  /var/log/nginx/access.log;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    tcp_nodelay        on;

    gzip  on;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;

   server {

        listen       81;

        location / {
         proxy_pass  http://94.143.9.34:9500;
         proxy_set_header   Host             $host:81;
         proxy_set_header   X-Real-IP        $remote_addr;
         proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
         proxy_set_header Via    "nginx";
        }


    }
}

 mail {
      # See sample authentication script at:
      # http://wiki.nginx.org/NginxImapAuthenticateWithApachePhpScript

      auth_http localhost/auth.php;
      pop3_capabilities "TOP" "USER";
      imap_capabilities "IMAP4rev1" "UIDPLUS";

     server {
         listen     localhost:110;
         protocol   pop3;
         proxy      on;
     }

     server {
         listen     localhost:143;
         protocol   imap;
         proxy      on;
     }
 }

В основном я ничего не изменил, кроме добавления серверной части.

2 ответа

Похоже, что вы оставили конфигурацию сервера по умолчанию в sites_enabled папка.

В рассматриваемом файле есть закомментированные строки, но не все из них - конфигурация по умолчанию запутана между ними. Я предлагаю вам удалить весь файл (или первую часть, если все ваши конфигурации находятся в одном файле).

Однако, если вы не можете найти его там, я предлагаю вам выполнить поиск 80. Он обязательно должен быть где-то в конфигурационных файлах nginx.

Я использую VMWare и имел те же ошибки.

Я удалил свою конфигурацию по умолчанию для sites_enabled, но также удалил:

listen   [::]:80

... из моих конфигурационных файлов (ранее необходимых для MacPorts). Я не уверен, какой порт VMWare слушает, но ему не понравилось 80!

Другие вопросы по тегам