在Linux系统安装Nginx及配置https加密访问

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

1、安装nginx

①、为了确保能在 nginx 中使用正则表达式进行更灵活的配置,安装之前需要确定系统是否安装有 PCRE(Perl Compatible Regular Expressions)包。您可以到 ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ 下载最新的 PCRE 源码包,使用下面命令下载编译和安装 PCRE 包:

# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.12.tar.bz2
# tar jxvf pcre-8.12.tar.bz2
# cd pcre-8.10
# ./configure –enable-utf8
# make
# make install

②、为nginx创建用户及用户组

# useradd www-nginx
# groupadd www 如果www用户组已经存在就跳过些步
# gpasswd -a www-nginx www

③、安装nginx

# wget http://nginx.org/download/nginx-1.0.3.tar.gz
# tar zxvf nginx-1.0.3.tar.gz
# cd nginx-1.0.3
# ./configure
–prefix=/usr
–sbin-path=/usr/sbin/nginx
–conf-path=/etc/nginx/nginx.conf
–error-log-path=/var/log/nginx/error.log
–pid-path=/var/run/nginx/nginx.pid
–lock-path=/var/lock/nginx.lock
–user=www-nginx
–group=www
–with-http_ssl_module
–with-http_stub_status_module
–with-http_flv_module
–with-http_gzip_static_module
–http-log-path=/var/log/nginx/access.log
–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/
// 简单安装 ./configure –user=www-nginx –group=www –prefix=/opt/nginx –with-http_stub_status_module –with-http_ssl_module
# make
# make install

–with-http_stub_status_module 是为了启用 nginx 的 NginxStatus 功能,用来监控 nginx 的当前状态。
–with-http_ssl_module 启用http_ssl模块
–with-ipv6 支持ipv6

安装成功后 /opt/nginx 目录下有四个子目录分别是:conf、html、logs、sbin 。其中 nginx 的配置文件存放于 conf/nginx.conf,nginx 只有一个程序文件位于 sbin 目录下的 nginx 文件。确保系统的 80 端口没被其他程序占用,运行 sbin/nginx 命令来启动 Nginx,打开浏览器访问此机器的 IP,如果浏览器出现 Welcome to nginx! 则表示 nginx 已经安装并运行成功。

2、使用 OpenSSL 生成证书

创建并进入sslkey存放目录
# mkdir /opt/nginx/sslkey
# cd /opt/nginx/sslkey

①、生成RSA密钥:
# openssl genrsa -out key.pem 2048

②、生成一个证书请求
# openssl req -new -key key.pem -out cert.csr
# //会提示输入省份、城市、域名信息等,重要的是,email 一定要是你的域名后缀的你可以拿着这个文件去数字证书颁发机构(即CA)申请一个数字证书。CA会给你一个新的文件cacert.pem,那才是你的数字证书。

如果是自己做测试,就可以用下面这个命令来生成证书:
# openssl req -new -x509 -nodes -out server.crt -keyout server.key

③、修改 nginx 配置
upstream payment {
server 127.0.0.1:8080;
server 127.0.0.1:8090;
}

# HTTPS server
#
server {
listen 443;
server_name www.openeasy.net;

ssl on;
ssl_certificate /opt/nginx/sslkey/server.crt;
ssl_certificate_key /opt/nginx/sslkey/server.key;

ssl_session_timeout 5m;

ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;

location / {
proxy_pass http://payment/;
proxy_redirect off;
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_connect_timeout 10s;
proxy_read_timeout 10s;
}
}

3、配置jexus linux dotnet服务器集群

upstream payment {
server 127.0.0.1:8080;
server 127.0.0.1:8090;
}

这里的server就是你的Jexus的服务器列表具体配置参见 用Jexus V4.2 搭建Linux dotnet web server

常用的 Nginx 参数和控制

程序运行参数

Nginx 安装后只有一个程序文件,本身并不提供各种管理程序,它是使用参数和系统信号机制对 Nginx 进程本身进行控制的。 Nginx 的参数包括有如下几个:

-c :使用指定的配置文件而不是 conf 目录下的 nginx.conf 。

-t:测试配置文件是否正确,在运行时需要重新加载配置的时候,此命令非常重要,用来检测所修改的配置文件是否有语法错误。

-v:显示 nginx 版本号。

-V:显示 nginx 的版本号以及编译环境信息以及编译时的参数。

例如我们要测试某个配置文件是否书写正确,我们可以使用以下命令

sbin/nginx – t – c conf/nginx2.conf

通过信号对 nginx 进行控制

nginx 支持下表中的信号:

信号名 作用描述
TERM, INT 快速关闭程序,中止当前正在处理的请求
QUIT 处理完当前请求后,关闭程序
HUP 重新加载配置,并开启新的工作进程,关闭就的进程,此操作不会中断请求
USR1 重新打开日志文件,用于切换日志,例如每天生成一个新的日志文件
USR2 平滑升级可执行程序
WINCH 从容关闭工作进程

有两种方式来通过这些信号去控制 Nginx,第一是通过 logs 目录下的 nginx.pid 查看当前运行的 Nginx 的进程 ID,通过 kill – XXX 来控制 Nginx,其中 XXX 就是上表中列出的信号名。如果您的系统中只有一个 Nginx 进程,那您也可以通过 killall 命令来完成,例如运行 killall – s HUP nginx 来让 Nginx 重新加载配置。

转载于:https://my.oschina.net/zhangjie830621/blog/282245

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/461228.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

和菜鸟一起学linux之bluez学习记录2

这里主要摘取对于hci,l2cap,sdp和rfcomm的一些应用编程。 关于hci 一、HCI层协议概述 1、HCI Command Packets 详见bluez源码:lib/hci.h /* Link Control */ #define OGF_LINK_CTL 0x01 #define OCF_INQUIRY 0x0001 #define OCF_…

AppDelegate.h

2019独角兽企业重金招聘Python工程师标准>>> #ifndef __APP_DELEGATE_H__ #define __APP_DELEGATE_H__#include "CCApplication.h" //CCApplication.h能根据平台打开对应的平台头文件 /** brief The cocos2d Application.The reason for implement as …

虚拟机上网以及互ping问题

以下内容源于网络资源的学习与整理,如有侵权请告知删除。 虚拟机设置静态IP和上网问题 (1)在“虚拟机——设置——网络适配器”中选择桥接模式; (2)在“编辑——虚拟网络编辑器”中,选择桥接到有…

qt 飞扬青云_R语言学习——实例标识符

> patientID> age> diabetes> status> patientdata> #在上述创建的病例数据框中,病人编号(patientID)用于区分数据中的不同个体,在R中实例标识符(case identifier)可以通过数据框操作函数中的rowname选项指定,如下代码&…

fck java_FCkjava三种调用方法

测试FCK方法一:toolbarSet "Default" >默认内容测试方法二:FCKeditor oFCKeditor ;oFCKeditor new FCKeditor(request,"content") ;oFCKeditor.setBasePath( "/db/fckeditor/" ) ;oFCKeditor.setWidth("600");oFCKeditor.setHeig…

Spring 容器(Spring 的上下文)

为什么80%的码农都做不了架构师&#xff1f;>>> 最近在做项目时牵扯到有关父子上下文的概念。 何为父子上下文呢&#xff1f; 父上下文&#xff1a; 使用listener监听器来加载配置文件&#xff0c;如下&#xff1a; <listener> <listener-class>org.…

file_operations结构体

以下读书笔记内容摘自宋宝华《Linux设备驱动开发详解》一书。 file_operations结构体在字符设备驱动的地位 file_operations结构体的定义 此结构体定义在x210kernel/include/linux/fs.h文件中。 struct file_operations {struct module *owner;loff_t (*llseek) (struct file …

FlashCC学习札记

前段时间项目中有一个功能模块用到了FlashCC&#xff0c;将C的代码编译成swc文件&#xff0c;以便在Flash工程中使用。开发过程中遇到一些问题&#xff0c;现在记录下来&#xff0c;以便日后查阅。 一、开发环境搭建 说明:本文所使用的FlashCC版本为1.0.1&#xff0c; 操作系统…

”凉凉“ 的故事

某一天&#xff0c;我在给数据匹配编码的时候发现一个数据匹配不到编码&#xff0c;我怀疑是码表问题&#xff0c;终于发现一个非常奇妙的事情&#xff1a;两个一模一样的字符串竟然不相等&#xff1f;&#xff1f;&#xff1f; 屌爆了&#xff0c;我上下左右看遍了也没看出这2…

面向对象理论概述

2019独角兽企业重金招聘Python工程师标准>>> 转载自&#xff1a;http://my.oschina.net/brucelee80/blog 面向对象与面向过程的区别 面向过程就是分析出解决问题所需要的步骤&#xff0c;然后用函数把这些步骤一步一步实现&#xff0c;使用的时候一个一个依次调用就…

网络设备驱动介绍

以下内容源于朱有鹏《物联网大讲堂》课程的学习&#xff0c;如有侵权&#xff0c;请告知删除。 一、网络设备驱动概述 1、什么是网络设备 &#xff08;1&#xff09;网络设备&#xff1a;物理网卡在linux中形成的体系软件表现。 &#xff08;2&#xff09;物理网卡&#xff…

山东理工ACM【2561】九九乘法表

九九乘法表 Time Limit: 1000ms Memory limit: 65536K 有疑问&#xff1f;点这里^_^ 题目描述 九九乘法表是数学学习的基础&#xff0c;今天我们就来看看乘法表的相关问题。《九九乘法歌诀》&#xff0c;又常称为“小九九”,如下图所示。你的任务是写一个程序&#xff0c;对…

java ajax 定时刷新_用ajax技术实现无闪烁定时刷新页面

function makeRequest() {var guid rnd();//记住给个随机数&#xff0c;不然的话有缓存var url "example_b.aspx?id" guid;createXMLHttpRequest();xmlHttp.onreadystatechange handleRefresh;xmlHttp.open("GET", url, false);xmlHttp.send(null);}/…

platform驱动开发套路、DM9000的一些分析

1、 模块加载函数&#xff0c;是通过platform_driver_register()、platfprm_driver_unregister函数进行platform_driver的注册和注销&#xff1b; 原先注册和注销字符设备的工作&#xff0c;被移交给platform_driver的probe()成员函数和remove()成员函数中。 第一句是将硬件信…

Android企业级程序完全退出的解决方案

一、问题描述 在平常开发的过程中可以发现&#xff0c;很多开发者对于程序的退出都没有去认真的解决。一般要么是一个简单的finish&#xff08;只是退出当前的activity&#xff09;&#xff0c;要么是其他的方法&#xff0c;比如&#xff1a; 1、第一种方法&#xff1a;首先获取…

块设备驱动介绍

以下内容源于朱有鹏《物联网大讲堂》课程的学习&#xff0c;如有侵权&#xff0c;请告知删除。 一、正确理解块设备驱动的概念 1、块设备和字符设备的差异 块和字符是两种不同的访问设备的策略&#xff1b;同一个设备可以同时支持块和字符两种访问策略&#xff1b;设备本身的物…

java中有scoreframe类型嘛_java构造函数的三种类型总结

我们说构造函数能处理参数的问题&#xff0c;但其实也要分三种情况进行讨论。目前有三种类型&#xff1a;无参、有参和默认。根据不同的参数情况&#xff0c;需要我们分别进行构造函数的讨论。这里重点是无参构造函数的初始化也要分两种方法进行分析。下面我们就这三种不同的构…

netbeans搭建安卓开发环境

2019独角兽企业重金招聘Python工程师标准>>> NetBeans 上开发 Android 应用程序需要安装一个 Android SDK 和针对 NetBeans 的 Android 开发插件 下载并安装 Android SDK 下载 Android SDK 解压后运行 tools\android.bat update sdk 进行升级&#xff0c;根据所选内…

VS2010皮肤控件介绍

在我们平时使用的各种工具中&#xff0c;如QQ&#xff0c;迅雷&#xff0c;以及各种空间等&#xff0c;都提供了一些换肤功能&#xff0c;可以让我们选择各种我们喜欢的界面。本文就对VS中常用的窗口程序做一个简单的换肤&#xff0c;利用一个dll文件来进行实现。 首先我们要加…

MySQL和Mariadb都启动不了了_linux centos7mariadb安装成功启动不了 解决思路

查看系统日志/var/log/mariadb/mariadb.log190313 14:31:03 InnoDB: Database was not shut down normally!InnoDB: Starting crash recovery.InnoDB: Reading tablespace information from the .ibd files...InnoDB: Restoring possible half-written data pages from the dou…