problem
1、http默认端口为80
2、一台服务器有多个服务,都想监听80
3、有些服务限用指定端口,修改麻烦
4、外网访问域名时要加端口,很麻烦
solution
1、先在两个空闲的端口上分别部署项目(非80,假设是81和82)
// nginx.conf
# test1项目配置
server {
listen 81;
root /www/wwwroot/test1;
index index.html;
location / {}
}
# test2项目配置
server {
listen 82;
root /www/wwwroot/test2;
index index.html;
location / {}
}
2、内网进行端口转发(监听80端口)
// nginx.conf
# nginx 81端口配置 (监听test1二级域名)
server {
listen 81;
server_name test1.gwj1314.space;
location / {
proxy_pass http://localhost:81; # 转发
}
}
# nginx 82端口配置 (监听test2二级域名)
server {
listen 82;
server_name test2.gwj1314.space;
location / {
proxy_pass http://localhost:82; # 转发
}
}
example
实际转发的时候,记得加上JavaScript,css和图片等元素的转发。
server
{
listen 80;
server_name ftp.gwj1314.space;
index index.php index.html index.htm default.php default.htm default.html;
root /www/wwwroot/chfs;
location / {
proxy_pass http://localhost:81; # 转发
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
proxy_pass http://localhost:81; # 转发
expires 30d;
error_log off;
access_log /dev/null;
}
location ~ .*\.(js|css)?$
{
proxy_pass http://localhost:81; # 转发
expires 12h;
error_log off;
access_log /dev/null;
}
}