nginx建https站实验

简单的lnnmp传输拓扑图

Nginx1主要是对外网提供网站服务,既然是对外网的提供服务器,那么我们就要考虑问题了。外网的网络带宽有限,这里对外网的传输我们就使用压缩传输;同时我们也希望数据的安全性,这里也需要提供https的加密传输;最重要的一点是这台服务器可以向后端转发客户端的请求。

Nginx2提供动态和静态数据给前端Nginx1,这里有一个非常严重的问题,这台主机不处理动态数据只是把动态数据转发给php-mysql,假如直接让代理服务器Nginx1把请求转发到php-fpm上。

mysql提供数据库服务,php-fpm提供PHP动态数据的处理

改良后的lnmp传输拓扑图

这样改良之后,会产生一个问题,前端的代理服务器Nginx1处理压力会变大,因为正则配置的性能完全不如直接转发。但是网站的请求有限,暂且采用这种。

# 目录

网络关系

mysql和php-fpm的配置

Nginx1的配置

Nginx2的配置

总结

# 网络关系

这里我的实验环境是一台Windows主机,使用的是vmwear,使用的虚拟机是centos7

Nginx1有两个网卡,一个设置的为桥接172.16.29.2,另一个设置的为仅主机模式192.168.95.129,安装Nginx-1.10.2

Nginx2有一个仅主机模式的网卡192.168.95.132,安装Nginx-1.10.2

php-fpm仅主机模式网卡192.168.95.131,安装php-fpm,php-mysql

MySQL仅主机模式的网卡192.168.95.130,安装mariadb-server

# mysql和php-fpm的配置

### php-fpm的配置

php-fpm依赖于http或Nginx

yum install php-fpm php-mysql -y
vim /etc/php-fpm.d/www.conf
listen = 0.0.0.0:9000 #监听在本机的所有网卡上
listen.allowed_clients = 192.168.95.132 #允许这个ip访问
pm.status_path = /status #开启状态页
mkdir -pv /var/www/html/phpwind #提供phpwind文件
cd
unzip phpwind_UTF8_8.7.1.zip -d /nginx/html/phpwind/
chown nginx:nginx /var/www/html/phpwind/
chown -R nginx:nginx /var/www/html/phpwind/

### mysql的配置

yum isntall mairadb-server -y
mysql <<eof
grant all on pwdb.* to ‘pwuser‘@‘192.168.95.131‘ identified by ‘pwpasswd‘;
eof

# Nginx1的配置

cd
wget http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.10.2-1.el7.ngx.x86_64.rpm
yum install ./nginx-1.10.2-1.el7.ngx.x86_64.rpm -y
cd /etc/nginx/conf.d
mv default.conf{,.bak}
vim www1.conf
server { #强制使用https通信
    listen 80; 
    server_name www1.oldking.org;
    rewrite ^ https://$server_name$request_uri? permanent;
}
server {
    listen 443;
    server_name www1.oldking.org;
    ssl on; 
    ssl_certificate /etc/nginx/ssl/nginx.crt;
    ssl_certificate_key /etc/nginx/ssl/nginx.key;
    location ~* \.php$ { #把php请求发送给php-fpm主机
        fastcgi_pass 192.168.95.131:9000;
        fastcgi_index   index.php;
        fastcgi_param   SCRIPT_FILENAME /var/www/html/phpwind/upload$fastcgi_script_name;
        include         fastcgi_params;
        fastcgi_param HTTPS on; 
    }   
    location ~* ^/(status|ping)$ { #把php状态信息发送给php-fpm主机
        include        fastcgi_params;
        fastcgi_pass 192.168.95.131:9000;
        fastcgi_param  SCRIPT_FILENAME  $fastcgi_script_name;
    }   
    location / { #非静态和php数据,由Nginx1提供
        root /nginx/html/phpwind/upload;
        index index.php;
    }
    location ~* \.(jpg|png|gif|js|css)$ { #静态数据指向Nginx2
        proxy_pass http://192.168.95.132;
    }
}
vim ../nginx.conf #在http字段内添加如下内容,提供压缩传输
gzip  on;
gzip_comp_level 3;
gzip_min_length 4;
gzip_types text/xml text/css  application/javascript;
mkdir -pv /nginx/html/phpwind #提供phpwind文件
cd
unzip phpwind_UTF8_8.7.1.zip -d /nginx/html/phpwind/
chown nginx:nginx /nginx/html/phpwind/
chown -R nginx:nginx /nginx/html/phpwind/

# Nginx2的配置

cd #安装Nginx并提供配置文件
wget http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.10.2-1.el7.ngx.x86_64.rpm
yum install ./nginx-1.10.2-1.el7.ngx.x86_64.rpm -y
cd /etc/nginx/conf.d
mv default.conf{,.bak}
vim www1.conf
server {
    listen 80; 
    location / { 
        root /var/www/html/phpwind/upload;
        index index.php;
    }   
}
mkdir -pv /nginx/html/phpwind #提供phpwind文件
cd
unzip phpwind_UTF8_8.7.1.zip -d /nginx/html/phpwind/
chown nginx:nginx /nginx/html/phpwind/
chown -R nginx:nginx /nginx/html/phpwind/

# 总结

全站https需要业务代码的支持,提供静态数据的服务器需要使用~*匹配然后指定,使用/来匹配的话数据会直接从Nginx2主机获取数据,并且不加处理的返回给Nginx1服务器,然后返回客户端。

时间: 2024-12-10 17:17:05

nginx建https站实验的相关文章

HHvm Apache 2.4 Nginx建站环境搭建方法安装运行WordPress博客

HHvm Apache 2.4 Nginx建站环境搭建方法安装运行WordPress博客 VPS主机   2014年06月02日 17:20 评论» 文章目录 Debian上安装 CentOS上安装 Ubuntu上安装 装Wordpress HHvm安装小结 HHVM是一个强大的可以用于替代PHP的建站环境,出自Facebook团队,它是一个PHP的JIT(Just-In- Time)编译器,同时具有产生快速代码和即时编译的优点.实践证明HHVM可以明显地提升PHP执行速度,节省大量的服务器资源

Nginx+Tomcat web站(Linux) &nbsp; +windows

Nginx+Tomcat web站(Linux) 1.Nginx+Tomcat  Web站 2.JDK+Apache Tomcat (jsp)服务器配置(Windows) OS IP 子网掩码 路由网关 Centos6.6 nginx Eth0:192.168.26.211 255.255.252.0 192.168.25.3 Eth1:192.168.30.3 24 Centos6.6 tomcat Eth0:192.168.30.1 24 Win7 client Eth0:192.168.2

Nginx支持https訪問

Nginx支持https訪問 # yum -y install openssl openssl-devel 然后就是自己颁发证书给自己 # cd /usr/local/nginx/conf 1.創建帶密鑰口令的私鑰key # openssl genrsa -des3 -out server.key 1024 2.創建證書申請文件csr # openssl req -new -key server.key -out server.csr 3.清除私鑰的口令,重新生成不帶密鑰的key(不清除口令,重

nginx +location + https

wget http://nginx.org/packages/rhel/6/x86_64/RPMS/nginx-1.14.0-1.el6.ngx.x86_64.rpm (下载nginxRPM管理包)rpm -ivh nginx-1.14.0-1.el6.ngx.x86_64.rpm (安装nginx) 开始实验: /etc/nginx/ ├── conf.d (拓展文件) │?? ├── abc.conf │?? ├── default.conf │?? ├── efg.conf │?? └──

Nginx系列-6.配置Nginx的HTTPS

Nginx系列-6.配置Nginx的HTTPS 目录 - Nginx系列 Nginx系列-1.Linux下安装Nginx Nginx系列-2.配置LNMP(Linux.Nginx.MySQL.PHP)架构 Nginx系列-3.配置Nginx虚拟主机 Nginx系列-4.Nginx日志配置及日志切割 Nginx系列-5.配置Nginx的防盗链 Nginx系列-6.配置Nginx的HTTPS Nginx系列-7.配置Nginx使用uwsgi支持web.py框架 Nginx系列-8.配置Nginx+A

Centos7 nginx 搭建https服务器

Nginx简介 Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日.其将源代码以类BSD许可证的形式发布,因它的稳定性.丰富的功能集.示例配置文件和低系统资源的消耗而闻名.2011年6月1日,nginx 1.0.4发布. Nginx是一款轻量级的Web 服务器/反向代理服务器及电

使用自签的证书配置nginx的https

1.生成根证书密钥 #] openssl genrsa -des3 -out ca.key 2048 2.自签证书 #] openssl req -new -x509 -days 7305 -key ca.key -out ca.crt 参数说明: req: 生成证书签署请求 -news: 新请求 -key /path/to/keyfile: 指定私钥文件 -out /path/to/somefile: -x509: 生成自签署证书 -days n: 有效天数 3.准备必要文件: #] touc

nginx配置HTTPS

使用ssl模块配置同时支持http和https并存 一,生成证书 # 1.首先,进入你想创建证书和私钥的目录,例如: cd /etc/nginx/ # 2.创建服务器私钥,命令会让你输入一个口令: openssl genrsa -des3 -out server.key 1024 # 3.创建签名请求的证书(CSR): openssl req -new -key server.key -out server.csr # 4.在加载SSL支持的Nginx并使用上述私钥时除去必须的口令: cp se

nginx搭建https单向证书

一)默认情况下ssl模块并未被安装,如果使用该模块则需要在编译nginx的时指定--with-http_ssl_module参数. wget http://nginx.org/download/nginx-1.3.16.tar.gz tar -xf nginx-1.3.16.tar.gz -C /usr/local/ cd /usr/local/nginx-1.3.16/ ./configure --prefix=/usr/local/nginx --user=nginx --group=ngi