Nginx supports three ways to configure virtual hosts: IP-based virtual host configuration, port-based virtual host configuration, and domain name-based virtual host configuration. Detailed explanation of three ways to configure Nginx virtual hosts (based on IP) https://www.jb51.net/article/149774.htm Detailed explanation of three ways to configure Nginx virtual hosts (based on ports) https://www.jb51.net/article/14978.htm 3. Nginx domain name-based virtual host configuration Using domain name-based virtual host configuration is a popular method. Multiple domain names can be configured on the same IP and all accessed through port 80. 3.1 Assume that the server has an IP address of 192.168.2.155 [root@localhost ~]# ifconfig ens33:5 192.168.2.155/24 up [root@localhost ~]# ifconfig ens33:5: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.2.155 netmask 255.255.255.0 broadcast 192.168.2.255 ether 00:0c:29:16:90:ae txqueuelen 1000 (Ethernet) 3.2 The domain name corresponding to 192.168.2.155 is as follows. Configure the host file of the host for easy testing [root@localhost ~]# vim /etc/hosts [root@localhost ~]# cat /etc/hosts|grep 192.168.2.155 192.168.2.155 www.oa.com 192.168.2.155 www.bbs.com 192.168.2.155 www.test.com 3.3 Create a root directory for the virtual host to store web pages and create the homepage file index.html [root@localhost ~]# cd /data/www/ [root@localhost www]# mkdir www.oa.com [root@localhost www]# mkdir www.bbs.com [root@localhost www]# mkdir www.test.com [root@localhost www]# echo www.oa.com > www.oa.com/index.html [root@localhost www]# echo www.bbs.com > www.bbs.com/index.html [root@localhost www]# echo www.test.com > www.test.com/index.html 3.4 Modify nginx.conf and include the virtual host configuration file into the main file [root@localhost /]# cd /usr/local/nginx/conf/ [root@localhost conf]# ls fastcgi.conf fastcgi_params koi-utf mime.types nginx.conf scgi_params uwsgi_params win-utf fastcgi.conf.default fastcgi_params.default koi-win mime.types.default nginx.conf.default scgi_params.default uwsgi_params.default [root@localhost conf]# vim nginx.conf Add the following configuration to the end of the nginx.conf file # Find the following content in the http section and delete the "#" in front of each line log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; # Add the following statement before the last "}" at the end of the configuration file, as shown below include vhost/*.conf 3.5 Edit the configuration file for each domain name (configuration file for each virtual host) [root@localhost conf]# cd vhost/ [root@localhost vhost]# cat www.oa.com.conf server { listen 192.168.2.155:80; server_name www.oa.com; access_log /data/logs/www.oa.com.log main; error_log /data/logs/www.oa.com.error.log; location / { root /data/www/www.oa.com; index index.html index.htm; } } [root@localhost vhost]# cat www.bbs.com.conf server { listen 192.168.2.155:80; server_name www.bbs.com; access_log /data/logs/www.bbs.com.log main; error_log /data/logs/www.bbs.com.error.log; location / { root /data/www/www.bbs.com; index index.html index.htm; } } [root@localhost vhost]# cat www.test.com.conf server { listen 192.168.2.155:80; server_name www.test.com; access_log /data/logs/www.test.com.log main; error_log /data/logs/www.test.com.error.log; location / { root /data/www/www.test.com; index index.html index.htm; } } [root@localhost vhost]# cat /data/www/www.oa.com/index.html www.oa.com [root@localhost vhost]# cat /data/www/www.bbs.com/index.html www.bbs.com [root@localhost vhost]# cat /data/www/www.test.com/index.html www.test.com 3.6 Create a log file, otherwise nginx cannot be started [root@localhost /]# mkdir -p /data/logs [root@localhost /]# touch /data/logs/www.oa.com.log [root@localhost /]# touch /data/logs/www.oa.com.error.log [root@localhost /]# touch /data/logs/www.bbs.com.log [root@localhost /]# touch /data/logs/www.bbs.com.error.log [root@localhost /]# touch /data/logs/www.test.com.log [root@localhost /]# touch /data/logs/www.test.com.error.log [root@localhost /]# ls /data/logs/ www.oa.com.error.log www.bbs.com.error.log www.test.com.error.log www.oa.com.log www.bbs.com.log www.test.com.log 3.7 Test the configuration file before starting nginx [root@localhost /]# cd /usr/local/nginx/sbin/ [root@localhost sbin]# ./nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful # Start nginx [root@localhost sbin]# ./nginx 3.8 Test Files [root@localhost vhost]# curl http://www.oa.com www.oa.com [root@localhost vhost]# curl http://www.bbs.com www.bbs.com [root@localhost vhost]# curl http://www.test.com www.test.com Appendix: Problems during configuration 1. Problems that occurred during the final test [root@localhost ~]# curl http://www.oa.com curl: (7) Failed connect to www.oa.com:80; Connection refused Solution: Check whether Nginx is listening on the corresponding port. [root@localhost ~]# netstat -lnt Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN tcp 0 0 192.168.2.155:80 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp6 0 0 :::111 :::* LISTEN tcp6 0 0 :::22 :::* LISTEN tcp6 0 0 :::23 :::* LISTEN tcp6 0 0 ::1:25 :::* LISTEN 1. When configuring the virtual host file, add the listening IP address. Each virtual host configuration file is the same. listen 192.168.2.155:80; 2. Restart the server after configuration is complete The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM. You may also be interested in:
|
<<: Vue implements drag progress bar
>>: A simple example of mysql searching for data within N kilometers
Recently, I used vuethink in my project, which in...
1. Get the mysql image docker pull mysql:5.6 Note...
Table of contents Achieve results Complete code +...
First, perform a simple Docker installation. To c...
Table of contents 1. Front-end leading process: 2...
Table of contents 1. Introduction: 2. The first i...
nginx (engine x) is a high-performance HTTP and r...
MySQL bidirectional backup is also called master-...
We all know the drag-and-drop feature of HTML5, w...
Generally speaking, when we view the contents of ...
CocosCreator version: 2.3.4 Cocos does not have a...
Purpose: Nested use of MySQL aggregate functions ...
1. Basic grammar Copy code The code is as follows...
Table of contents aforementioned VARCHAR Type VAR...
This article shares the specific code of native j...