こんにちは私は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を起動しようとすると、以前と同じエラーが発生します。これについての関連記事を見つけることができません、何人かの善良な人々が光を細断できましたか。
前もって感謝します :)
=================================================== =======================
ここにすべての内容を投稿してください
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'コマンドを使用して、再構成したサーバーを再起動する必要があります。
Apache
編集する
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
IPtableを再起動します。
service iptables restart;
Nginxサーバーを再起動します
service nginx restart
ポート81でyr nginxサーバーファイルにアクセスする
あなたがウィンドウズ上にいるなら、ポート関連のサーバ設定以下がファイルに存在しますnginx.conf at <nginxインストールパス>/confフォルダ。
server {
listen 80;
server_name localhost;
....
ポート番号を変更してインスタンスを再起動してください。
Dockerを使用しているときにこの問題が発生した場合は、正しいポート番号をマップしてください。 dockerの実行中に(またはdocker-compose.ymlを介して)ポート81:80をマッピングする場合、nginxはポート80 not 81でリッスンする必要があります。これは、dockerが既にマッピングを行うためです。
私はこの問題にかなりの時間を費やしましたので、将来のグーグルの助けになることを願っています。