一、需求
由於公司只有一個公網,很多 web 專案都想通過 80 或 443 埠來訪問,所以需要 Nginx 充當公司閘道器。
把唯一的公網 IP 80 埠和 443 埠跟 Nginx 閘道器主機 IP 對映,進行 HTTP 和 HTTPS 代理轉發到內部主機中。
配置轉發的域名時,需要提前將域名和公網 IP 進行解析繫結才可以。
二、配置檔案
...
server {
listen 80;
server_name wiki.xxx.net;
charset utf-8;
access_log /var/log/nginx/wiki.xxx.net/access.log;
location / {
try_files /_not_exists_ @backend;
}
location @backend {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://192.168.101.69:8181;
}
...
...
server {
listen 443 ssl;
server_name app.xxx.net;
charset utf-8;
access_log /var/log/nginx/app.xxx.net/access.log;
ssl_certificate ../conf/cert/7174710_app.xxx.net.pem;
ssl_certificate_key ../conf/cert/7174710_app.xxx.net.key;
location / {
try_files /_not_exists_ @backend;
}
location @backend {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass https://192.168.101.70;
}
}
...
三、訪問測試
到此就完成根據域名來代理轉發對應的主機了,後續還有其他系統需要對外提供服務的,通過以上配置微調即可。
如有不恰當的地方,還望大佬們在評論區指教,謝謝!