Centos 7 配置 Nginx,常用的 nginx 操作,启动 / 停止,代理,反向代理设置以及 https ssl 443 配置
Linux
查询 nginx 主进程号
ps -ef | grep nginx
启动 / 重启
## 在 nginx/sbin 下执行命令 . (查看是否在 /usr/local/nginx/sbin)
## 启动
./nginx -c /usr/local/nginx/conf/nginx.conf
## 重启
./nginx -s reload
停止
## 从容停止 Nginx:
kill -QUIT 主进程号
## 例如:kill -QUIT 16391
## 快速停止 Nginx:
kill -TERM 主进程号
## 强制停止 Nginx:
kill -9 主进程号
## 停止 nginx
nginx -s stop
代理 / 请求转发
http {
server {
### …
listen 4000;
server_name localhost;
location / {
root /Users/zhangguoye/Documents/Porject/Gitee/searchWX/src/main/internetapp;
index index.html index.htm;
}
location /oauth/ {
proxy_pass http://localhost:8080/oauth/;
}
location /api/ {
proxy_pass http://localhost:8080/api/;
}
### …
}
}
443/SSL/ 未开启 SSL 模块
安装模块
切换到源码包:
cd /usr/local/src/nginx-1.11.3
查看 nginx 原有的模块
/usr/local/nginx/sbin/nginx -V
在 configure arguments: 后面显示的原有的 configure 参数如下:
–prefix=/usr/local/nginx –with-http_stub_status_module
那么我们的新配置信息就应该这样写:
./configure –prefix=/usr/local/nginx –with-http_stub_status_module –with-http_ssl_module
运行上面的命令即可,等配置完
配置完成后,运行命令
makes
然后备份原有已安装好的 nginx
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
然后将刚刚编译好的 nginx 覆盖掉原有的 nginx(这个时候 nginx 要停止状态)
cp ./objs/nginx /usr/local/nginx/sbin/
然后启动 nginx,仍可以通过命令查看是否已经加入成功
/usr/local/nginx/sbin/nginx -V
配置 Http 和 Https 共存
把 ssl on;这行去掉,ssl 写在 443 端口后面。这样 http 和 https 的链接都可以用
server {
listen 80 default backlog=2048;
listen 443 ssl;
server_name wosign.com;
root /var/www/html;
ssl_certificate /usr/local/Tengine/sslcrt/ wosign.com.crt;
ssl_certificate_key /usr/local/Tengine/sslcrt/ wosign.com .Key;
}
配置 SSL 安全证书重启避免输入密码
可以用私钥来做这件事。生成一个解密的 key 文件,替代原来 key 文件。
openssl rsa -in server.key -out server.key.unsecure
SSL 性能调优
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!AESGCM;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
MAC (Brew Nginx)
mac 使用 homebrew 安装 Nginx,Nginx 的位置与启动
## 在 mac 上安装完 nginx 后的提示信息
==> nginx
Docroot is: /usr/local/var/www
The default port has been set in /usr/local/etc/nginx/nginx.conf to 8080 so that
nginx can run without sudo.
nginx will load all files in /usr/local/etc/nginx/servers/.
To have launchd start nginx now and restart at login:
brew services start nginx
Or, if you don’t want/need a background service you can just run:
nginx
## 查看 nginx 版本
nginx -v
## 启动 nginx 服务
brew services start nginx
## 关闭 nginx 服务
brew services stop nginx
## 重新加载 nginx
nginx -s reload
## 停止 nginx
nginx -s stop