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.
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 ).
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
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
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.
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.