Home > Article > Operation and Maintenance > How to configure multi-port and multi-domain name access in Nginx
Multi-port access to primary domain name
Set a record in dns nameserver
Point to the server ip
to open the required port and modify the nginx configuration file
For example, we have two services open at port 80 and port 8080
If there is iptable, open the port first:
iptables -a input -ptcp --dport 80 -j accept iptables -a input -ptcp --dport 8080 -j accept
Modify the configuration file:
#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)?$ { expires 7d; access_log off; } } server { listen 8080; server_name a.xxx.com; access_log /data/www/log/33.33.33.33:8080_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:8080; 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)?$ { expires 7d; access_log off; } }
The key is to configure the two server sections. You can also split these two sections into two configurations File, put it under the
/etc/nginx/conf.d/
directory;
subdomain name multi-port access
This kind of access is stupid, because your 8080 Port access requires the format http://xxx.com:8080;
And if there are two different cgi, for example, port 80 corresponds to a php web service, and port 8080 corresponds to a nodejs web service; and Our nodejs comes with a web service that is already listening on port 8080. What should we do?
At this time we need the reverse proxy function of nginx, and add an a record on the dns server, and finally achieve
www.xxx.com access port 80
a.xxx.com Access the 8080 port service through nginx forwarding
Add an a record
Point a.xxx.com to the server ip
nginx configuration template is as follows:
#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)?$ { expires 7d; access_log off; } } server { listen 80; listen [::]:80; server_name a.xxx.com; proxy_connect_timeout 300s; proxy_send_timeout 300s; proxy_read_timeout 300s; fastcgi_send_timeout 300s; fastcgi_read_timeout 300s; location / { proxy_pass http://127.0.0.1:3000; 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; try_files $uri $uri/ =404; } }
nginx reloads the configuration file
nginx -s reload
The above is the detailed content of How to configure multi-port and multi-domain name access in Nginx. For more information, please follow other related articles on the PHP Chinese website!