nginx 的简单配置(虚拟主机、来源控制、https)

Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP服务器Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行,其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名

Nginx作为负载均衡服务器:Nginx既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务器对外进行服务。Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多。

简单案例配置

环境centos6.5  32位

nginx-1.9.4.tar.gz

安装

[[email protected] ~]# yum --disablerepo=\* --enablerepo=c6-media
 groupinstall "Development tools" -y
[[email protected] ~]# tar -zxvf nginx-1.9.4.tar.gz -C /usr/local/src/
[[email protected] ~]# cd /usr/local/src/nginx-1.9.4/
[[email protected] nginx-1.9.4]# yum --disablerepo=\* --enablerepo=c6-media
 install openssl-devel pcre-devel -y

[[email protected] nginx-1.9.4]# ./configure > --prefix=/usr/local/nginx > --conf-path=/etc/nginx/nginx.conf > --error-log-path=/var/log/nginx/error.log > --http-log-path=/var/log/nginx/access.log > --pid-path=/var/run/nginx/nginx.pid > --lock-path=/var/lock/nginx.lock > --user=nginx > --group=nginx > --with-http_ssl_module > --with-http_flv_module > --with-http_stub_status_module > --with-http_gzip_static_module > --http-client-body-temp-path=/var/tmp/nginx/client/ > --http-proxy-temp-path=/var/tmp/nginx/proxy/ > --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ > --with-pcre  

[[email protected] nginx-1.9.4]# groupadd nginx
[[email protected] nginx-1.9.4]# useradd -r -g nginx nginx
[[email protected] nginx-1.9.4]# make && make install

启动  /usr/local/nginx/sbin
[[email protected] sbin]# nginx
[[email protected] sbin]# nginx –s reload

虚拟主机:

1.物理目录

2.虚拟目录

3.基于主机头和基于IP地址

4.身份验证

产生账号库

[[email protected] html]# htpasswd /usr/local/nginx/html/.htpasswd user1

5.来源控制

Ssl

[[email protected] ~]# cd /etc/pki/CA/
[[email protected] CA]# touch index.txt
[[email protected] CA]# touch serial  
[[email protected] CA]# echo "01" >serial
[[email protected] CA]# cd ..
[[email protected] pki]# cd tls/    
[[email protected] tls]# vim openssl.cnf
drwxr-xr-x. 5 root root  4096 Aug 27 17:02 .
drwxr-xr-x. 9 root root  4096 Jul  7 03:38 ..
-rw-r--r--. 1 root root 16384 Aug 27 11:31 .openssl.cnf.swp
lrwxrwxrwx. 1 root root    19 Jul  7 03:37 cert.pem -> certs/ca-bundle.crt
drwxr-xr-x. 2 root root  4096 Jul  7 03:38 certs
drwxr-xr-x. 2 root root  4096 Jul  7 03:38 misc
-rw-r--r--. 1 root root 10906 Sep 27  2013 openssl.cnf
drwxr-xr-x. 2 root root  4096 Nov 22  2013 private
[[email protected] tls]# rm .openssl.cnf.swp
rm: remove regular file `.openssl.cnf.swp‘? y
[[email protected] tls]# vim openssl.cnf
[[email protected] tls]# pwd
/etc/pki/tls
[[email protected] tls]# cd..
-bash: cd..: command not found
[[email protected] tls]# cd ..
[[email protected] pki]# openssl genrsa 1024 >CA/private/cakey.pem
Generating RSA private key, 1024 bit long modulus
.................................++++++
......................++++++
e is 65537 (0x10001)
[[email protected] pki]# chmod 600 CA/private/cakey.pem
[[email protected] pki]# cd CA/
[[email protected] CA]# openssl req -new -key private/cakey.pem -x509 -out cacert.pem
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.‘, the field will be left blank.
-----
Country Name (2 letter code) [CN]:CN
State or Province Name (full name) []:BINGJING
Locality Name (eg, city) [BINGJING]:BINGJING
Organization Name (eg, company) [Default Company Ltd]:ABC
Organizational Unit Name (eg, section) []:COM
Common Name (eg, your name or your server‘s hostname) []:WWW
Email Address []:
[[email protected] CA]# mkdir /etc/nginx/certs
[[email protected] CA]# cd /etc/nginx/certs/
[[email protected] certs]# openssl genrsa 1024 >nginx.key
Generating RSA private key, 1024 bit long modulus
......................++++++
...................................................++++++
e is 65537 (0x10001)
[[email protected] certs]# chmod 600 nginx.key
[[email protected] certs]# ll
total 4
-rw-------. 1 root root 887 Aug 27 17:18 nginx.key
[[email protected] certs]# openssl req -new -key nginx.key -out nginx.req
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.‘, the field will be left blank.
-----
Country Name (2 letter code) [CN]:CN
State or Province Name (full name) []:QWE
Locality Name (eg, city) [BINGJING]:BINGJING
Organization Name (eg, company) [Default Company Ltd]:YYY
Organizational Unit Name (eg, section) []:JJJ
Common Name (eg, your name or your server‘s hostname) []:KKK
Email Address []:

Please enter the following ‘extra‘ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
[[email protected] certs]#
[[email protected] certs]# openssl ca -in nginx.req -out nginx.crt
Using configuration from /etc/pki/tls/openssl.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
       Serial Number: 1 (0x1)
       Validity
           Not Before: Aug 27 09:22:16 2015 GMT
           Not After : Aug 26 09:22:16 2016 GMT
       Subject:
           countryName               = CN
           stateOrProvinceName       = QWE
           organizationName          = YYY
           organizationalUnitName    = JJJ
           commonName                = KKK
       X509v3 extensions:
           X509v3 Basic Constraints:
               CA:FALSE
           Netscape Comment:
               OpenSSL Generated Certificate
           X509v3 Subject Key Identifier:
               B4:81:50:C7:73:97:8A:92:01:0E:AA:C6:EA:A4:50:B6:C1:9C:5E:6A
           X509v3 Authority Key Identifier:
               keyid:F5:9A:5E:BD:11:08:96:4B:46:85:E6:74:5F:72:96:10:18:88:21:EA

Certificate is to be certified until Aug 26 09:22:16 2016 GMT (365 days)
Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
[[email protected] certs]# cd /etc/nginx/nginx.conf
-bash: cd: /etc/nginx/nginx.conf: Not a directory
[[email protected] certs]# vim /etc/nginx/nginx.conf
[[email protected] certs]# cd /usr/local/nginx/sbin/
[[email protected] sbin]# ./nginx -s reload
nginx: [emerg] unknown directive "HTTPS" in /etc/nginx/nginx.conf:166
[[email protected] sbin]# vim /etc/nginx/nginx.conf
[[email protected] sbin]# ./nginx -s reload
[[email protected] sbin]# cd /etc/pki/
[[email protected] pki]# ll
total 28
drwxr-xr-x. 6 root root 4096 Aug 27 17:22 CA
drwxr-xr-x. 4 root root 4096 Jul  7 03:37 ca-trust
drwxr-xr-x. 2 root root 4096 Jul  7 03:37 java
drwxr-xr-x. 2 root root 4096 Jul  7 03:37 nssdb
drwxr-xr-x. 2 root root 4096 Jul  7 03:36 rpm-gpg
drwx------. 2 root root 4096 Nov 22  2013 rsyslog
drwxr-xr-x. 5 root root 4096 Aug 27 17:08 tls
[[email protected] pki]# cd CA/
[[email protected] CA]# ll
total 36
-rw-r--r--. 1 root root  940 Aug 27 17:16 cacert.pem
drwxr-xr-x. 2 root root 4096 Nov 22  2013 certs
drwxr-xr-x. 2 root root 4096 Nov 22  2013 crl
-rw-r--r--. 1 root root   61 Aug 27 17:22 index.txt
-rw-r--r--. 1 root root   21 Aug 27 17:22 index.txt.attr
-rw-r--r--. 1 root root    0 Aug 27 17:01 index.txt.old
drwxr-xr-x. 2 root root 4096 Aug 27 17:22 newcerts
drwx------. 2 root root 4096 Aug 27 17:13 private
-rw-r--r--. 1 root root    3 Aug 27 17:22 serial
-rw-r--r--. 1 root root    3 Aug 27 17:02 serial.old
[[email protected] CA]# cd private/
[[email protected] private]# ll
total 4
-rw-------. 1 root root 887 Aug 27 17:13 cakey.pem
[[email protected] private]# cp cakey.pem /etc/nginx/certs/
[[email protected] private]# cd /etc/nginx/certs/
[[email protected] certs]# ll
total 16
-rw-------. 1 root root  887 Aug 27 17:58 cakey.pem
-rw-r--r--. 1 root root 3004 Aug 27 17:22 nginx.crt
-rw-------. 1 root root  887 Aug 27 17:18 nginx.key
-rw-r--r--. 1 root root  631 Aug 27 17:21 nginx.req
[[email protected] certs]# cp nginx.crt nginx.crt.bak        
[[email protected] certs]# cat nginx.crt cakey.pem >nginx.crt
cat: nginx.crt: input file is output file
[[email protected] certs]# vim nginx.crt
[[email protected] certs]# mv nginx.crt  ni
[[email protected] certs]# ll
total 20
-rw-------. 1 root root  887 Aug 27 17:58 cakey.pem
-rw-r--r--. 1 root root 3004 Aug 27 18:00 nginx.crt.bak
-rw-------. 1 root root  887 Aug 27 17:18 nginx.key
-rw-r--r--. 1 root root  631 Aug 27 17:21 nginx.req
-rw-r--r--. 1 root root  887 Aug 27 18:00 ni
[[email protected] certs]# cat nginx.crt.bak cakey.pem >nginx.crt
[[email protected] certs]# vim nginx.crt
[[email protected] certs]# cd /usr/local/nginx/sbin/
[[email protected] sbin]# ./nginx -s reload

时间: 2024-11-07 16:27:36

nginx 的简单配置(虚拟主机、来源控制、https)的相关文章

Nginx演练(1)配置虚拟主机

Nginx是一款比较流行Web服务器,和Apache,Lighttpd,IIS属于同类产品.对比而言,Nginx从性能和内存占用方面,都非常优秀,具体对比细节自行百度. 三大WEB服务器对比分析(apache ,lighttpd,nginx) 本文演练的主要内容是: 使用Nginx,实现基于IP的虚拟主机 使用Nginx,实现基于域名的虚拟主机 tomcat配置虚拟主机 1.前提 什么是虚拟主机? 虚拟主机使用是特殊的软硬件技术,把一台运行在Internet上的服务器主机分成一台台"虚拟&quo

Linux下安装JDK和TOMCAT,并简单配置虚拟主机

JDK安装 首先,用yum list |grep jdk 命令检测系统是否有自带安装的rpm包的 [[email protected] ~]# yum list | grep jdk file:///mnt/cdrom/repodata/repomd.xml: [Errno 14] Could not open/read file:///mnt/cdrom/repodata/repomd.xml Trying other mirror. java-1.6.0-openjdk.i686      

nginx配置虚拟主机之不同端口和不同IP地址

配置nginx虚拟主机不同端口和不同ip地址,和上编nginx基于域名配置虚拟主机博文类似,请先参考. zxl.com域名不同端口,配置文件内容如下: [[email protected] conf.d]# cat zxl.com.conf  server { listen 81; server_name www.zxl.com zxl.com; location / { root /data/zxl; index index.html index.htm; access_log  logs/z

LNMP架构应用实战——Nginx配置虚拟主机

LNMP架构应用实战--Nginx配置虚拟主机        前面介绍了nginx服务的安装与配置文件,今天介绍下它的另一种实用配置--"虚拟主机",每个虚拟主机可以是一个独立的网站,可以具有独立的域名,同一台服务器上的不同的虚拟主机之间是独立的,用户访问不同虚拟主机如同访问不同的服务器一样,因此它不需要为一个单独的WEB站点提供单独一个nginx服务器和一个单独的nginx进程 1.nginx虚拟主机简单介绍 同apache服务一样,它也有三种不同的虚拟主机,基于域名的虚拟主机.基于

Centos 7搭建Nginx网站服务器及配置虚拟主机

Nginx专为性能优化而开发,其最大的优点就是它的稳定性和低系统资源消耗,以及对http并发连接的高处理能力,单台物理服务器可支持20000~50000个并发请求,正是如此,大量提供社交网络.新闻资讯.电子商务及虚拟主机等服务的企业纷纷选择Nginx来提供web服务,目前中国大陆使用nginx网站用户有:新浪.网易.腾讯,另外知名的微网志Plurk也使用nginx. Nginx是一个很牛的高性能Web和反向代理服务器,它具有有很多非常优越的特性: 高并发连接:官方测试能支撑5万并发连接,在实际生

nginx基于IP的虚拟主机配置

1.       增加IP 2.       [[email protected] ~]# ifconfigeth0:1 192.168.47.137 netmask 255.255.255.0 up 3.       [[email protected] ~]# ifconfigeth0:2 192.168.47.136 netmask 255.255.255.0 up 4.       [[email protected] ~]# ifconfigeth0:0 192.168.47.135

使用nginx进行反向代理(配置虚拟主机)

需求:使用不同的域名.访问相同的ip,获取到不同的端口服务器 (Linux服务器) 安装nginx需要的环境(有可能安装上的) nginx是C语言开发,建议在linux上运行,本教程使用Centos6.5作为安装环境. gcc 安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装 yum install gcc-c++ PCRE PCRE(PerlCompatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表

nginx配置虚拟主机vhost的方法详解

摘自:http://www.jb51.net/article/107331.htm Nginx vhost配置,可实现基于ip.端口号.servername的虚拟主机,同时可避免直接修改主配置文件.在nginx下配置虚拟主机vhost非常方便.这篇文章主要介绍了nginx配置虚拟主机vhost的方法,需要的朋友可以参考下 前言 所谓虚拟主机,是说通过几个不同的url地址,都能到达nginx环境,只不过针对不同的url,处理的逻辑不同.nginx支持虚拟主机,但是浏览器等客户端不知道,所以虚拟主机

nginx下配置虚拟主机的三种方法

nginx下,一个server标签就是一个虚拟主机. 1.基于域名的虚拟主机,通过域名来区分虚拟主机--应用:外部网站 2.基于端口的虚拟主机,通过端口来区分虚拟主机--应用:公司内部网站,外部网站的管理后台 3.基于ip的虚拟主机,几乎不用. 基于域名配置虚拟主机步骤: 需要建立/data/www /data/bbs目录,windows本地hosts添加虚拟机ip地址对应的域名解析:对应域名网站目录下新增index.html文件:  nginx.conf配置文件新增如下代码: server {

nginx 配置虚拟主机的三种方法

nginx,一个server标签就是一个虚拟主机. 1.基于域名的虚拟主机,通过域名来区分虚拟主机--应用:外部网站 2.基于端口的虚拟主机,通过端口来区分虚拟主机--应用:公司内部网站,外部网站的管理后台 3.基于ip的虚拟主机,几乎不用. 1.基于域名配置虚拟主机配置: 需要建立/data/www /data/bbs目录,windows本地hosts添加虚拟机ip地址对应的域名解析: 对应域名网站目录下新增index.html文件: nginx.conf配置文件新增如下代码: server