web-dev-qa-db-fra.com

Comment démarrer nginx via un autre port (autre que 80)

Bonjour, je suis un débutant sur nginx, j'ai essayé de le configurer sur mon serveur (sous Ubuntu 4), sur lequel Apache est déjà en cours d'exécution.

Donc, après apt-get install, j'ai essayé de démarrer nginx. Ensuite, je reçois le message comme ceci:

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)

Cela a du sens puisque Apache utilise le port 80.

Ensuite, j'ai essayé de modifier nginx.conf, j'ai référencé quelques articles, je l'ai donc modifié comme suit:

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

Après avoir sauvegardé ceci et essayé de redémarrer nginx, j'obtiens toujours la même erreur que précédemment. Je ne trouve pas vraiment de message connexe à ce sujet. Est-ce que de bonnes personnes pourraient faire de la lumière?

Merci d'avance :)

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

Je devrais poster tout le contenu en conf ici:

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

En gros, je n’ai rien changé à part l’ajout de la partie serveur.

116
Zhao Peng

Vous devez aller au /etc/nginx/sites-enabled/ et s'il s'agit de la configuration par défaut, alors il devrait y avoir un fichier nommé: default.

Editez ce fichier en définissant votre port souhaité; dans l'extrait ci-dessous, nous servons l'instance Nginx sur le port 81.

server {
    listen 81;
}

Pour démarrer le serveur, exécutez la ligne de commande ci-dessous;

Sudo service nginx start

Vous pouvez maintenant accéder à votre application sur le port 81 (pour localhost, http: // localhost: 81 ).

165
Chamith Malinda

Vous devrez changer le port de configuration d'Apache ou de Nginx. Cela fait, vous devrez redémarrer les serveurs reconfigurés à l'aide de la commande 'service' que vous avez utilisée.


Apache

Modifier

Sudo subl /etc/Apache2/ports.conf 

et changez le 80 sur la ligne suivante en quelque chose de différent:

Listen 80

Si vous modifiez simplement le port ou ajoutez d'autres ports ici, vous devrez probablement également modifier l'instruction VirtualHost dans

Sudo subl /etc/Apache2/sites-enabled/000-default.conf

et changez le 80 sur la ligne suivante en quelque chose de différent:

<VirtualHost *:80>

puis redémarrez par:

Sudo service Apache2 restart

Nginx

Modifier

/etc/nginx/sites-enabled/default

et changez le 80 sur la ligne suivante:

listen 80;

puis redémarrez par:

Sudo service nginx restart
22

Suivez ceci: Ouvrez votre fichier de configuration

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

Changer le numéro de port sur lequel vous écoutez;

listen       81;
server_name  localhost;

Ajouter une règle à iptables

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

Redémarrer IPtables

 service iptables restart;

Redémarrez le serveur nginx

service nginx restart

Accéder aux fichiers du serveur nginx sur le port 81

19
sinshiva

Si vous êtes sur Windows, les paramètres de serveur associés au port sont présents dans le fichier nginx.conf à <chemin d'installation de nginx>/conf .

server {
    listen       80;
    server_name  localhost;
....

Modifiez le numéro de port et redémarrez l'instance.

3
skvp

Si vous rencontrez ce problème lorsque vous utilisez Docker, veillez à mapper les bons numéros de port. Si vous mappez le port 81:80 lorsque vous utilisez docker (ou via docker-compose.yml), votre nginx doit écouter sur le port 80 not 81, car docker effectue déjà le mappage.

J'ai moi-même passé pas mal de temps sur cette question, alors espérons que cela pourra aider les futurs googlers.

0
thephper