咱们拿阿里云的ECS云服务器CentOS7+来举例:php
一、修改nginx默认的配置文件:html
以 YUM 安装的 Nginx 为例:nginx
1.执行命令 vi /etc/nginx/nginx.conf
编辑 Nginx 的配置文件,将默认的server {...}
配置修改成如下内容:web
server { listen 80 default_server; server_name www.123.com; root /home/web1; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50.xhtml; location = /50x.html { } } server { server_name www.abc.com; root /home/web2; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
2.执行命令 nginx -s reload
重启 Nginx 服务。服务器
其余方式也能够直接看阿里云教程:https://help.aliyun.com/knowledge_detail/41091.html?spm=5176.11065259.1996646101.searchclickresult.4b2b44e3xqAmBgdom
二、添加自定义的配置文件:网站
远程链接并登陆到 Linux 实例。阿里云
执行命令 cd /etc/nginx/conf.d
打开 Nginx 服务配置文件目录。.net
执行命令 vi 您要建立的域名.conf
建立域名规则配置文件,如示例中的 vi www.server110.com.conf
。代理
输入 i
编辑新建的配置文件:
为每个域名创建一个单独的配置文件时输入如下内容:
server { listen 80; #监听端口设为 80。 server_name www.server110.com; #绑定您的域名。 index index.htm index.html index.php; #指定默认文件。 root /home/www/server110.com; #指定网站根目录。 include location.conf; #当您须要调用其余配置文件时才粘贴此项,如无须要,请删除此项。 }
将多个域名规则写进一个共同的配置文件时输入如下内容:
server { listen 80; #监听端口设为 80。 server_name www.server110.com; #绑定您的域名。 index index.htm index.html index.php; #指定默认文件。 root /home/www/server110.com; #指定网站根目录。 include location.conf; #当您须要调用其余配置文件时才粘贴此项,如无须要,请删除此项。 } server { listen 80; #监听端口设为 80。 server_name msn.server111.com; #绑定您的域名。 index index.htm index.html index.php; #指定默认文件。 root /home/www/msn.server110.com; #指定网站根目录。 include location.conf; #当您须要调用其余配置文件时才粘贴此项,如无须要,请删除此项。 }
为无 WWW 前缀的域名配置规则并加 301 跳转时输入如下内容:
server { listen 80; server_name server110.com; rewrite ^/(.*) http://www.server110.com/$1 permanent; }
须要为域名添加 404 提示时输入如下内容:
server { listen 80; #监听端口设为 80。 server_name www.server110.com; #绑定您的域名。 index index.htm index.html index.php; #指定默认文件。 root /home/www/server110.com; #指定网站根目录。 include location.conf; #当您须要调用其余配置文件时才粘贴此项,如无须要,请删除此项。 error_page 404 /404.html; }
按 Esc 退出编辑并输入 :wq
保存退出。
执行命令 nginx -t
检查配置是否有误,并按照报错提示修复错误。
执行命令 service nginx restart
重启 Nginx 服务。
执行命令 service nginx reload
从新载入 Nginx 服务。
那么是否只须要上述操做就能够了呢,若是是php或者静态的html,是彻底没问题的,但咱们的Spring Boot项目可能一个项目一个端口,那在此基础上还须要修改一下代码:
upstream xx{ #配置upstream节点,这里节点名为“xx” server 116.255.111.111:8080; } server{ listen 80; server_name www.xxx.xx; #这里配置nginx须要代理的域名 location / { proxy_pass http://xx; #指定反向代理为上面配置的那个upstream节点“xx” proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
个人配置:/etc/nginx/conf.d/domain.conf
upstream resumehubServer{ server localhost:8080; } server { listen 80; #监听端口设为 80。 server_name www.resumehub.cn; #绑定您的域名。 index index.htm index.html index.php; #指定默认文件。 root /opt/resume; #指定网站根目录。 location / { proxy_pass http://resumehubServer; #指定反向代理为上面配置的那个upstream节点“xx” proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
之因此在/etc/nginx/conf.d/目录下的文件均可以域名映射,是由于在/etc/nginx/nginx.conf文件中include了这个目录下的全部conf文件
上面的upstream指定当前服务器部署的web服务的端口。
参考文档:http://blog.csdn.net/xianglingchuan/article/details/67684219
http://blog.csdn.net/ajian759447583/article/details/50437933
https://www.cnblogs.com/yinxiang/p/5298960.html