首页 > 代码库 > 配置LANMP环境(7)-- 配置nginx反向代理,与配置apache虚拟主机
配置LANMP环境(7)-- 配置nginx反向代理,与配置apache虚拟主机
一、配置nginx反向代理
1.修改配置文件
vim /etc/nginx/nginx.conf
在35行http下添加一下内容: include /data/nginx/vhosts/*.conf; include /etc/nginx/upstream.conf;
2.在/etc/nginx/目录下新建 upstream.conf文件
vim upstream.conf
upstream dev.test1.com { server 127.0.0.1(换成虚拟机ip):8080 weight=4 max_fails=2 fail_timeout=10s; ip_hash; } upstream dev,test2.com { server 127.0.0.1(换成虚拟机ip):8080 weight=4 max_fails=2 fail_timeout=10s; ip_hash; } upstream dev.test3.com { server 127.0.0.1(换成虚拟机ip):8080 weight=4 max_fails=2 fail_timeout=10s; ip_hash; }
3.在/etc/nginx/目录下新建 proxy.conf
vim proxy.conf
写入以下内容: proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_max_temp_file_size 0; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k;
4.在/data/nginx/vhosts/目录下新建test.conf配置文件
mkdir -p /data/nginx/vhosts
mkdir -p /data/nginx/logs
cd /data/nginx/vhosts
vim test.conf
写入以下内容:
server {
listen 80;
server_name dev.test1.com;
charset UTF-8;
access_log /data/nginx/logs/test1.access.log combined;
location /{
proxy_pass http://dev.test1.com;
#Header
include "/etc/nginx/proxy.conf";
}
error_page 404 /error.html;
location = /error.html {
root /usr/share/nginx/html;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80;
server_name dev.test2.com;
charset UTF-8;
access_log /data/nginx/logs/test2.access.log combined;
location /{
proxy_pass http://dev.test2.com;
#Header
include "/etc/nginx/proxy.conf";
}
error_page 404 /error.html;
location = /error.html {
root /usr/share/nginx/html;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80;
server_name dev.test3.com;
charset UTF-8;
access_log /data/nginx/logs/test3.access.log combined;
location /{
proxy_pass http://dev.test3.com;
#Header
include "/etc/nginx/proxy.conf";
}
error_page 404 /error.html;
location = /error.html {
root /usr/share/nginx/html;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
二、配置apache虚拟主机
1.载入虚拟主机配置文件
vim /etc/httpd/conf/httpd.conf
在文件最低下添加以下内容:
include conf/extra/httpd-vhosts.conf
2.在/etc/httpd/conf/ 目录下新建extra目录,并在extra目录下新建httpd-vhosts.conf配置文件
cd /etc/httpd/conf/ mkdir extra cd /etc/httpd/conf/extra vim httpd-vhosts.conf
添加以下内容:
<VirtualHost 127.0.0.1(换成虚拟机ip):8080>
ServerAdmin "master@master.com"
DocumentRoot "/data/www/test1"
ServerName dev.test1.com
ErrorLog "/data/httpd/logs/test1.net-error.log"
CustomLog "/data/httpd/logs/test1.net-access.log" common
<Directory "/">
Options FollowSymLinks
AllowOverride All
Order Deny,Allow
Require all granted
</Directory>
<Directory ".git">
Deny from All
Require all denied
</Directory>
</VirtualHost>
<VirtualHost 127.0.0.1(换成虚拟机ip):8080>
ServerAdmin "master@master.com"
DocumentRoot "/data/www/test2"
ServerName dev.test2.com
ErrorLog "/data/httpd/logs/test2.net-error.log"
CustomLog "/data/httpd/logs/test2.net-access.log" common
<Directory "/">
Options FollowSymLinks
AllowOverride All
Order Deny,Allow
Require all granted
</Directory>
<Directory ".git">
Deny from All
Require all denied
</Directory>
</VirtualHost>
<VirtualHost 127.0.0.1(换成虚拟机ip):8080>
ServerAdmin "master@master.com"
DocumentRoot "/data/www/test3"
ServerName dev.test3.com
ErrorLog "/data/httpd/logs/test3.net-error.log"
CustomLog "/data/httpd/logs/test3.net-access.log" common
<Directory "/">
Options FollowSymLinks
AllowOverride All
Order Deny,Allow
Require all granted
</Directory>
<Directory ".git">
Deny from All
Require all denied
</Directory>
</VirtualHost>
2.在/data/httpd/下面创建logs文件夹
cd /data/httpd/
mkdir logs
3.配置window的ip解析,打开C:\Windows\System32\drivers\etc下面的hosts文件添加下面三行。
192.168.116.128(换成虚拟机ip) dev.test1.com 192.168.116.128(换成虚拟机ip) dev.test2.com
192.168.116.128(换成虚拟机ip) dev.test3.com
4.添加项目目录与测试文件
mkdir -p /data/www/test1
mkdir -p /data/www/test2
mkdir -p /data/www/test3
cd /data/www/test1
vim index.php
输入以下虚线前的内容:
<?php
echo "test1";
-------------------------------------------------
cd /data/www/test2
vim index.php
输入以下虚线前的内容:
<?php
echo "test2";
-------------------------------------------------
cd /data/www/test3
vim index.php
输入以下内容:
<?php
echo "test3";
三、检查配置成功与否
全部配置好之后重启nginx和apache,如果重启失败可以用命令status nginx【httpd】,或者journalctl -xe查看那里出现问题。
常见启动失败的原因:
1. logs目录或者其他关键目录没有创建。
2. 防火墙禁用了8080端口
如果一切顺利,全部配置成功则:在浏览器访问dev.test1.com会出现对应/data/www/test1/index.php文件内容的页面。
配置LANMP环境(7)-- 配置nginx反向代理,与配置apache虚拟主机