日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Nginx >内容正文

Nginx

配置Nginx端口转发时的问题

發布時間:2023/12/20 Nginx 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 配置Nginx端口转发时的问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

      • 一、起因
      • 二、部署
      • 三、端口映射
      • 四、暫停/重新啟動
      • 五、端口映射不起作用

Nginx是一款高性能Http服務器,其最大的用途是作為負載均衡和反向代理(端口轉發)的工具。

一、起因

昨天晚上閑來無事,上了下阿里云發現自己的域名和服務器都還沒過期,所以就把自己的域名綁定到服務器地址上,做了一個DNS解析。但是我發現,每次需要訪問8888端口時仍需要使用 域名:8888 這種方式訪問,所以我想用Nginx做一個反向代理,將默認打開的80端口轉發到8080端口中,以實現用域名直接訪問8888端口的目的。

二、部署

部署安裝都很順利,對著流程一套做下來,沒有太大問題(唯一的問題是服務器的apt版本太老,需要升級:apt -get update)。
之后,進入/etc/nginx后,輸入./nginx,啟動nginx,這時提示80端口已經被占用(或許是之前安裝過nginx沒有清理干凈),所以這是第一個問題,現在需要殺死nginx的進程:
killall -9 nginx
殺死nginx進程后,再次啟動,完成,一切到目前為止還算順利,在瀏覽器中直接輸入域名即默認打開了80端口,可以看到Nginx的歡迎頁:

三、端口映射

接下來就是最主要的一步:做端口映射。我需要把80端口給映射到8888端口,進入conf文件夾,vi nginx.conf修改端口映射,一開始我將其改為這樣:

server {listen 80;server_name 127.0.0.1:8888;}

然后:wq!退出并保存內容,然后按照以前刷新配置文件的方式一樣使用
source conf/nginx.conf加載更新的內容,這時報錯:

worker_processes: command not found Failed to convert URI from command line into object reference. BAD_PARAM (BAD_PARAM_BadSchemeName) worker_connections: command not found -bash: nginx.conf: line 17: syntax error near unexpected token `}' -bash: nginx.conf: line 17: `}'

在這卡了很久,讓我一度以為是nginx沒有安裝完整或者是服務器依賴的問題,所有我重新安裝nginx并且重新下載了所有所需依賴,最后發現問題還是存在。最后我找到一篇帖子,里邊有人評論說這是nginx的一個bug,不用理會,只要nginx的啟動過程不報錯就行了,此刻我的內心十分復雜,搞了半天原來是它本身的bug,但是這樣也就算解決了吧。

四、暫停/重新啟動

由于修改了配置文件,所以必須要重新啟動nginx才能讓其生效,所以我使用了nginx -s stop命令,之后就算一連串的報錯:

The program 'nginx' can be found in the following packages: * nginx-extras * nginx-full * nginx-light Try: apt-get install <selected package>

所以我又把這些所需的依賴都裝了一遍:

apt-get install nginx-extras apt-get install nginx-full apt-get install nginx-light

然后繼續使用stop命令將其暫停,繼續報錯:

nginx: [error] open() "/run/nginx.pid" failed (2: No such file or directory)

這里也卡了很久,各種百度谷歌都在說需要在哪個哪個目錄創建一個nginx文件夾,然后復雜nginx.pid到某個文件夾下,試了一遍還是不行,最后找到解決辦法:

直接使用killall -9 nginx殺死nginx進程在使用./nginx啟動nginx,配置文件就可以被加載到了。

五、端口映射不起作用

前面的幾步都完成后,配置的80端口映射到8888端口仍不起作用,訪問域名后仍然打開的80端口,所以我又回到第三步,最后發現不起作用的原因是:
我只配置了server_name,即虛擬主機名,但是卻沒有配置proxy_pass,即反向代理路徑,所以我為server{}中添加以下內容,終于搞定了端口的映射:

server {listen 80;server_name 127.0.0.1:8888;location / {proxy_pass http://127.0.0.1:8888;} }

最后,80端口成功地被映射到本機的8888端口上,Nginx反向代理的端口轉發成功了。

總結:從發現問題到解決問題一共花了三個多鐘頭,其實有許多問題的出現就是因為之前沒有遇見過,以及許多問題或許根本不是會造成異常的問題,加上被各路博客的帶偏(參考了幾十個博客),最后越搞越亂。所以說要解決問題,還是需要發現問題的核心是什么,如何才能迅速發現問題的核心?那就需要多實踐,多踩坑才能做到。現在踩的坑,就是以后站住腳的基石。

總結

以上是生活随笔為你收集整理的配置Nginx端口转发时的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。