其实这个编译很简单,最近整理了下nginx,相对于apache,nginx的异步非阻塞处理高并发的场景更占优势,静态请求可以丢给nginx处理,动态请求可以代理到apache去处理,这篇文章整理下nginx的安装和https的配置,还有http重定向到https。
#依赖
yum install -y openssl openssl-devel pcre pcre-devel zlib zlib-devel
#下载最新stable版本
wget http://nginx.org/download/nginx-1.12.1.tar.gz
#编译安装
tar -zxvf nginx-1.12.1.tar.gz
cd nginx-1.12.1
./configure --with-http_ssl_module && make && make install
#推荐默认安装,也可以自己制定路径
./configure
--sbin-path=/usr/local/nginx/nginx
--conf-path=/usr/local/nginx/nginx.conf
--pid-path=/usr/local/nginx/nginx.pid
--with-http_ssl_module
--with-pcre=
--with-zlib=
--with-http_ssl_module
安装完后配置文件都在conf文件夹下,基础配置是nginx.conf,可以先修改写简单配置,把user改成www用户,打开pid注释,然后在配置文件底下添加自己的https域名配置,(证书可以去腾讯申请个免费的,这里就不做说明,申请后把下载下来的crt和key放在自己的服务器上),然后在配置文件最底下添加
server {
listen 80;
server_name qyc.yzccz.cn;
return 301 https://$host$request_uri; #这个是http强制重定向到https关键的一行
}
server {
listen 443 ssl;
ssl_certificate /usr/local/nginx/ssl/1_qyc.yzccz.cn_bundle.crt;
ssl_certificate_key /usr/local/nginx/ssl/2_qyc.yzccz.cn.key;
server_name qyc.yzccz.cn;
root /usr/local/nginx/html;
location / {
index index.php;
autoindex on;
}
location ~ \.php$ { #php请求转发到php-fpm,php-fpm用的是tcp模式监听 9000端口
include /usr/local/nginx/conf/fastcgi.conf;
fastcgi_intercept_errors on;
fastcgi_pass 127.0.0.1:9000;
}
}
这样https就配置好了,有个坑和大家提下,如果你的域名没有备案,就比如我的,配置完强转后,去访问qyc.yzccz.cn ,会被403拦截下来,你可以在连接后加个.就能看到强转效果:qyc.yzccz.cn.
最后nginx的启动、关闭和重启命令:
在sbin目录下
启动 ./nginx
关闭 ./nginx -s stop
重载配置 ./nginx -s reload
查看配置文件合法 ./nginx -t
可以把nginx配置到服务,并配置开机启动,这里就不介绍了。注意一点,如果本地开了apache,先关了再启动nginx,默认下都占用了80端口。