最近在linux中配置nginx,然后需要配置https访问域名。
安装nginx前,我们首先要确保系统安装了g++、gcc、openssl-devel、pcre-devel和zlib-devel软件。如果安装请忽略。
1、# yum install gcc-c++
nginx是C语言开发的,在官网上下的源码需要编译,依赖gcc环境。
2、# yum install -y pcre pcre-devel
pcre是一个Perl库,包括Perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式 。
3、# yum install -y zlib zlib-devel
zlib库提供了很多压缩和解压缩的方式,nginx用zlib对http包进行gzip。
4、# yum install -y openssl openssl-devel
openssl是一个安全套接字层密码库,nginx支持http协议和https协议(在ssl协议上传输http)。
一般nginx都是安装在/usr/local/,所以进入local目录下
cd /usr/local/
5、# wget http://nginx.org/download/nginx-1.8.0.tar.gz
(这是下载的1.8.0版本的)
6、# tar -zxvf nginx-1.8.0.tar.gz
解压压缩文件。
7、# cd nginx-1.8.0
8、./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
如果不加 --with-http_stub_status_module --with-http_ssl_module,后面配置https的时候会报错。
9、make && make install
10、#
yum -y install lrzsz
安装后启动:/usr/local/nginx/sbin/nginx
这样就安装完nginx了,用ip直接访问即可。
现在开始配置https。
直接上传代码了。
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
tcp_nopush on;
keepalive_timeout 65;
server_names_hash_bucket_size 512;
server {
listen 80;
server_name www.***.com;
rewrite ^(.*)$ https://${server_name}$1 permanent;
}
server {
listen 443;
server_name www.***.com;
ssl on;
index index.html index.htm;
ssl_certificate /usr/local/nginx/cert/***.com.crt;
ssl_certificate_key /usr/local/nginx/cert/***.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
if ($request_method = 'OPTIONS') {
return 204;
}
proxy_redirect off;
proxy_redirect http:// $scheme://;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:9011;
}
}
}
将***换成你的域名,以上的配置已经解决了nginx跨域问题,默认跳转https安全访问。
上面配置有要到ssl安全证书,这个大家自行百度吧。只是将证书放到文件夹中就好了
我的是放到了/usr/local/nginx/cert/下面。
以上nginx基本配置好了。