Not able to restart nginx - linux

I try to restart my nginx server by the command.
sudo service nginx restart.
It gives me a error
* Restarting nginx nginx[fail]
When I check in error.log it provides me with the error
2016/04/24 06:01:45 [emerg] 12852#0: bind() to 0.0.0.0:80 failed (98: Address already in use)
2016/04/24 06:01:45 [emerg] 12852#0: bind() to 0.0.0.0:80 failed (98: Address already in use)
2016/04/24 06:01:45 [emerg] 12852#0: bind() to 0.0.0.0:80 failed (98: Address already in use)
2016/04/24 06:01:45 [emerg] 12852#0: bind() to 0.0.0.0:80 failed (98: Address already in use)
2016/04/24 06:01:45 [emerg] 12852#0: bind() to 0.0.0.0:80 failed (98: Address already in use)
2016/04/24 06:01:45 [emerg] 12852#0: still could not bind()
2016/04/24 06:13:49 [alert] 15033#0: mmap(MAP_ANON|MAP_SHARED, 52428800) failed (12: Cannot allocate memory)
How to fix this?

You already have a process that listens on that port. It might be apache for example, or another web server. Close that and start nginx

Related

Nginx start failed - how I can repair that problem?

I'm a little bit newbie. I've got started server few months ago. Everything was okay but now on server I can't even echo something. How Can I repair nginx server?
My debian
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 10 (buster)
Release: 10
Codename: buster
root#debian:/home/maly#
and nginx version
nginx version: nginx/1.14.2
that's my status for nginx
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/nginx.service.d
└─override.conf
Active: failed (Result: exit-code) since Sat 2021-11-06 19:34:43 CET; 17min ago
Docs: man:nginx(8)
lis 06 19:34:41 debian nginx[17186]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address al
lis 06 19:34:41 debian nginx[17186]: nginx: [emerg] bind() to [::]:80 failed (98: Address alrea
lis 06 19:34:42 debian nginx[17186]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address al
lis 06 19:34:42 debian nginx[17186]: nginx: [emerg] bind() to [::]:80 failed (98: Address alrea
lis 06 19:34:42 debian nginx[17186]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address al
lis 06 19:34:42 debian nginx[17186]: nginx: [emerg] bind() to [::]:80 failed (98: Address alrea
lis 06 19:34:43 debian nginx[17186]: nginx: [emerg] still could not bind()
lis 06 19:34:43 debian systemd[1]: nginx.service: Control process exited, code=exited, status=1
lis 06 19:34:43 debian systemd[1]: nginx.service: Failed with result 'exit-code'.
lis 06 19:34:43 debian systemd[1]: Failed to start A high performance web server and a reverse
and there's my try to start a nginx
Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.
The error states to [::]:80 failed, which means that another process on your system is already using port 80. A port can only be occupied by a single process simultaneously, which means you will either have to
close the process running on port 80 (there‘s several ways on how to check which process is using that port, google it for your OS) or
start using Nginx on another port 80 (which is not recommended, since webservers usually run on port 80).

Gitlab ist overlaying all subdomains and even my entire nginx.config

I am pretty new in those server / cloud dev things.
So I rented a vServer and started playing around. First with nginx. I made my own config and all went well, getting the right html files on the right sub-/domains:
server {
listen 80;
server_name beispiel.de;
location / {
root /var/www/beispiel;
index index.html;
}
}
server{
listen 80;
server_name gitlab.beispiel.de;
location / {
root /var/www/beispiel/gitlab;
index index.html;
}
}
Then I wanted to run my own git repo via gitlab, and I installed it like shown this tutorial:
https://www.howtoforge.com/tutorial/how-to-install-gitlab-on-debian-8/#install-the-prerequisites
Gitlab is running smooth. But my problem is now, that it overlays all subdomains as well as the domain itself. My config I wrote earlier seems skipped by some kind of second nginx, installed with gitlab.
I tried to stop it by service nginx stop but as I tried to service nginx start again this was the response:
Job for nginx.service failed. See 'systemctl status nginx.service' and 'journalctl -xn' for details.
So I htop-ed and saw that nginx processes where still runnung. I killed them, but they always autostarted again.
systemctl status nginx.service
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled)
Active: failed (Result: exit-code) since Tue 2019-12-17 14:58:43 CET; 3min 48s ago
Process: 13257 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile
/run/nginx.pid (code=exited, status=0/SUCCESS)
Process: 1539 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited,
status=1/FAILURE)
Process: 1537 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited,
status=0/SUCCESS)
Main PID: 13321 (code=exited, status=0/SUCCESS)
Dec 17 14:58:40 v2201912109976104637.goodsrv.de nginx[1539]: nginx: [emerg] bind() to 0.0.0.0:80
failed (98: Address already...use)
Dec 17 14:58:41 v2201912109976104637.goodsrv.de nginx[1539]: nginx: [emerg] bind() to 0.0.0.0:80
failed (98: Address already...use)
Dec 17 14:58:41 v2201912109976104637.goodsrv.de nginx[1539]: nginx: [emerg] bind() to 0.0.0.0:80
failed (98: Address already...use)
Dec 17 14:58:42 v2201912109976104637.goodsrv.de nginx[1539]: nginx: [emerg] bind() to 0.0.0.0:80
failed (98: Address already...use)
Dec 17 14:58:42 v2201912109976104637.goodsrv.de nginx[1539]: nginx: [emerg] bind() to 0.0.0.0:80
failed (98: Address already...use)
Dec 17 14:58:43 v2201912109976104637.goodsrv.de nginx[1539]: nginx: [emerg] still could not bind()
Dec 17 14:58:43 v2201912109976104637.goodsrv.de systemd[1]: nginx.service: control process exited,
code=exited status=1
Dec 17 14:58:43 v2201912109976104637.goodsrv.de systemd[1]: Failed to start A high performance web
server and a reverse pro...rver.
Dec 17 14:58:43 v2201912109976104637.goodsrv.de systemd[1]: Unit nginx.service entered failed state.
Hint: Some lines were ellipsized, use -l to show in full.
I don't know what to do.
Can anyone help?
Kindly,
a noob :)
After hours of googling and trying I stumbled about this link in gitlab.rb file:
https://docs.gitlab.com/omnibus/settings/nginx.html#using-a-non-bundled-web-server
It explains how to use the by your own installed nginx web server instead.
This solved my problem.
From the error logs, it looks that Old Nginx process is already using the 80 port.
Try /etc/init.d/nginx stop or systemctl stop nginx or /usr/sbin/nginx -s stop to stop old process.

Deploy Laravel Project on Debian Server using Ngnix

So I created an application with laravel, and now I try to host it in a Debian server.
I uploaded all the project laravel found in (/ var / www / html / site)
(site) is the folder that contains all the files app, public, .env ....
Just that there is also a mybb forum that is running in (/ var / www / html / board) and that's another dev who put it so I do not want to do any wrong manipulation that might make the forum down
So before I look how to start a Laravel project on Debian, and I followed the instructions from this tutorial, (Not all because I had for example already installed, PHP 7.3, phpmyadmin)
This is how i set ( sudo vim /etc/nginx/sites-available/mydomain.com )
server {
server_name mydomain.com mydomain.com;
listen 80;
root /var/www/html/site/public;
access_log /var/log/nginx/laravel-access.log;
error_log /var/log/nginx/laravel-error.log;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
and at the end i run this commund
sudo service nginx restart
i get this error
root#ns300976:~# sudo service nginx restart
Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.
so next i try (systemctl status nginx.service) and i get this
root#ns300976:~# sudo service nginx restart
Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.
root#ns300976:~# systemctl status nginx.service
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Wed 2019-11-13 06:37:35 UTC; 40s ago
Docs: man:nginx(8)
Process: 21913 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=1/F
Process: 21911 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, s
nov. 13 06:37:33 ns300976 nginx[21913]: nginx: [emerg] listen() to [::]:80, backlog 511 failed (98:
nov. 13 06:37:34 ns300976 nginx[21913]: nginx: [emerg] listen() to 0.0.0.0:80, backlog 511 failed (9
nov. 13 06:37:34 ns300976 nginx[21913]: nginx: [emerg] listen() to [::]:80, backlog 511 failed (98:
nov. 13 06:37:34 ns300976 nginx[21913]: nginx: [emerg] listen() to 0.0.0.0:80, backlog 511 failed (9
nov. 13 06:37:34 ns300976 nginx[21913]: nginx: [emerg] listen() to [::]:80, backlog 511 failed (98:
nov. 13 06:37:35 ns300976 nginx[21913]: nginx: [emerg] still could not bind()
nov. 13 06:37:35 ns300976 systemd[1]: nginx.service: Control process exited, code=exited status=1
nov. 13 06:37:35 ns300976 systemd[1]: Failed to start A high performance web server and a reverse pr
nov. 13 06:37:35 ns300976 systemd[1]: nginx.service: Unit entered failed state.
nov. 13 06:37:35 ns300976 systemd[1]: nginx.service: Failed with result 'exit-code'.
lines 1-17/17 (END)
next i try (journalctl -xe) and i get this
root#ns300976:~# journalctl -xe
nov. 13 06:59:12 ns300976 sshd[22318]: Failed password for root from 112.85.42.89 port 41078 ssh2
nov. 13 06:59:14 ns300976 sshd[22318]: Failed password for root from 112.85.42.89 port 41078 ssh2
nov. 13 06:59:15 ns300976 sshd[22318]: Received disconnect from 112.85.42.89 port 41078:11: [preaut
nov. 13 06:59:15 ns300`enter code here`976 sshd[22318]: Disconnected from 112.85.42.89 port 41078 [preauth]
nov. 13 06:59:15 ns300976 sshd[22318]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty
nov. 13 07:01:01 ns300976 sudo[22331]: root : TTY=pts/1 ; PWD=/root ; USER=root ; COMMAND=/usr/s
nov. 13 07:01:01 ns300976 sudo[22331]: pam_unix(sudo:session): session opened for user root by root(
nov. 13 07:01:01 ns300976 systemd[1]: Starting A high performance web server and a reverse proxy ser
-- Subject: L'unité (unit) nginx.service a commencé à démarrer
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- L'unité (unit) nginx.service a commencé à démarrer.
nov. 13 07:01:01 ns300976 nginx[22340]: nginx: [emerg] listen() to 0.0.0.0:80, backlog 511 failed (9
nov. 13 07:01:01 ns300976 nginx[22340]: nginx: [emerg] listen() to [::]:80, backlog 511 failed (98:
nov. 13 07:01:02 ns300976 nginx[22340]: nginx: [emerg] listen() to 0.0.0.0:80, backlog 511 failed (9
nov. 13 07:01:02 ns300976 nginx[22340]: nginx: [emerg] listen() to [::]:80, backlog 511 failed (98:
nov. 13 07:01:02 ns300976 nginx[22340]: nginx: [emerg] listen() to 0.0.0.0:80, backlog 511 failed (9
nov. 13 07:01:02 ns300976 nginx[22340]: nginx: [emerg] listen() to [::]:80, backlog 511 failed (98:
nov. 13 07:01:03 ns300976 nginx[22340]: nginx: [emerg] listen() to 0.0.0.0:80, backlog 511 failed (9
nov. 13 07:01:03 ns300976 nginx[22340]: nginx: [emerg] listen() to [::]:80, backlog 511 failed (98:
nov. 13 07:01:03 ns300976 nginx[22340]: nginx: [emerg] listen() to 0.0.0.0:80, backlog 511 failed (9
nov. 13 07:01:03 ns300976 nginx[22340]: nginx: [emerg] listen() to [::]:80, backlog 511 failed (98:
nov. 13 07:01:04 ns300976 nginx[22340]: nginx: [emerg] still could not bind()
nov. 13 07:01:04 ns300976 sudo[22331]: pam_unix(sudo:session): session closed for user root
nov. 13 07:01:04 ns300976 systemd[1]: nginx.service: Control process exited, code=exited status=1
nov. 13 07:01:04 ns300976 systemd[1]: Failed to start A high performance web server and a reverse pr
-- Subject: L'unité (unit) nginx.service a échoué
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- L'unité (unit) nginx.service a échoué, avec le résultat failed.
nov. 13 07:01:04 ns300976 systemd[1]: nginx.service: Unit entered failed state.
nov. 13 07:01:04 ns300976 systemd[1]: nginx.service: Failed with result 'exit-code'.
this is the first time I have been working with Linux and looking for solutions I have suspected the apache2 which blocks the port 80
but by doing a kill process, I'm afraid to affect the forum because I do not know if it uses Apache2 for its functions
if I have to run my application via Apache, I would like to have your advice then on this
Thanks for help !
After root /var/www/html/site/public; add this
index index.php index.html index.htm index.nginx-debian.html;
I think your apache is running.check this in wchich port which is running
sudo netstat -ntpl
then kill that process
sudo kill pid(your pid)

How to set gitlab's boundle nginx to avoid the conflict with an existing nginx

I want to use a non-bundled nginx ,I overwrite /etc/gitlab/gitlab.rb set
nginx['enable'] = false,then I excute the commands:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
I find that the bundled nginx is still started,and it occupy the 80 port;
I launch the existing nginx,and I get:
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()
after,I think another way,I can change the port of bundle nginx ,like 8088;
I overwrite /etc/gitlab/gitlab.rb set:nginx['listen_port'] = 8888,then I reconfigure and restart gitlab;
But I find the port is not changed;I open the file '/var/opt/gitlab/nginx/conf/gitlab-http.conf',the main code like these:
server {
listen *:80;
...
...
the bundle nginx still listen to the 80 port;
I don't know how to resolve the confilct between existing nginx and bundle nginx;any hints are appreciated!
I have fixed it...because of my forgetting uncomment the code.

Nginx running or not?

I was surprised because the:
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
when starting Nginx, so I supposed that Nginx or other was running in the port. I've tested with:
lsof -i :80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 13557 www-data 8u IPv4 100729 0t0 TCP *:http (LISTEN)
nginx 13558 www-data 8u IPv4 100729 0t0 TCP *:http (LISTEN)
so yes, Nginx was working and in fact web pages are running. All perfect but...not!
How can be possible this?
service nginx status
[FAIL] nginx is not running ... failed!
Not running? But I can't start any other instance because it's running! What's happening?
The same when restarting:
service nginx restart
Restarting nginx: Enter PEM pass phrase:
Enter PEM pass phrase:
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
Thanks in advance.
Check if nginx is running with:
ps aux | grep nginx
if nginx process exists, then it's running for sure. What you verified with lsof only proves that 80 port is occupied by certain process (for instance, apache httpd, or some other http servers). If nginx process is not running and yet 80 port is being used, which also explains why you can't start your nginx. In this scenario, you need to lookup in your process list to see which web server is already running. Kill it and restart nginx, it should be then working fine.

Resources