问题描述
嗨,我是nginx上的新手,我试图在已经运行apache的服务器(运行Ubuntu 4)上进行设置。
因此,在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://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";
}
保存此内容并尝试再次启动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;
}
}
基本上,除了添加服务器部分之外,我什么都没做。
最佳答案
您必须转到/etc/nginx/sites-enabled/
,如果这是默认配置,则应该有一个名称为default
的文件。
通过定义所需的端口来编辑该文件;在下面的代码段中,我们在端口81上提供Nginx实例。
server {
listen 81;
}
要启动服务器,请运行以下命令行;
sudo service nginx start
您现在可以在端口81上访问您的应用程序(对于localhost http://localhost:81)。
次佳答案
您将需要更改Apache或Nginx的配置端口。完成此操作后,您将需要使用所使用的’service’命令来重新启动重新配置的服务器。
阿帕奇
编辑
sudo subl /etc/apache2/ports.conf
并将以下行中的80更改为其他内容:
Listen 80
如果您只是更改端口或在此处添加更多端口,则可能还必须更改其中的VirtualHost语句。
sudo subl /etc/apache2/sites-enabled/000-default.conf
并将以下行中的80更改为其他内容:
<VirtualHost *:80>
然后通过以下方式重新启动:
sudo service apache2 restart
Nginx的
编辑
/etc/nginx/sites-enabled/default
并在下一行更改80:
listen 80;
然后通过以下方式重新启动:
sudo service nginx restart
第三种答案
请遵循以下步骤:打开配置文件
vi /etc/nginx/conf.d/default.conf
更改您正在监听的端口号;
listen 81;
server_name localhost;
向iptables添加规则
vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 81 -j ACCEPT
重新启动IPtables
service iptables restart;
重启nginx服务器
service nginx restart
在端口81上访问yr nginx服务器文件
第四种答案
如果您在Windows上,则文件nginx.conf中的< nginx安装路径> /conf文件夹。
server {
listen 80;
server_name localhost;
....
更改端口号并重新启动实例。