我在我的服務器上運行了一個 Nodejs 應用程式,所以我想使用 Nginx 反向代理從一個不錯的域名呼叫 API,而不是輸入 IP 和埠,我還生成了一個免費的 Let's encrypt 證書來使用。
問題是,如果我使用 IP 和埠,反向服務器不起作用,然后如果我使用域名,它就會作業,它會給我一個 Nginx 模板測驗頁面,無論如何這里是我的配置:
Nginx 配置 http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
#include /etc/nginx/sites-enabled/*;
default_type application/octet-stream;
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
我的反向代理配置和位置
/etc/nginx/conf.d/api1.conf
后端 API 服務器 { server_name api.domain.com;
location / {
proxy_pass http://localhost:26423/all; #whatever port your app runs on
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
在此處輸入圖片說明
每當我嘗試從瀏覽器或郵遞員那里查看 API 時,我都會看到此頁面
uj5u.com熱心網友回復:
目前尚不清楚您是否擁有域。如果你有一個,它應該指向服務器的公共 ipv4 ip,然后創建一個代理到你的 nodejs 應用程式的 nginx 虛擬主機。
假設你的公共服務器 ipv4 ip 地址是 1.2.3.4 并且你有一個像 nodejsappdomain.com 這樣的域,那么 nodejsappdomain.com 應該指向 1.2.3.4 并且 nginx vhost 將是這樣的:
服務器{聽80;
server_name nodejsappdomain.com www.nodejsappdomain.com;
location / {
proxy_pass http://127.0.0.1:nodejsapp_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/347878.html
標籤:节点.js linux nginx centos centos8
下一篇:如何使用Nginx構建代理?
