Nginx實現(xiàn)根據(jù)域名http、https分發(fā)配置示例
tomcat端口:8080 做好虛擬主機
nginx端口:80 根據(jù)域名分派
在conf/nginx.conf中的http中增加
include www.dhdzp.com.conf
新建conf/www.dhdzp.com.conf,內(nèi)容如下:
server {
listen 80;
server_name www.dhdzp.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host:80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Via "nginx";
}
}
其中127.0.0.1是你的tomcat主機ip
要是代理https的話,內(nèi)容如下:
server {
listen 443;
server_name mail.jb51.net;
ssl on;
ssl_certificate server.crt;
ssl_certificate_key server.key;
location / {
proxy_pass https://192.168.0.2:443;
proxy_set_header Host $host:443;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Via "nginx";
}
}
其中192.168.0.2是你的https主機
如果后端https沒有證書的話,可以如此簡化:
server {
listen 80;
server_name svn.jb51.net;
location / {
proxy_pass https://192.168.0.2:443;
proxy_set_header Host $host:443;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Via "nginx";
proxy_set_header X-Forwarded-Proto https; #注意看這里 多了一行
}
}
如果提示“SSL 接收到一個超出最大準許長度的記錄。” 錯誤代碼“ssl_error_rx_record_too_long”說明少了“ssl on;”這一行
后面的server.crt server.key是數(shù)字證書,具體可以參照openssl做證書
openssl做證書
mkdir ssl
cd ssl
openssl genrsa -des3 -out server.key 1024 # 會提示你輸入key,盡可能長些復(fù)雜些,后面好幾處要用,我都是復(fù)制粘貼的
openssl req -new -key server.key -out server.csr # 輸入組織信息 CN BeiJing HaiDian huozhe.com
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
這里的server.crt server.key你就可以拿去用了
相關(guān)文章
windows系統(tǒng)下關(guān)閉Nignx的多種方式總結(jié)
這篇文章主要給大家總結(jié)介紹了windows系統(tǒng)下關(guān)閉Nignx的多種方式, 在Windows中啟動Nginx是簡單的,但有許多小伙伴不會關(guān)閉,這里給大家介紹下,需要的朋友可以參考下2023-08-08
nginx禁止dedecms目錄php執(zhí)行權(quán)限
nginx禁止dedecms目錄php執(zhí)行權(quán)限,找到配置fastcgi.conf文件,一般在/usr/local/nginx/conf/下面,修改如下2014-01-01

