當前位置: 首頁>>技術教程>>正文


ubuntu – 如何通過其他端口(而不是80)啟動Nginx

,

問題描述

嗨,我是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;
....

更改端口號並重新啟動實例。

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/10418.html,未經允許,請勿轉載。