web-dev-qa-db-ja.com

異なるポートでnginxを起動する方法(80以外)

こんにちは私は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;
     }
 }

基本的には、サーバー部分を追加する以外は何も変更しませんでした。

115
Zhao Peng

あなたは/etc/nginx/sites-enabled/に行かなければなりません、そして、これがデフォルトの設定であるならば、名前によるファイルがあるはずです:default

目的のポートを定義してそのファイルを編集します。以下のコードでは、ポート81でNginxインスタンスを提供しています。

server {
    listen 81;
}

サーバーを起動するには、以下のコマンドラインを実行します。

Sudo service nginx start

これで、ポート81でアプリケーションにアクセスできます(localhostの場合は http:// localhost:81 )。

161
Chamith Malinda

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
21

これに従ってください:あなたの設定ファイルを開きます

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サーバーファイルにアクセスする

17
sinshiva

あなたがウィンドウズ上にいるなら、ポート関連のサーバ設定以下がファイルに存在しますnginx.conf at <nginxインストールパス>/confフォルダ。

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

ポート番号を変更してインスタンスを再起動してください。

2
skvp

Dockerを使用しているときにこの問題が発生した場合は、正しいポート番号をマップしてください。 dockerの実行中に(またはdocker-compose.ymlを介して)ポート81:80をマッピングする場合、nginxはポート80 not 81でリッスンする必要があります。これは、dockerが既にマッピングを行うためです。

私はこの問題にかなりの時間を費やしましたので、将来のグーグルの助けになることを願っています。

0
thephper