安装:
1 yum install nginx
启用并启动Nginx服务:
1
2 $ sudo systemctl enable nginx
$ sudo systemctl start nginx
停止服务:
1 $ sudo systemctl stop nginx
要验证服务是否正在运行,检查其状态:
1 $ sudo systemctl status nginx
1、需求场景
手上有两个域名,一台服务器,服务器上跑了两个应用,占用两个不同的端口。
假设两个域名为:
domain1.com
domain2.com
两个应用所占端口为8080、8090
需要将两个域名分别指向这两个应用的端口
2、实现思路
域名经过DNS解析之后访问的是指定服务器IP的80端口,所以实现思路就是在域名服务进行DNS解析的时候,访问指定服务器的80端口,使用Nginx监听80端口的信息,如果是domain1.com就转发到8080端口上,如果是domain2.com就转发到8090端口上。
server {
#配置80端口是为了输入域名的时候不用输入端口,因为域名解析默认指向80端口
listen 80;
#server_name 是你访问目标服务的域名
server_name xxxxxxxx;
location /{
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_pass 是你目标服务的实际地址可以是ip也可以是域名,比如 http://127.0.0.1:8082,指向本主机的8082端口
#比如http://85.98.125.211:8082 指向其他主机,比如 http://www.go.com 指向了不知道是什么主机(域名会自动解析)
proxy_pass http://127.0.0.1:8082;
}
}
server {
listen 80;
server_name domain1.com;
if ( $host !~* "domain1.com" ) {
return 404;
}
location / {
proxy_pass http://xxx.xxx.xxx.xxx:8080;
proxy_set_header X-Real-IP $remote_addr;
}
}
server {
listen 80;
server_name domain2.com;
if ( $host !~* "domain2.com" ) {
return 404;
}
location / {
proxy_pass http://xxx.xxx.xxx.xxx:8090;
proxy_set_header X-Real-IP $remote_addr;
}
}