Nginx配置多端口多域名访问的实现

(编辑:jimmy 日期: 2025/1/9 浏览:2)

在一个服务器上部署多个站点,需要开放多个端口来访问不同的站点,流程很简单,调试花了2小时,记录一下:

主域名多端口访问

在DNS NameServer设置A记录

将 www.xxx.com 指向服务器ip

开放所需端口,修改nginx配置文件

比如我们有两个服务分别开放在80端口和8080端口

如果有iptable,先开放端口:

iptables -A INPUT -ptcp --dport 80 -j ACCEPT
iptables -A INPUT -ptcp --dport 8080 -j ACCEPT

修改配置文件:

#path: /usr/local/nginx/conf/nginx.conf

server {
listen 80;
server_name www.xxx.com;
access_log /data/www/log/33.33.33.33_nginx.log combined;
index index.html index.htm index.php;
include /usr/local/nginx/conf/rewrite/none.conf;
root /data/www/website/33.33.33.33:80;


location ~ [^/]\.php(/|$) {
  fastcgi_pass unix:/dev/shm/php-cgi.sock;
  fastcgi_index index.php;
  include fastcgi.conf;
  }
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {
  expires 30d;
  access_log off;
  }
location ~ .*\.(js|css)"htmlcode">
/etc/nginx/conf.d/

目录下面;

子域名多端口访问

这种访问比较傻,因为你的8080端口的访问需要 http://xxx.com:8080 这样的格式;

而且如果有两个不同的cgi,比如80端口对应一个php web服务, 8080端口对应一个nodejs web服务;而我们的nodejs自带web服务,已经在8080端口监听了,这怎么办?

这个时候我们需要Nginx的反向代理功能,并在DNS Server上面增加一条A记录,最终实现

  • www.xxx.com 访问80端口
  • A.xxx.com 通过nginx转发访问8080端口服务

增加一条A记录

将 A.xxx.com 指向服务器ip

Nginx配置模板如下:

#path: /usr/local/nginx/conf/nginx.conf

server {
  listen 80;
  server_name www.xxx.com;
  access_log /data/www/log/33.33.33.33_nginx.log combined;
  index index.html index.htm index.php;
  include /usr/local/nginx/conf/rewrite/none.conf;
  root /data/www/website/33.33.33.33:80;


  location ~ [^/]\.php(/|$) {
    fastcgi_pass unix:/dev/shm/php-cgi.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
    }
  location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {
    expires 30d;
    access_log off;
    }
  location ~ .*\.(js|css)"htmlcode">
nginx -s reload

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

一句话新闻

高通与谷歌联手!首款骁龙PC优化Chrome浏览器发布
高通和谷歌日前宣布,推出首次面向搭载骁龙的Windows PC的优化版Chrome浏览器。
在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。
预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。
谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。