本文目录:
- 1、502 bad gateway怎么解决
- 2、如何在linux上安装nginx
- 3、https nginx证书安装方法?Nginx怎么安装https证书
- 4、如何在ubuntu上安装nginx
- 5、安装 Nginx 前 必须安装 PCRE
- 6、在Windows系统上搭建Nginx+Python+MySQL环境的教程
502 bad gateway怎么解决
502badgateway要先找到nginx配置的路径。
然后找到nginx所在的error日志文件来查看具体原因。
如果是客户端浏览器配置的问题,以360浏览器为例,出现502BadGateway可能是设置了代代理导致的。
取消浏览器代理之后,刷新一下就可以访问了。
502BadGateway是一种报错提示,这一错误并不意味着上游服务器已关闭(无响应网关/代理),而是上游服务器和网关/代理不同意的协议交换数据。
鉴于互联网协议是相当清楚的,它往往意味着一个或两个机器已不正确或不完全编程。
如何在linux上安装nginx
1 nginx安装环境
nginx是C语言开发,建议在linux上运行,本教程使用Centos6.5作为安装环境。
gcc
安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:yum install gcc-c++
PCRE
PCRE(PerlCompatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。
yuminstall -y pcre pcre-devel
注:pcre-devel是使用pcre开发的一个二次开发库。nginx也需要此库。
zlib
zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。
yuminstall -y zlib zlib-devel
openssl
OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。
yuminstall -y openssl openssl-devel
2 编译安装
将nginx-1.8.0.tar.gz拷贝至linux服务器。
解压:
tar -zxvf nginx-1.8.0.tar.gz
cd nginx-1.8.0
1、 configure
./configure –help查询详细参数(参考本教程附录部分:nginx编译参数)
注意:临时文件目录指定为/var/temp/nginx,需要在/var下创建temp及nginx目录
参数设置如下:
./configure \
–prefix=/usr/local/nginx \
–pid-path=/var/run/nginx/nginx.pid \
–lock-path=/var/lock/nginx.lock \
–error-log-path=/var/log/nginx/error.log \
–http-log-path=/var/log/nginx/access.log \
–with-http_gzip_static_module \
–http-client-body-temp-path=/var/temp/nginx/client\
–http-proxy-temp-path=/var/temp/nginx/proxy\
–http-fastcgi-temp-path=/var/temp/nginx/fastcgi\
–http-uwsgi-temp-path=/var/temp/nginx/uwsgi\
–http-scgi-temp-path=/var/temp/nginx/scgi
2、 编译安装
make
make install
安装成功查看安装目录 :
3 启动nginx
cd /usr/local/nginx/sbin/
./nginx
查询nginx进程:
15098是nginx主进程的进程id,15099是nginx工作进程的进程id
注意:执行./nginx启动nginx,这里可以-c指定加载的nginx配置文件,如下:
./nginx-c /usr/local/nginx/conf/nginx.conf
如果不指定-c,nginx在启动时默认加载conf/nginx.conf文件,此文件的地址也可以在编译安装nginx时指定./configure的参数(–conf-path= 指向配置文件(nginx.conf))
4 停止nginx
方式1,快速停止:
cd /usr/local/nginx/sbin
./nginx -s stop
此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。
方式2,完整停止(建议使用):
cd /usr/local/nginx/sbin
./nginx -s quit
此方式停止步骤是待nginx进程处理任务完毕进行停止。
6 测试
nginx安装成功,启动nginx,即可访问虚拟机上的nginx
https nginx证书安装方法?Nginx怎么安装https证书
第一步:获取证书:
服务器 SSL 证书由系统通过 Email 方式发送给用户,证书文件的内容格式如下,请把您的 SSL
证书内容(包括“—–BEGIN CERTIFICATE—–”和“—–END CERTIFICATE—–”)粘贴到记
事本等文本编辑器中,在服务器证书代码文本结尾处回车换行,并分别粘贴证书链代码(包括“—–BEGIN CERTIFICATE—–”和“—–END CERTIFICATE—–”),修改文件扩展名,保
存包含证书和证书链代码的文本文件为 server.pem 或者 server.crt 文件。
第二步:修改配置文件:
最后把 server.crt(或者 server.pem) 、server.key(生成 csr 时生成的私钥)两个文件保存到同一个目录,例如/usr/local/nginx/conf 目录下。
1.用文本编辑器打开 Nginx 根目录下 conf/nginx.conf 文件找到并更新一下内容:
server
{
listen 443 ssl;
ssl_certificate /usr/local/nginx/conf/server.crt; (备注:证书路径)
ssl_certificate_key /usr/local/nginx/conf/server.key; (备注:私钥路径)
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
root /home/wwwroot/; (备注:网站文件路径) index index.php index.html index.htm; (备注:默认首页文件指定)
}
Blow,I can’t anyway update.
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name _;
index index.html index.htm index.php;
root /home/wwwroot/default;
第三步:https 访问排错调整设置:
如果控制每个网站对应的文件路径有单独的配置文件,一般放在/usr/local/nginx/conf/vhost 下面。需要编辑对应网站配置文件配置 443 端口,不然可能导致 http 能正常访问,https 访问 404 报错。修改规则参考如下:
server
{
listen 80; 启用 80
listen 443 ssl; 404 报错就是需要在这里启用 443
listen [::]:80;
server_name domain.com;
index index.html index.htm index.php default.html default.htm default.php;
root /home/wwwroot/;
include rewrite/opencart.conf;
error_page 404 /404.html;
Deny access to PHP files in specific directory
location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }
include enable-php.conf;
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location ~ /.well-known { allow all;
}
location ~ /\.
{
deny all;
}
location / {
if ($host != ‘’) {
rewrite ^/(.*)$ permanent;
设置重定向自动跳转到 www 网站。
}
try_files $uri @opencart;
}
location @opencart {
rewrite ^/(.+)$ /index.php?_route_=$1 last;
}
location /admin/ { index index.php;
}
location ~* (\.(tpl|ini))$ { deny all;
}
access_log /home/wwwlogs/domain.log;
}
修改保存重启 nginx 服务:
service nginx restart
Nginx 安装 SSL 证书成功过后显示如下:
如何在ubuntu上安装nginx
你好,
安装方法:
1.开始说明
首先需要跟大家说明一下,这个教程中使用的IP地址是192.168.0.23,主机名称为Server1.example.com这些设置可能会有所不同,你需要根据不同情况进行修改。
2安装Apache2
2.切换管理员身份
在Ubuntu中需要用root身份进行操作,所以用下面的命令确保以root身份登录:
sudo su
3.开始安装MySQL5
apt-get install mysql-server mysql-client
你将被要求提供一个MySQL的root用户的密码,我们需要在红色区域设置密码。
New password for the MySQL “root” user: — yourrootsqlpassword
Repeat password for the MySQL “root” user: — yourrootsqlpassword
4.安装Apache2
Apache2的是作为一个Ubuntu的软件包,因此我们可以直接用下面命令安装它:
apt-get install apache2
5.安装PHP5
我们可以直接安装PHP5和Apache的PHP5的模块,如下:
apt-get install php5 libapache2-mod-php5
安装完需要重启
/etc/init.d/apache2 restart
6.测试的PHP5并获取PHP5安装的详细信息:
默认网站的文件根目录是在/var/www下中。现在我们将在该目录中创建一个小型PHP文件(info.php的)在浏览器中调用它。该文件将显示很多关于我们的PHP安装,如安装的PHP版本和有用的一些细节。
7.PHP5获得MySOL的支持
让PHP在MySQL中获得支持,我们可以安装的php-mysql软件包。安装一些其他的PHP5模块,以及您可能需要的应用程序,这是一个好主意:
apt-cache search php5
还安装需要安装的
apt-get install php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
现在重新启动Apache2的:
/etc/init.d/apache2 restart
8.安装phpMyAdmin
phpMyAdmin是一个网络接口,通过它可以管理你的MySQL数据库。
apt-get install phpmyadmin
你会看到以下问题:
Web server to reconfigure automatically: — apache2
Configure database for phpmyadmin with dbconfig-common? — No
安装 Nginx 前 必须安装 PCRE
Nginx是高度自由化的Web服务器,它的功能是由许多模块来支持。如果使用了某个模块,这个模块使用了一些类似zlib或OpenSSL等的第三方库,那么就必须先安装这些软件。Ubuntu下不像在centOS中使用yum直接在线安装,可以使用以下方法。
(1)PCRE库
PCRE库支持正则表达式。如果我们在配置文件nginx.conf中使用了正则表达式,那么在编译Nginx时就必须把PCRE库编译进Nginx,因为Nginx的HTTP模块需要靠它来解析正则表达式。另外,pcre-devel是使用PCRE做二次开发时所需要的开发库,包括头文件等,这也是编译Nginx所必须使用的。可以这样安装:
(2)zlib库
zlib库用于对HTTP包的内容做gzip格式的压缩,如果我们在nginx.conf中配置了gzip on,并指定对于某些类型(content-type)的HTTP响应使用gzip来进行压缩以减少网络传输量,则在编译时就必须把zlib编译进Nginx。zlib-devel是二次开发所需要的库。可以这样安装:
(3)OpenSSL库
如果服务器不只是要支持HTTP,还需要在更安全的SSL协议上传输HTTP,那么需要拥有OpenSSL。另外,如果我们想使用MD5、SHA1等散列函数,那么也需要安装它。可以这样安装:
网址:
最好在更新一下 openssl
但是升级了 openssl nginx 安装 –with-http_ssl_module 会报错 (所以我 为了开启 –with-http_ssl_module 没有升级 openssl 不升级也没什么关系 哈哈哈)
升级 openssl 教程:
在Windows系统上搭建Nginx+Python+MySQL环境的教程
1 安装nginx
下载windows上的nginx最新版本,/en/download.html。
解压后即可。
运行nginx.exe后本地打开localhost,将会看到欢迎页面,这证明nginx在本地运行良好,如果没有出现欢迎页面,请检查是否有进程占用了80端口。
2 安装flup
下载对应版本的flup,这里下载flup3.x版本,适合python3.2,下载地址:
解压(比如解压到D:flup)
安装(进入到python的安装路径,然后执行下面的命令
1 python setup.py install )
!注意,如果提示缺少setuptools,安装distribute-0.6.49.tar.gz,安装方法和flup安装一样,下载地址:
3 安装Mysql
在这里我使用的是5.1版本。在win系统上双击安装文件,下一步下一步完成。下载地址:/downloads/
4 安装数据库驱动
下载用于win上对应py版本的的python-mysql驱动,双击安装即可。下面的下载地址是3.2:
/wangqc/distribute-0.6.49.zip
5 配置服务器
首先需要修改nginx的配置文件nginx.conf。
找到:
1 2 3 4 location / { root html; index index.html index.htm; } 在里面加上:
1 2 3 4 5 6 7 8 9 10 11 12 host and port to fastcgi server fastcgi_pass 127.0.0.1:55880; fastcgi_param PATH_INFO $fastcgi_script_name; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param QUERY_STRING $query_string; fastcgi_param SERVER_NAME $server_name; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_pass_header Authorization; fastcgi_intercept_errors off; 然后测试该配置文件是否正确,在cmd中切换到nginx安装目录里,输入
1 nginx.exe -t 即可开始对配置文件测试,如果提示成功,说明配置正确,
这是可以结束掉任务管理器中所有的nginx.exe进程,重新运行ngin.exe重启nginx服务。
6 运行Server.py
在cmd下切换到项目目录,输入命令
1 python Server.py runfcgi method=threaded host=127.0.0.1 port=55880 注意,
这条命令只能用来启动项目,如果出现错误并不会给出提示。下面是正确的情况.
用浏览器打开127.0.0.1:8080 测试一下,项目是不是已经跑起来了(第一次运行等待的时间稍长,请耐心等待)。
7 一些注意事项
(1)、首先应该改的地方,这个大家应该都知道:
1 DEBUG = TEMPLATE_DEBUG = False将debug设置为False (2)、改一下ALLOWED_HOSTS,我死死的就将这个给忘了,我的`配置:
1 2 3 4 if DEBUG:根据DEBUG来确定 ALLOWED_HOSTS = [“”] else: ALLOWED_HOSTS = [“localhost”,”127.0.0.1″] (3)、重头戏来了,配置nginx:
这里相关的代码网上很多,但是几乎都没有说明一件事:
配置location ~ ^/static/ 的位置,一定要在location ~ ^/的前面,而且不能单纯的使用 location /static/ 或者location /static ,不然,static文件夹中的静态文件都不能加载!!!
ps:提起这个,慢慢的泪啊,就错在这里了。
嫌麻烦可以写成批处理,运行的时候双击一下就好了。
本文来源:https://www.yuntue.com/post/91505.html | 云服务器网,转载请注明出处!

微信扫一扫打赏
支付宝扫一扫打赏