nginx的nginx.config配置中可以使用include命令把一些按模块区分的配置独立出来
1)nginx除了可以一个外部地址对应内部站点的一个地址,也可以将一个外部地址 通过location的路径区别转发到不同的内网站点,
如下将外网地址crmappdingtalk-dev.xxs.com:7400和crmappdingtalk-dev.xxs.com:7400/serviceapp转发到内部不同的站点.
#----------新的app 钉钉---------
server {
listen 7400 ;
server_name crmappdingtalk-dev.xxs.com;
location / {
proxy_pass http://salesapp;
proxy_buffer_size 128k;
proxy_buffers 32 32k;
proxy_busy_buffers_size 128k;
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;
}
location /serviceapp/ {
proxy_pass http://serviceapp;
proxy_buffer_size 128k;
proxy_buffers 32 32k;
proxy_busy_buffers_size 128k;
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;
}
}
upstream salesapp {
server x.x.x.x:8767;
}
upstream serviceapp {
server x.x.x.x:7300;
}
- 如果需要将http配置https,也很简单,获取到ssl的pem和key后放到指定的路径下,再nginx.config文件下的http模块下配置好ssl_certificate和ssl_certificate_key对应的路径后,在子配置文件监听的端口后面加上ssl即可:
如上将 listen 7400 后面加上ssl:listen 7400 ssl
注意,如果有使用include的子配置文件,ssl_certificate和ssl_certificate_key必须在http模块下配置,意味着这个是全局只使用一个的。不能在子配置文件的server模块下配置.