ubuntu configure - Cómo iniciar nginx a través de un puerto diferente(que no sea 80)




uninstall debian (4)

Hola, soy un novato en nginx, traté de configurarlo en mi servidor (ejecutando Ubuntu 4), que ya tiene Apache ejecutándose.

Entonces, después apt-get install , intenté iniciar nginx. Entonces recibo el mensaje así:

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)

Eso tiene sentido ya que Apache está usando el puerto 80.

Luego intenté modificar nginx.conf , hice referencia a algunos artículos, así que lo cambié así:

   server {

        listen       8080;

        location / {
         proxy_pass  http://xx.xx.xx.xx: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";
        }

Después de guardar esto e intentar iniciar nginx nuevamente, sigo recibiendo el mismo error que anteriormente. Realmente no puedo encontrar una publicación relacionada sobre esto, ¿alguna buena gente podría sacar algo de luz?

Gracias por adelantado :)

=============================================== =======================

Debería publicar todo el contenido en conf aquí:

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;
     }
 }

Básicamente, no cambié nada excepto agregar la parte del servidor.


Answers

Tendrá que cambiar el puerto de configuración de Apache o Nginx. Después de hacer esto, deberá reiniciar los servidores reconfigurados, utilizando el comando 'servicio' que utilizó.

apache

Editar

sudo subl /etc/apache2/ports.conf 

y cambie el 80 en la siguiente línea a algo diferente:

Listen 80

Si simplemente cambia el puerto o agrega más puertos aquí, probablemente también deba cambiar la declaración de VirtualHost en

sudo subl /etc/apache2/sites-enabled/000-default.conf

y cambie el 80 en la siguiente línea a algo diferente:

<VirtualHost *:80>

luego reinicie por:

sudo service apache2 restart

Nginx

Editar

/etc/nginx/sites-enabled/default

y cambie el 80 en la siguiente línea:

listen 80;

luego reinicie por:

sudo service nginx restart

Tienes que ir a / etc / nginx / sites-enabled / y si esta es la configuración predeterminada, entonces debe haber un archivo llamado "default".

Edite ese archivo y póngalo (si está dispuesto a poner 81 como su puerto para nginx)

servidor {listen 81; }

El inicio del servidor

sudo service nginx start

Luego acceda a localhost: 81


Siga esto: abra su archivo de configuración

vi /etc/nginx/conf.d/default.conf

Cambiar el número de puerto en el que está escuchando;

listen       81;
server_name  localhost;

Agregue una regla a iptables

 vi /etc/sysconfig/iptables 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 81 -j ACCEPT

Reiniciar IPtables

 service iptables restart;

Reinicie el servidor nginx

service nginx restart

Acceda a los archivos del servidor nginx en el puerto 81


Una versión de python modificada del script de PHP de @ danack. Genera todos los archivos y carpetas que viven dentro de la build/ en el directorio padre, reemplazando todas las coincidencias de {{placeholder}} . Necesita hacer un cd en build/ antes de ejecutar el script.

Estructura de archivo

build/
-- (files/folders you want to generate)
-- build.py

sites-available/...
sites-enabled/...
nginx.conf
...

build.py

import os, re

# Configurations
target = os.path.join('.', '..')
variables = {
  'placeholder': 'your replacement here'
}


# Loop files
def loop(cb, subdir=''):
  dir = os.path.join('.', subdir);

  for name in os.listdir(dir):
    file = os.path.join(dir, name)
    newsubdir = os.path.join(subdir, name)

    if name == 'build.py': continue
    if os.path.isdir(file): loop(cb, newsubdir)
    else: cb(subdir, name)


# Update file
def replacer(subdir, name):
  dir  = os.path.join(target, subdir)
  file = os.path.join(dir, name)
  oldfile = os.path.join('.', subdir, name)

  with open(oldfile, "r") as fin:
    data = fin.read()

  for key, replacement in variables.iteritems():
    data = re.sub(r"{{\s*" + key + "\s*}}", replacement, data)

  if not os.path.exists(dir):
    os.makedirs(dir)

  with open(file, "w") as fout:
    fout.write(data)


# Start variable replacements.
loop(replacer)




ubuntu nginx